2009年02月27日

パラメータクエリ

Accessのパラメータクエリを実行する際に、パラメータ入力のダイアログボックスで何も条件を入力しないでOKボタンを押すと、レコードは何も表示されません。

ユーザーの気持ちとしては「無条件」なので「全データが表示される」ことを期待すると思いますが、パラメータクエリでは条件は基本的には指定しなければ正しく実行されません。 

パラメータクエリで条件入力をしなかった場合に、全データが表示されるようにする方法があります。

例えば、「商品」フィールドの抽出条件欄に以下のようなパラメータを入力したとします。

 [商品名を入力してください。]

「商品」フィールドの抽出条件2行目にあたる「または」に以下のように入力します。

 [商品名を入力してください。] Is Null

Is Null は小文字で入力しても認識されますが、]の右側に来るスペースと、IsとNullの間のスペースは半角で入力する必要があります。
また、Is の入力は省略をすることができませんので注意が必要です。

作成時にパラメータクエリを作成すると本番運用前の動作確認時にもいちいち条件を入力しなければならず面倒だと感じることがあります。
そんな場合にも知っておくと便利ですね。
posted by Three bit com at 10:00| Access(アクセス)

2009年02月20日

主キーと複合キー

Accessテーブルのデザインビューで主キーを設定する場合、ツールバーから主キーボタンを押して設定を行います。

主キーは2つのフィールドに対しても設定することができます。
1つのフィールドだけではレコードを一意に特定することが出来ない場合に、複合キーとして2つ以上のフィールドをペアで主キーにします。

作業手順は、デザインビューで複合キーにしたいフィールドをCtrlキーを押しながら全て選択します。
Ctrlキーを押すと離れたところにあるフィールドを選択することができます。

複数のフィールドを選択後にツールバーから主キーを選択すると、複合キーとして設定することができます。

注意事項としては複合キーを設定すると、データ量が多くなってくるとパフォーマンスが落ちる場合があります。そのテーブルを使った将来的な利用状況なども想定して複合キーを設定するか、あるいは別途主キーとなるフィールドを作成するか検討することをお薦めします。
posted by Three bit com at 10:00| Access(アクセス)

2009年02月12日

接頭辞

「前任者の作成したプログラムの変数の先頭に、いくら参考書やヘルプで調べても見つからない文字列がついている」
というご質問を頂くことあります。

ソースを拝見してみると str商品 とか int数量 のように先頭に3文字の英文字が表示されています。
これは「接頭辞」または「プリフィックス」と言われるもので、変数の場合では、その変数の型が一目で分かるようにつけた文字列です。

例文を書いてみます。

Dim str商品 As String 
Dim int数量 As Integer
str商品 = "コーヒー"
int数量 = 1000

のような使い方です。
長いプログラムの途中でいきなり「商品」という変数が出てくると、その変数にどのような値を代入してよいのかが判断できません。

プログラムを読みやすく分かりやすくするために付けておくと便利です。
他の文法と異なり、String型の場合、必ず str とつけなければならないわけではありませんが、習慣でVBA、またはVBだとよく利用される使い方というのもあります。

社内で複数の人で作成をしてマクロを使いまわすときには、社内の作成ルールとして決めておくことをお薦めしています。
posted by Three bit com at 10:00| Excel & Access

2009年02月04日

ExcelからAccessへのインポートエラー

Excel(エクセル)のデータをAccess(アクセス)に移行する際に、Accessの「インポート」コマンドを使用することができます。
その際に一部のデータがAccessのテーブルにインポートできないことがあります。

この作業で躓いてしまい、仕事持込セミナーやAccess関連の講習会にご参加頂くケースもあります。
色々な原因が考えられますが、例えばExcelで行内改行(Alt+Enterキー)をしているデータがエラーになってしまう場合があります。

特に行の高さを狭めていると目で見ても分からないため、データ件数が多い場合には困ります。
対応策として例えばCLEAN関数を使うと便利です。

A1に行内改行が挿入されている場合、B1に次の式を入力します。
=CLEAN(A1)

Alt+Enterで入力した改行をこれだけで取り除くことができますので、インポート時にエラーが出るようであれば、可能性のありそうなフィールド・レコード全てに同様の処理を行ってからAccessでインポートをしてみてください。

Accessのシステム完成後にデータの移行がうまく行かず、システム運用開始に時間がかかるケースを非常に多く拝見します。

初めてシステムを作成する場合には、ついつい後回しになりがちなデータのクリーニング作業ですが、システムを作成しながら、平行して早い段階でデータのチェックもしておきたいですね。
posted by Three bit com at 10:00| Access(アクセス)