メールマガジン【アクセスで作るシリーズ】
バックナンバー 【住所録ソフト編】 Vol.23
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
ACCESSで作るシリーズ 【住所録ソフト編】
発 行 : Yoshihisa Fukuda 2002.05.18 Vol.23
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
--------------------------------------
今回からは、郵便番号データの取込・更新のプログラム解説です。
色々と複雑なので、最初の郵便番号データ取込・更新フォームの作成(Vol.19)から
解説していきましょう。
______________________________________
□ 郵便番号データ取込・更新フォームのプログラム解説。
まずは、郵便番号データ取込・更新フォームの[開く時]イベントで記述した
プログラムの解説です。
コードは以下の様に記述しました。
Select Case Me.OpenArgs
Case 1
Me.Caption = "郵便番号データ取り込み"
Me.Label1.Visible = True
Me.Label1.Caption = "取込ファイル名"
Me.Label2.Visible = False
Me.FileName1.Visible = True
Me.FileName2.Visible = False
Me.FileSel1Btn.Visible = True
Me.FileSel2Btn.Visible = False
Me.ExecuteBtn.Caption = "取込"
Case 2
Me.Caption = "郵便番号データ更新"
Me.Label1.Visible = True
Me.Label1.Caption = "廃止ファイル名"
Me.Label2.Visible = True
Me.Label2.Caption = "新規追加ファイル名"
Me.FileName1.Visible = True
Me.FileName2.Visible = True
Me.FileSel1Btn.Visible = True
Me.FileSel2Btn.Visible = True
Me.ExecuteBtn.Caption = "更新"
Case Else
MsgBox "パラメータエラー"
End Select
最初の Select Case 文は、条件式の値により、それぞれにプログラムの流れを分割
します。
Select Case Me.OpenArgs の Me.OpenArgs は、このフォームを開く時に渡される
引数です。
この後に出てくる DoCmd.OpenForm stDocName, , , stLinkCriteria, , , X と言う
行が、このフォームを開く処理ですが、この最後の引数 X がフォームに引き渡され
ます。
DoCmd.OpenForm stDocName, , , stLinkCriteria, , , 1 としてフォームを開くと、
このフォームで Me.OpenArgs の値に 1 が入ってきます。
今回は、取込処理で引数に1を、更新処理で引数に2を受け渡す様にしています。
次に Case 1 の所で Me.OpenArgs の値が1の時の処理が記述されています。
Me.Caption = "郵便番号データ取り込み" の行は、このフォームの[標題]プロパティ
に"郵便番号データ取り込み"を設定しています。
Me.Caption はフォームの標題を指しています。
次に Me.Label1.Visible = True は Label1 の[可視]プロパティを[True]にしています。
今回の場合、 Label1 の[可視]プロパティは常に[True]なので、この行は無くても
構いません。
次の Me.Label1.Caption = "取込ファイル名" は Label1 の[標題]プロパティに
"取込ファイル名"と設定しています。
次の Me.Label2.Visible = False は Label2 の[可視]プロパティを[False]にして
います。
引数1でこのフォームを呼び出した時は、このフォームは郵便番号データの取込処理
に使用されるので、ファイル名を入力するフィールドは1つしか必要ありません。
従って、この行で2つめのファイル名入力のラベルを非表示にしています。
次の Me.FileName1.Visible = True は FileName1 の[可視]プロパティを[True]に
しています。
これも、今回[False]になる事は無いので、この行も無くても構いません。
次の Me.FileName2.Visible = False は FileName2 の[可視]プロパティを[False]に
しています。
これも、先ほどの Label2 と同じで、2つめのファイル名入力のテキストボックスを
非表示にしています。
次の Me.FileSel1Btn.Visible = True は FileSel1Btn の[可視]プロパティを[True]
にしています。
これも無くても構いません。
次の Me.FileSel2Btn.Visible = False は FileSel2Btn の[可視]プロパティを[False]
にしています。
これも、先ほどの Label2 や FileName2 と同じで、2つめのファイル選択ボタンを
非表示にしています。
最後の Me.ExecuteBtn.Caption = "取込" は ExecuteBtn の[標題]プロパティに
"取込"と設定しています。
この Case 1 の中の処理は、取込様にコントロールの標題を変えたり、表示/非表示
の制御を行っています。
次の Case 2 では、更新様にコントロールの標題を変えたり、表示/非表示の制御を
行います。
簡単に見てみましょう。
Me.Caption = "郵便番号データ更新" でフォームの標題を"郵便番号データ更新"に
しています。
Me.Label1.Visible = True で Label1 を表示しています。
Me.Label1.Caption = "廃止ファイル名"で Label1 の標題を"廃止ファイル名"に
しています。
Me.Label2.Visible = True で Label2 を表示しています。
Me.Label2.Caption = "新規追加ファイル名" で Label2 の標題を
"新規追加ファイル名"にしています。
Me.FileName1.Visible = True で FileName1 のテキストボックスを表示しています。
Me.FileName2.Visible = True で FileName2 のテキストボックスを表示しています。
Me.FileSel1Btn.Visible = True で FileSel1Btn を表示しています。
Me.FileSel2Btn.Visible = True で FileSel2Btn を表示しています。
Me.ExecuteBtn.Caption = "更新" で ExecuteBtn の標題を"更新"にしています。
アクセスの書籍でよく見かける中に、メニュー等からフォームを呼び出す際、
グローバル変数で値の受け渡しをしている事がありますが、フォームを開く際に
この様に引数を受け渡す事が出来ます。
似通ったフォームの場合、この様にして1つのフォームで2つの機能(取込と更新)
を実現することができます。
______________________________________
□ 郵便番号メンテナンスフォームの郵便番号データ取込・更新ボタンの解説。
郵便番号メンテナンスフォームの[取込]ボタンの[クリック時]イベントで記述した
プログラムの解説です。
コードは以下の様に記述しました。
On Error GoTo Err_ImportBtn_Click
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "ZipUpdateForm"
DoCmd.OpenForm stDocName, , , stLinkCriteria, , , 1
Exit_ImportBtn_Click:
Exit Sub
Err_ImportBtn_Click:
MsgBox Err.Description
Resume Exit_ImportBtn_Click
最初の On Error GoTo Err_ImportBtn_Click はエラー時の処理の流れを指定して
います。
コントロールウィザードを有効にして、コマンドボタンを作成した時など、自動で
生成されるので、今まで作成した中にも、この On Error GoTo XXX と言うのは、よく
出てきていると思います。
On Error GoTo XXX とすると、エラーが発生した場合、XXX というラベルの付いた
行へ飛んでいきます。
この場合、 On Error GoTo Err_ImportBtn_Click となっているので、エラーが発生
した場合、Err_ImportBtn_Click: の処理を実行します。
Dim stDocName As String Dim stLinkCriteria As String の2行は、変数の宣言
です。
stDocName = "ZipUpdateForm" では、開くフォームの名前を設定しています。
DoCmd.OpenForm stDocName, , , stLinkCriteria, , , 1 でフォームを開きます。
DoCmd.OpenForm はフォームを開く命令です。
第1引数がフォーム名です。
ここでは、フォーム名を一度 stDocName と言う変数に代入していますが、この様に
変数に代入しなくても、直接フォーム名を記述しても構いません。
その場合、DoCmd.OpenForm "ZipUpdateForm", , ・・・ と言った感じになります。
第2引数は、フォームを開く際、どの様な状態で開くかを指定します。
acDesign、acFormDS、acNormal、acPreview の4つが指定ができます。
acDesign で開くと、フォームはデザインの状態で開きます。
acFormDS で開くと、フォームはデーターシートの状態で開きます。
acNormal で開くと、フォームは普通の状態で開きます。
acPreview で開くと、フォームは印刷プレビューの状態で開きます。
ここでは、何も指定していませんが、この様に省略した場合は、既定値として
acNormal となります。
第3引数は、レコードの制限や並べ替えを行いたい場合、そのクエリーやフィルタを
指定します。
今回は、特に制限等がありませんから、省略しています。
第4引数は、フォームを表示する際に、レコードを選択したりするSQLのWHERE句を
記述します。
第3引数のフィルタも指定した場合、まず、フィルタの条件でデータが制限、または
並べ替え等がされて、そのデータに対して、この条件が有効になります。
第5引数は、フォームを開く際のデータのモードを指定します。
acFormAdd、acFormEdit、acFormPropertySettings、acFormReadOnly の4つが指定
できます。
acFormAdd で開くとデータの新規追加のみが出来るフォームが開きます。
acFormEdit で開くとデータの新規追加、編集が出来るフォームが開きます。
acFormPropertySettings で開くと作成したフォームのプロパティ(更新の許可・
削除の許可・追加の許可・データ入力用)の値で決まります。
acFormReadOnly で開くとデータは読み取り専用でフォームが開きます。
今回の様に省略した場合、acFormPropertySettings (既定値)となります。
第6引数は、フォームを開く際のウィンドウの状態を指定します。
acDialog、acHidden、acIcon、acWindowNormalの4つが指定できます。
acDialog で開くとダイアログの状態でフォームが開きます。
acHidden で開くと非表示の状態でフォームが開きます。
acIcon で開くとアイコンの状態(フォームを最小化した状態)でフォームが開きます。
acWindowNormal で開くとフォームのプロパティで指定した状態でフォームが開きます。
今回の様に省略した場合、acWindowNormal (既定値)となります。
最後の第7引数が、フォームに受け渡す引数です。
ここで与えた値が、開いたフォームの OpenArgs と言うプロパティに受け渡されます。
[更新]ボタンの[クリック時]のコードは、ここの値が異なるだけです。
Exit_ImportBtn_Click: はラベルです。
プログラムで分岐したりする場合、このラベルを使用します。
Exit Sub はサブルーチンの終了です。
サブルーチンの途中で、そのサブルーチンを抜け出したい時は、この Exit Sub で
抜け出します。
Err_ImportBtn_Click: はエラー時に飛んでくるラベルです。
MsgBox Err.Description で、エラーの内容をメッセージボックスで表示しています。
アクセスは、プログラムはVisual Basic(VB)と言う言語が使用されています。
VBがエラーを検知した場合、Err と言うオブジェクトに、そのエラーの内容が設定
されます。
Err オブジェクトには、Number、Source、Description、HelpFile、HelpContext、
LastDLLError などのプロパティがあります。
その中のDescription はエラーの内容が入っています。
そのエラーの内容をメッセージボックスで表示しています。
最後の Resume Exit_ImportBtn_Click は、Resume と言うのがプログラムの再開で
Exit_ImportBtn_Click のラベルから再開すると言う事になります。
これで、郵便番号データ取込・更新フォームが開いた状態になるまでのプログラムは
大体理解できたと思います。
次回は、実際にCSVファイルを取り込む部分のプログラム解説です。
______________________________________
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
◇ ACCESSで作るシリーズ 【住所録ソフト編】
◇ 発 行 元 :Yoshihisa Fukuda(福田 義久)
◇ ご意見・ご要望
ご質問等 :fukud@nifty.com
◇ このメールマガジンは、インターネットの本屋さん『まぐまぐ』を利用して発行
しています。(まぐまぐID:0000077071)
◇ バックナンバー:http://homepage2.nifty.com/f-soft/
◇ 登録・解除 :http://homepage2.nifty.com/f-soft/
Copyright(C) 2001-2002 Yoshihisa Fukuda All rights reserved.
◇転載について
このメールマガジンの無断転載などは、一切禁止です。
転載をご希望の方は、事前にメールで連絡をください。
◇免責
このメールマガジン及びホームページの内容による、いかなる損害、障害などに
関して発行者は一切の責任を負いません。
掲載広告についても同様です。
______________________________________
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
ACCESSで作るシリーズ 【住所録ソフト編】
発 行 : Yoshihisa Fukuda 2002.05.18 Vol.23
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
--------------------------------------
今回からは、郵便番号データの取込・更新のプログラム解説です。
色々と複雑なので、最初の郵便番号データ取込・更新フォームの作成(Vol.19)から
解説していきましょう。
______________________________________
□ 郵便番号データ取込・更新フォームのプログラム解説。
まずは、郵便番号データ取込・更新フォームの[開く時]イベントで記述した
プログラムの解説です。
コードは以下の様に記述しました。
Select Case Me.OpenArgs
Case 1
Me.Caption = "郵便番号データ取り込み"
Me.Label1.Visible = True
Me.Label1.Caption = "取込ファイル名"
Me.Label2.Visible = False
Me.FileName1.Visible = True
Me.FileName2.Visible = False
Me.FileSel1Btn.Visible = True
Me.FileSel2Btn.Visible = False
Me.ExecuteBtn.Caption = "取込"
Case 2
Me.Caption = "郵便番号データ更新"
Me.Label1.Visible = True
Me.Label1.Caption = "廃止ファイル名"
Me.Label2.Visible = True
Me.Label2.Caption = "新規追加ファイル名"
Me.FileName1.Visible = True
Me.FileName2.Visible = True
Me.FileSel1Btn.Visible = True
Me.FileSel2Btn.Visible = True
Me.ExecuteBtn.Caption = "更新"
Case Else
MsgBox "パラメータエラー"
End Select
最初の Select Case 文は、条件式の値により、それぞれにプログラムの流れを分割
します。
Select Case Me.OpenArgs の Me.OpenArgs は、このフォームを開く時に渡される
引数です。
この後に出てくる DoCmd.OpenForm stDocName, , , stLinkCriteria, , , X と言う
行が、このフォームを開く処理ですが、この最後の引数 X がフォームに引き渡され
ます。
DoCmd.OpenForm stDocName, , , stLinkCriteria, , , 1 としてフォームを開くと、
このフォームで Me.OpenArgs の値に 1 が入ってきます。
今回は、取込処理で引数に1を、更新処理で引数に2を受け渡す様にしています。
次に Case 1 の所で Me.OpenArgs の値が1の時の処理が記述されています。
Me.Caption = "郵便番号データ取り込み" の行は、このフォームの[標題]プロパティ
に"郵便番号データ取り込み"を設定しています。
Me.Caption はフォームの標題を指しています。
次に Me.Label1.Visible = True は Label1 の[可視]プロパティを[True]にしています。
今回の場合、 Label1 の[可視]プロパティは常に[True]なので、この行は無くても
構いません。
次の Me.Label1.Caption = "取込ファイル名" は Label1 の[標題]プロパティに
"取込ファイル名"と設定しています。
次の Me.Label2.Visible = False は Label2 の[可視]プロパティを[False]にして
います。
引数1でこのフォームを呼び出した時は、このフォームは郵便番号データの取込処理
に使用されるので、ファイル名を入力するフィールドは1つしか必要ありません。
従って、この行で2つめのファイル名入力のラベルを非表示にしています。
次の Me.FileName1.Visible = True は FileName1 の[可視]プロパティを[True]に
しています。
これも、今回[False]になる事は無いので、この行も無くても構いません。
次の Me.FileName2.Visible = False は FileName2 の[可視]プロパティを[False]に
しています。
これも、先ほどの Label2 と同じで、2つめのファイル名入力のテキストボックスを
非表示にしています。
次の Me.FileSel1Btn.Visible = True は FileSel1Btn の[可視]プロパティを[True]
にしています。
これも無くても構いません。
次の Me.FileSel2Btn.Visible = False は FileSel2Btn の[可視]プロパティを[False]
にしています。
これも、先ほどの Label2 や FileName2 と同じで、2つめのファイル選択ボタンを
非表示にしています。
最後の Me.ExecuteBtn.Caption = "取込" は ExecuteBtn の[標題]プロパティに
"取込"と設定しています。
この Case 1 の中の処理は、取込様にコントロールの標題を変えたり、表示/非表示
の制御を行っています。
次の Case 2 では、更新様にコントロールの標題を変えたり、表示/非表示の制御を
行います。
簡単に見てみましょう。
Me.Caption = "郵便番号データ更新" でフォームの標題を"郵便番号データ更新"に
しています。
Me.Label1.Visible = True で Label1 を表示しています。
Me.Label1.Caption = "廃止ファイル名"で Label1 の標題を"廃止ファイル名"に
しています。
Me.Label2.Visible = True で Label2 を表示しています。
Me.Label2.Caption = "新規追加ファイル名" で Label2 の標題を
"新規追加ファイル名"にしています。
Me.FileName1.Visible = True で FileName1 のテキストボックスを表示しています。
Me.FileName2.Visible = True で FileName2 のテキストボックスを表示しています。
Me.FileSel1Btn.Visible = True で FileSel1Btn を表示しています。
Me.FileSel2Btn.Visible = True で FileSel2Btn を表示しています。
Me.ExecuteBtn.Caption = "更新" で ExecuteBtn の標題を"更新"にしています。
アクセスの書籍でよく見かける中に、メニュー等からフォームを呼び出す際、
グローバル変数で値の受け渡しをしている事がありますが、フォームを開く際に
この様に引数を受け渡す事が出来ます。
似通ったフォームの場合、この様にして1つのフォームで2つの機能(取込と更新)
を実現することができます。
______________________________________
□ 郵便番号メンテナンスフォームの郵便番号データ取込・更新ボタンの解説。
郵便番号メンテナンスフォームの[取込]ボタンの[クリック時]イベントで記述した
プログラムの解説です。
コードは以下の様に記述しました。
On Error GoTo Err_ImportBtn_Click
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "ZipUpdateForm"
DoCmd.OpenForm stDocName, , , stLinkCriteria, , , 1
Exit_ImportBtn_Click:
Exit Sub
Err_ImportBtn_Click:
MsgBox Err.Description
Resume Exit_ImportBtn_Click
最初の On Error GoTo Err_ImportBtn_Click はエラー時の処理の流れを指定して
います。
コントロールウィザードを有効にして、コマンドボタンを作成した時など、自動で
生成されるので、今まで作成した中にも、この On Error GoTo XXX と言うのは、よく
出てきていると思います。
On Error GoTo XXX とすると、エラーが発生した場合、XXX というラベルの付いた
行へ飛んでいきます。
この場合、 On Error GoTo Err_ImportBtn_Click となっているので、エラーが発生
した場合、Err_ImportBtn_Click: の処理を実行します。
Dim stDocName As String Dim stLinkCriteria As String の2行は、変数の宣言
です。
stDocName = "ZipUpdateForm" では、開くフォームの名前を設定しています。
DoCmd.OpenForm stDocName, , , stLinkCriteria, , , 1 でフォームを開きます。
DoCmd.OpenForm はフォームを開く命令です。
第1引数がフォーム名です。
ここでは、フォーム名を一度 stDocName と言う変数に代入していますが、この様に
変数に代入しなくても、直接フォーム名を記述しても構いません。
その場合、DoCmd.OpenForm "ZipUpdateForm", , ・・・ と言った感じになります。
第2引数は、フォームを開く際、どの様な状態で開くかを指定します。
acDesign、acFormDS、acNormal、acPreview の4つが指定ができます。
acDesign で開くと、フォームはデザインの状態で開きます。
acFormDS で開くと、フォームはデーターシートの状態で開きます。
acNormal で開くと、フォームは普通の状態で開きます。
acPreview で開くと、フォームは印刷プレビューの状態で開きます。
ここでは、何も指定していませんが、この様に省略した場合は、既定値として
acNormal となります。
第3引数は、レコードの制限や並べ替えを行いたい場合、そのクエリーやフィルタを
指定します。
今回は、特に制限等がありませんから、省略しています。
第4引数は、フォームを表示する際に、レコードを選択したりするSQLのWHERE句を
記述します。
第3引数のフィルタも指定した場合、まず、フィルタの条件でデータが制限、または
並べ替え等がされて、そのデータに対して、この条件が有効になります。
第5引数は、フォームを開く際のデータのモードを指定します。
acFormAdd、acFormEdit、acFormPropertySettings、acFormReadOnly の4つが指定
できます。
acFormAdd で開くとデータの新規追加のみが出来るフォームが開きます。
acFormEdit で開くとデータの新規追加、編集が出来るフォームが開きます。
acFormPropertySettings で開くと作成したフォームのプロパティ(更新の許可・
削除の許可・追加の許可・データ入力用)の値で決まります。
acFormReadOnly で開くとデータは読み取り専用でフォームが開きます。
今回の様に省略した場合、acFormPropertySettings (既定値)となります。
第6引数は、フォームを開く際のウィンドウの状態を指定します。
acDialog、acHidden、acIcon、acWindowNormalの4つが指定できます。
acDialog で開くとダイアログの状態でフォームが開きます。
acHidden で開くと非表示の状態でフォームが開きます。
acIcon で開くとアイコンの状態(フォームを最小化した状態)でフォームが開きます。
acWindowNormal で開くとフォームのプロパティで指定した状態でフォームが開きます。
今回の様に省略した場合、acWindowNormal (既定値)となります。
最後の第7引数が、フォームに受け渡す引数です。
ここで与えた値が、開いたフォームの OpenArgs と言うプロパティに受け渡されます。
[更新]ボタンの[クリック時]のコードは、ここの値が異なるだけです。
Exit_ImportBtn_Click: はラベルです。
プログラムで分岐したりする場合、このラベルを使用します。
Exit Sub はサブルーチンの終了です。
サブルーチンの途中で、そのサブルーチンを抜け出したい時は、この Exit Sub で
抜け出します。
Err_ImportBtn_Click: はエラー時に飛んでくるラベルです。
MsgBox Err.Description で、エラーの内容をメッセージボックスで表示しています。
アクセスは、プログラムはVisual Basic(VB)と言う言語が使用されています。
VBがエラーを検知した場合、Err と言うオブジェクトに、そのエラーの内容が設定
されます。
Err オブジェクトには、Number、Source、Description、HelpFile、HelpContext、
LastDLLError などのプロパティがあります。
その中のDescription はエラーの内容が入っています。
そのエラーの内容をメッセージボックスで表示しています。
最後の Resume Exit_ImportBtn_Click は、Resume と言うのがプログラムの再開で
Exit_ImportBtn_Click のラベルから再開すると言う事になります。
これで、郵便番号データ取込・更新フォームが開いた状態になるまでのプログラムは
大体理解できたと思います。
次回は、実際にCSVファイルを取り込む部分のプログラム解説です。
______________________________________
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
◇ ACCESSで作るシリーズ 【住所録ソフト編】
◇ 発 行 元 :Yoshihisa Fukuda(福田 義久)
◇ ご意見・ご要望
ご質問等 :fukud@nifty.com
◇ このメールマガジンは、インターネットの本屋さん『まぐまぐ』を利用して発行
しています。(まぐまぐID:0000077071)
◇ バックナンバー:http://homepage2.nifty.com/f-soft/
◇ 登録・解除 :http://homepage2.nifty.com/f-soft/
Copyright(C) 2001-2002 Yoshihisa Fukuda All rights reserved.
◇転載について
このメールマガジンの無断転載などは、一切禁止です。
転載をご希望の方は、事前にメールで連絡をください。
◇免責
このメールマガジン及びホームページの内容による、いかなる損害、障害などに
関して発行者は一切の責任を負いません。
掲載広告についても同様です。
______________________________________
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□