Access実践入門 TOPへ
 ■ マイクロソフトアクセス、会員データ入力
入力済みデータを使うコンボBOX

会員データの登録で、所属と備考は、入力済みデータをコンボBOXの値集合ソースにしています、こうすることによって、入力が楽になります。
決まった項目が入力される場合は、マスター登録をしておいて、その中から選択していましたが、将来何が入るか解らない場合や、コードを付けて登録しにくいものなどに使うと便利です。

フォーム「fo会員入力」を見てください。
[所属1]のプロパティは以下のようになっています。




クエリーの「quconbo所属1」を見てください。



集計を使って、所属1をグループ化しています。
これで、入力済みのデータがグループ化(同じ文字をまとめる)された一覧表が、コンボBOXに表示されます。

[所属1]のプロパティの「入力チェック」は「いいえ」にしておいてください。
コンボBOXに入力したい項目が無かった場合に、新しい項目が登録できなくなります。

csvファイルの作成

Accessの機能で、エクスポートがありますが、その場合、区切り記号の選択とか、たとえば、文字列のみダブルクォーテーションで囲むとかの、細かい作業が出来ないので、モジュールで全部書く方法を使ってみます。

フォーム「fo会員一覧」を見てください。
「csv作成」ボタンのプロパティを見てください。
「クリック時」に指定フォーム「focsv作成指定」が開きます

フォーム「focsv作成指定」の「作成」ボタンのプロパティの「クリック時」を見てください。

-------------------------------------------
Dim dbs As Database
Dim rst_1 As Recordset

Set dbs = CurrentDb
Set rst_1 = dbs.OpenRecordset("qucsv作成", dbOpenDynaset)

On Error GoTo ERTX:

Open Forms("focsv作成指定")![flname] For Output As #1

Print #1, "氏名" & Chr(44) & "フリガナ" & Chr(44) & "郵便番号" & Chr(44) & "住所1" & Chr(44) & "住所2" & Chr(44) & "電話番号"

rst_1.MoveFirst
Do Until rst_1.EOF

Print #1, rst_1!氏名 & Chr(44) & rst_1!ふりがな & Chr(44) & rst_1!郵便番号 & Chr(44) & rst_1!住所1 & Chr(44) & rst_1!住所2 & Chr(44) & rst_1!電話番号
rst_1.MoveNext

Loop
Close #1


MsgBox ("CSVファイルが作成されました。")
rst_1.Close
DoCmd.Close

Exit Sub

ERTX:
MsgBox ("CSVファイルは正常に作成されませんでした。フォルダ、ファイル名等を確認してください。")
rst_1.Close
DoCmd.Close

-------------------------------------------

On Error GoTo ERTX: はフォルダの指定等を間違えるとエラーが出ますので、中止させるためです。
Open Forms("focsv作成指定")![flname] For Output As #1
これは、シーケンシャルファイルを出力モードで開きますということです。

Print #1, "氏名" & Chr(44) & "フリガナ" & Chr(44) & "郵便番号" & Chr(44) & "住所1" & Chr(44) & "住所2" & Chr(44) & "電話番号"

&で文字をプラスしています、Chr(44)は記号のカンマです、今回は区切り記号にカンマを使います。

これで、レコードを1つ、出力しました。
これは、表題となる部分です。
エクセルで読み込んだ時に表題があると便利です。またAccessのインポートにも1行目を表題にするかどうかの選択もあります。

データ部分は、ループを使って出力していきます。

同じテーブルを複数参照する

会員入力の「レコードソース」の「qu会員一覧かな」を見てください。



[請求単価cd1]、[請求単価cd2]、[請求単価cd3]がそれぞれ同じ「ta請求単価」とつながっています。
同じテーブルをクエリーのデザインに落とすと、2個目から”_1”がついてきますが、いくつでも使えます。
このようなクエリーをこのプログラムでは、たくさん使っています。