Accessお手本データベースのホームへ戻る

発注書を電子メールで送信するお手本データベース

 

6-6-1 発注書を電子メールで送信するサンプルデータベース

 

このサンプルデータベースは、Accessのフォームから入力した発注書を電子メールで送信します。発注書入力フォームから、新規登録のボタンをクリックして、発注先、発注者、発注日、納品日(予定日)、そして発注明細(商品名、単価、数量、金額)を入力します。発注書を入力したら、メール送信ボタンをクリックして送信します。メールの宛先は、送信ボタンの下に表示されています。送信ボタンをクリックすると、発注書がスナップショットファイル形式で保存されて、Outlookのメールに添付されます。図6-6-2Outlookから送信ボタンをクリックすると、送信トレイに登録されます。送信トレイに登録されたメールは、Outlookから送信、または送受信ボタンをクリックしたときに送信されます。受信者は、メールに添付されている発注書をダブルクリックすると、Snapshot Viewerが起動されて、発注書が表示されます。Snapshot Viewerからは、発注書を印刷することもできます。Snapshot Viewerは、マイクロソフト社のホームページから無償でダウンロードすることができますので、発注先はAccess を購入する必要はありません。

 

 

6-6-2 発注書がメールに添付された例

 

6-6-3 メールに添付されている発注書をSnapshot Viewerで表示させた例

 

サンプルデータベース(CH6-6.mdb)では、以下に示すノウハウを習得することができます。

 

◆ Accessのフォームから入力した発注書を電子メールで発注先に送信する方法

◆ フォームに登録、保存、印刷、復元などのコマンドボタンを作成する方法

 

   サンプルデータベースで使用するテーブル/クエリ/レポートを準備するには

 

1 Accessを起動したら作業フォルダに、新規データベースCH6-6.mdbを作成します。

 

2 ファイルメニューから外部データの取り込みインポートをクリックします。インポートのダイアログが表示されたら、Northwind.mdb(デフォルトで、”C:\Program Files\Microsoft Office\Office\Samples”にインストールされます。)を選択してインポートボタンをクリックします。オブジェクトのインポートダイアログが表示されたら、テーブルのタブをクリックして、仕入先、社員、商品テーブルを選択します。OKボタンをクリックして、インポートを完了させます。

 

3 データベースウィンドウのテーブルをクリックしたら、仕入先テーブルをデザインモードで開いて、表6-6-1のように修正します。ファイルメニューから名前を付けて保存をクリックして“tbl仕入先”の名称で保存します。同様の手順で、社員、商品テーブルを修正したら、“tbl社員”、“tbl商品”の名称で保存します。

 

6-6-1 tbl仕入先テーブルの構造

テーブル名

説   明

作成日

最終更新日

tbl仕入先

仕入先マスタ

 

 

No

フィールド名

データ型

サイズ

説    明

1

仕入先ID

長整数型

4

 主キー設定

2

仕入先フリガナ

テキスト型

50

 

3

仕入先名

テキスト型

40

 

4

担当者名

テキスト型

30

 

5

郵便番号

テキスト型

10

 

6

住所1

テキスト型

60

 

7

住所2

テキスト型

60

 

8

電話番号

テキスト型

24

 

9

FAX番号

テキスト型

24

 

10

メールアドレス

テキスト型

50

 

11

最終発注番号

長整数型

4

 

 

6-6-2 tbl社員テーブルの構造

テーブル名

説   明

作成日

最終更新日

tbl社員

社員マスタ

 

 

No

フィールド名

データ型

サイズ

説    明

1

社員ID

長整数型

4

 主キー設定

2

氏名フリガナ

テキスト型

50

 

3

氏名

テキスト型

40

 

 

6-6-3 tbl商品テーブルの構造

テーブル名

説   明

作成日

最終更新日

tbl商品

商品マスタ

 

 

No

フィールド名

データ型

サイズ

説    明

1

商品ID

長整数型

4

主キー設定

2

商品フリガナ

テキスト型

50

 

3

商品名

テキスト型

40

 

4

仕入先ID

長整数型

4

 

5

単価

通貨型

8

 

6

単価入力日

日付/時刻型

8

 

 

4 データベースウィンドウからテーブルの新規作成ボタンをクリックして、表3-6-4、表3-6-5tbl受注テーブルとtbl受注明細テーブルを入力して保存します。

 

6-6-4 tbl受注テーブルの構造

テーブル名

説   明

作成日

最終更新日

tbl発注

発注ヘッダー

 

 

No

フィールド名

データ型

サイズ

説    明

1

発注ID

長整数型

4

 主キー設定

2

仕入先ID

長整数型

4

 

3

社員ID

長整数型

4

 

4

発注日

日付/時刻型

8

 

5

納品日

日付/時刻型

8

 

 

6-6-5 tbl受注明細テーブルの構造

テーブル名

説   明

作成日

最終更新日

tbl発注明細

発注明細

 

 

No

フィールド名

データ型

サイズ

説    明

1

発注ID

長整数型

4

 主キー設定

2

行番号

オートナンバー型

4

 主キー設定

3

商品ID

長整数型

4

 

4

単価

通貨型

8

 

5

単価入力日

日付/時刻型

8

 

6

数量

整数型

2

 

 

5 データベースウィンドウからクエリをクリックしたら、一覧からデザインビューでクエリを作成するをダブルクリックします。テーブルの表示ダイアログが表示されたら、閉じるのボタンをクリックします。メニューからSQLのアイコンをクリックして、SQLのウィンドウを表示させたら、リスト6-6-1SQLを入力します。(SQLを手入力する代わりに、CH6-6.mdbのクエリqry10受注をインポートしてもよい。)SQLを入力したら、デザインビューに切り替えて、図3-6-4のようになっているか確認して、qry10受注の名称で保存します。同様の手順で、qry10発注明細qry20発注書印刷を作成します。

 

 

リスト6-6-1 qry10受注のSQL

SELECT tbl発注.*, tbl仕入先.担当者名, tbl仕入先.メールアドレス

FROM tbl発注 INNER JOIN tbl仕入先 ON tbl発注.仕入先ID = tbl仕入先.仕入先ID

ORDER BY tbl発注.発注ID;

 

リスト6-6-2 qry10発注明細のSQL

SELECT tbl発注明細.発注ID, tbl発注明細.行番号, tbl発注明細.商品ID, tbl発注明細.単価,

tbl発注明細.単価入力日, tbl発注明細.数量, CCur([単価]*[数量]) AS 金額

FROM tbl発注明細

ORDER BY tbl発注明細.発注ID, tbl発注明細.行番号;

 

リスト6-6-3  qry20発注書印刷のSQL

SELECT tbl発注.発注ID, tbl発注.仕入先ID, tbl仕入先.仕入先名, tbl仕入先.担当者名,

tbl仕入先.郵便番号, tbl仕入先.住所1, tbl仕入先.住所2, tbl仕入先.電話番号, tbl仕入先.FAX番号,

tbl社員.氏名, tbl発注.発注日, tbl発注.納品日, tbl発注明細.行番号, tbl発注明細.商品ID,

tbl商品.商品名, tbl発注明細.単価, tbl発注明細.数量,

CCur([tbl発注明細]![単価]*[tbl発注明細]![数量]) AS 金額

FROM tbl商品 INNER JOIN ((tbl社員 INNER JOIN (tbl仕入先 INNER JOIN tbl発注

ON tbl仕入先.仕入先ID = tbl発注.仕入先ID)

ON tbl社員.社員ID = tbl発注.社員ID) INNER JOIN tbl発注明細

ON tbl発注.発注ID = tbl発注明細.発注ID) ON tbl商品.商品ID = tbl発注明細.商品ID;

 

 

6-6-4  qry10受注のデザインビュー

 

6 ファイルメニューから外部データの取り込みインポートをクリックします。インポートのダイアログが表示されたら、 CH6-6.mdbを選択します。レポートのタブをクリックしてrptPurchaseOrdersを選択したら、OKボタンをクリックしてインポートを完了させます。

 

7 テーブル、クエリ、レポートの準備ができたら、Access を終了させます。

 

   発注書を入力してメール送信するフォームを作成するには

 

1 Access を起動したら、作業フォルダに作成した CH6-6.mdbを開きます。

 

2 データベースウィンドウが表示されたら、CH6-6.mdbを開いて、モジュールbasMyLibをコピーします。(CH6-6.mdbのデータベースウィンドウからbasMyLibをドラッグして、作業フォルダのCH6-6.mdbのデータベースウィンドウに貼り付けると自動的にコピーされます。)basMyLibをコピーしたら、デザインモードで開きます。VBEツールメニューから参照設定をクリックして、参照可能なライブラリファイルからMicrosoft DAO 3.6 Object Libraryを選択して、OKボタンをクリックします。モジュールウィンドウを閉して、Accessに切り替えます。

 

3 データベースウィンドウからフォームをクリックしたら、新規作成ボタンをクリックします。フォームの新規作成ダイアログが表示されたら、リストボックスからデザインビューを選択します。基になるテーブル/クエリのコンボボックスからは、qry10発注を選択してOKボタンをクリックします。フォームのデザインビューが表示されたら、メニューからフィールドリストのアイコンをクリックして、フィールドの一覧を表示させます。一覧から、発注ID、仕入先ID、担当者名、社員ID、発注日、納品日、メールアドレスをドラッグしてフォーム詳細に配置します。仕入先IDのテキストボックスを選択したら、マウスの右ボタンをクリックしてショートカットメニューを表示させます。メニューからコントロールの種類の変更èコンボボックスをクリックしてコンボボックスに切り替えます。同様の手順で、社員IDのテキストボックスをコンボボックスに切り替えます。フォームに配置したコントロールのプロパティは、表6-6-6のように設定します。発注先、発注者、発注日、納品日などの必須項目のコントロールのタグプロパティには、未入力時のエラーメッセージを格納しておきます。

 

4 メニューからツールボックスのアイコンをクリックして、ツールボックスを表示させます。ツールボックスから、コマンドボタンのアイコンをクリックしたら、フォーム詳細に、7個(右から順番に閉じる、保存、追加、印刷、削除、復元、メール送信)のコマンドボタンを作成します。コマンドボタンのプロパティは、表3-6-6のように設定します。

 

6-6-6 フォーム詳細に配置したコントロールのプロパティ

コントロールの種類

プロパティ

テキストボックス1

名前

発注ID

編集ロック

はい

背景色

16777088

コンボボックス1

名前

cbo発注先

値集合ソース

SELECT tbl仕入先.仕入先ID,

  tbl仕入先.仕入先名

FROM tbl仕入先

ORDER BY tbl仕入先.仕入先ID,

tbl仕入先.仕入先フリガナ;

連結列

1

列数

2

列幅

0cm;4.3cm

タグ

発注先を選択してください!

(未入力時のエラーメッセージ)

コンボボックス2

名前

cbo発注者

値集合ソース

SELECT tbl社員.社員ID, tbl社員.氏名

FROM tbl社員

ORDER BY tbl社員.氏名,

tbl社員.氏名フリガナ;

連結列

1

列数

2

列幅

0cm;2.5cm

タグ

発注者を選択してください!

(未入力時のエラーメッセージ)

テキストボックス2

名前

発注日

タグ

発注日を入力してください!

(未入力時のエラーメッセージ)

テキストボックス3

名前

納品日

タグ

納品日を入力してください!

(未入力時のエラーメッセージ)

テキストボックス4

名前

担当者名

テキストボックス4

名前

メールアドレス

編集ロック

はい

背景色

12910591

コマンドボタン1

名前

cmdClose

クリック時

=CloseForm_FS([Form]) ※

コマンドボタン2

名前

cmdSave

クリック時

=CloseForm_FS([Form]) ※

コマンドボタン3

名前

cmdAdd

クリック時

イベントプロシージャ

コマンドボタン4

名前

cmdPrint

クリック時

イベントプロシージャ

コマンドボタン5

名前

cmdDelete

クリック時

=Delete_FS([Form]) ※

コマンドボタン6

名前

cmdUnDo

クリック時

=UnDo_FS([Form]) ※

コマンドボタン7

名前

cmdSubmit

クリック時

イベントプロシージャ

※:これらの関数は、モジュールbasMyLibに登録されています。

 

6-6-5 フォーム詳細に、発注書ヘッダーとコマンドボタンを作成した例

 

5 メニューからコードのアイコンをクリックして、フォームモジュールを表示させます。CH6-6.mdbを開いて、frmPurchaseOrderのフォームモジュールをコピーして貼り付けます。フォームモジュールのソースコードは、リスト6-6-4を参照してください。フォームをfrmPurchaseOrderの名称で保存して閉じます。

 

6 フォームから新規作成のコマンドボタンをクリックして、フォームの新規作成ダイアログを表示させます。リストボックスからは、デザインビューを選択します。基になるテーブル/クエリのコンボボックスから、qry10発注明細を選択したら、OKボタンをクリックします。フォームのデザインビューが表示されたら、メニューからフィールドリストのアイコンをクリックして、フィールドの一覧を表示させます。一覧から、商品ID、単価、単価入力日、数量、金額をドラッグして、フォーム詳細に配置します。テキストボックスのラベルを選択したら、切り取ってフォームヘッダーに貼り付けます。フォームに作成したラベル、テキストボックスを図6-6-6のように配置します。商品IDのテキストボックスを選択したら、マウスの右ボタンをクリックして、ショートカットメニューを表示させます。メニューから、コントロールの種類を変更èコンボボックスをクリックしてコンボボックスに切り替えます。ツールボックスを表示させたら、コマンドボタンのアイコンをクリックして、金額のテキストボックスの右に配置します。数量と金額のテキストボックスを選択したら、マウスの右ボタンをクリックしてショートカットメニューを表示させてコピーして、フォームフッターに配置します。フォームに作成したコントロールのプロパティを表6-6-7のように設定します。

 

6-6-7 フォームに作成したコントロールのプロパティ

コントロールの種類

プロパティ

コンボボックス

名前

cbo商品

値集合ソース

SELECT tbl商品.商品ID, tbl商品.商品名,

tbl商品.単価, tbl商品.単価入力日

FROM tbl商品

WHERE (((tbl商品.仕入先ID)=

[Forms]![frmPurchaseOrder]![cbo発注先]))

ORDER BY tbl商品.商品フリガナ;

連結列

1

列数

4

列幅

0cm;4.5cm;0cm;0cm

テキストボックス1

名前

単価

テキストボックス2

名前

単価入力日

テキストボックス3

名前

数量

テキストボックス4

名前

金額

コマンドボタン

名前

cmdDelete

クリック時

=Delete_FS([Form]) ※

テキストボックス5

名前

txt合計数量

コントロールソース

=Sum([数量])

編集ロック

はい

背景色

16777088

テキストボックス6

名前

txt合計金額

コントロールソース

=Sum([金額])

編集ロック

はい

書式

通貨

背景色

16777088

※:この関数は、モジュールbasMyLibに登録されています。

 

6-6-6 発注明細フォームに作成したコントロールのレイアウト

 

7 メニューからコードのアイコンをクリックしたら、フォームモジュールを表示させます。CH6-6.mdbを開いたら、sfrPurchaseOrderDetailsのフォームモジュールをコピーして貼り付けます。フォームモジュールのソースコードは、リスト6-6-5を参照してください。フォームをsfrPurchaseOrderDetailsの名称で保存して閉じます。

 

8 メインフォームfrmPurchaseOrderをデザインモードで開いたら、データベースウィンドウからサブフォームsfrPurchaseOrderDetailsをドラッグして貼り付けます。メインフォームをビューモードで開いたら、発注書の新規入力ボタンをクリックしてテスト用のデータを入力します。保存ボタンをクリックして発注書を保存したら、メール送信ボタンをクリックして発注書を送信します。

 

6-6-7 メインフォーム発注書にサブフォーム発注書明細を貼り付けた例

 

9 Outlookが起動されて、発注書がメールに添付されていますので、Outlook から送信ボタンをクリックして、送信トレイに登録します。送信トレイに登録されたメールは、Outlook から送信ボタンまたは、送受信ボタンをクリックしたときに送信されます。メール受信者は、添付ファイルをダブルクリックすると、Snapshot Viewerが起動されて発注書が表示されます。

 

6-6-8 発注書がメールに添付された例

 

10 メインフォームを保存したら、Access を終了します。

 

 

Form_Open()イベントの処理

このイベントは、フォームが開かれたときに発生します。このイベントでは、発注先のコンボボックスにフォーカスを移動します。

 

 

Form_Current()イベントの処理

このイベントは、フォームに表示されているレコードが移動するときに発生します。このイベントでは、サブフォーム発注明細の商品コンボボックスを再クエリして、発注先の商品のみ表示されるようにします。

 

 

Form_BeforeUpdate()イベントの処理

このイベントは、フォーム上のレコードが更新されたときに発生します。このイベントでは、フォーム上の必須項目(タグプロパティにエラーメッセージが設定されているコントロール)に値が入力されているか調べて未入力のとき、エラーメッセージを表示してフォーカスを移動します。

 

  For Each ctl In Me.Section(acDetail).Controls

    With ctl

      If .ControlType = acTextBox Or .ControlType = acComboBox Then

        If Len(Nz(.Tag, "")) <> 0 Then

          If IsNull(.Value) Or IsEmpty(.Value) Then

            MsgBox .Tag, vbExclamation

            .SetFocus

            Cancel = True

            Exit Sub

          End If

        End If

      End If

    End With

  Next ctl

 

必須項目が全て入力されているときは、tbl仕入先テーブルを読み込んで発注番号を自動採番します。発注番号は、仕入先別に連番になるように採番します。tbl仕入先の最終発注番号を更新中に排他制御エラーが発生したときは、規定回数(5回)分再試行します。尚、再試行するときは、DoEventsをループさせて一定時間待ちます。

 

      intRetryCount = intRetryCount + 1

      If intRetryCount <= conLockRetries Then

        DAO.DBEngine.Idle

        lngWait = intRetryCount ^ 2 * _

          Int((conLockUBound - conLockLBound + 1) * Rnd() + conLockLBound)

        For lngW = 1 To lngWait

          DoEvents

        Next lngW

        Resume

      Else

        MsgBox "排他制御エラーのためレコードの更新ができませんでした!", _

          vbCritical + vbOKOnly

        Cancel = True

        Resume ExitErr

      End If

 

 

cbo発注先_AfterUpdate()イベントの処理

このイベントは、発注先のコンボボックスから発注先を選択したときに発生します。このイベントでは、サブフォーム発注明細の商品コンボボックスを再クエリして、発注先の商品のみ表示されるようします。

 

 

cmdSubmit_Click()イベントの処理

このイベントは、フォームからメール送信のボタンをクリックしたときに発生します。このイベントでは、DoCmdSendObjectメソッドで発注書のレポートをスナップショットファイル形式で保存してメール送信します。引数の宛先(To)には、tbl仕入先テーブルのメールアドレスが設定されます。

 

  DoCmd.SendObject ObjectType:=acSendReport, _

    ObjectName:=conReportName, _

    OutputFormat:=acFormatSNP, _

    To:=Me.メールアドレス, _

    Subject:="Purchase Orders", _

    MessageText:="Here is the Purchase Orders as of April 1, 2000"

 

 

cmdAdd_Click()イベントの処理

このイベントは、フォームから発注書の新規入力ボタンをクリックしたときに発生します。このイベントでは、Add_FS()関数を呼び出して新規レコードを追加して、フォーカスを発注先のコンボボックスに移動します。Add_FS()basMyLibに登録されていますので詳細はそちらを参照してください。

 

 

cmdPrint_Click()イベントの処理

このイベントは、フォームから発注書の印刷ボタンをクリックしたときに発生します。このイベントでは、DoCmdOpenReportメソッドで発注書のレポートをプレビュー印刷します。

 

 

SetFilter()の処理(フォームに新規登録したメソッド)

このメソッドは、引数で指定されたレポートのFilterプロパティにWhere条件を設定してレコードを絞込みます。このメソッドを使用するには、レポートのOnOpenイベントで、以下の記述します。IsLoaded()関数は、frmPurchaseOrderがロードされているか調べます。

 

Private Sub Report_Open(Cancel As Integer)

  If IsLoaded("frmPurchaseOrder") Then

    Forms("frmPurchaseOrder").SetFilter Me

  End If

End Sub

 

 

リスト6-6-4 frmPurchaseOrderのフォームモジュール

Option Compare Database

Option Explicit

 

Private Const conReportName = "rptPurchaseOrders"

 

Private Sub cbo発注先_AfterUpdate()

  Me.sfr発注明細.Form.cbo商品.Requery

End Sub

 

Private Sub cmdAdd_Click()

  Call Add_FS(Me)

  Me.cbo発注先.SetFocus

End Sub

 

Private Sub cmdSubmit_Click()

  On Error Resume Next

  DoCmd.SendObject ObjectType:=acSendReport, _

    ObjectName:=conReportName, _

    OutputFormat:=acFormatSNP, _

    To:=Me.メールアドレス, _

    Subject:="Purchase Orders", _

    MessageText:="Here is the Purchase Orders as of April 1, 2000"   

End Sub

 

Private Sub Form_BeforeUpdate(Cancel As Integer)

  Dim db As DAO.Database

  Dim rs As DAO.Recordset

  Dim lngSeqNo As Long

  Dim ctl As Control

 

  Dim lngW As Long

  Dim lngWait As Long

  Dim intRetryCount As Integer

  Const conLockRetries = 5

  Const conLockLBound = 2

  Const conLockUBound = 10

 

 

  For Each ctl In Me.Section(acDetail).Controls

    With ctl

      If .ControlType = acTextBox Or .ControlType = acComboBox Then

        If Len(Nz(.Tag, "")) <> 0 Then

          If IsNull(.Value) Or IsEmpty(.Value) Then

            MsgBox .Tag, vbExclamation

            .SetFocus

            Cancel = True

            Exit Sub

          End If

        End If

      End If

    End With

  Next ctl

 

  If Nz(Me.発注ID, 0) <> 0 Then

    Exit Sub

  End If

 

  Set db = CurrentDb

  Set rs = db.OpenRecordset("tbl仕入先", dbOpenDynaset)

  With rs

    .FindFirst "仕入先ID=" & Me.cbo発注先

    If Not .NoMatch Then

      .LockEdits = True

      On Error GoTo ExclErr

      .Edit

        !最終発注番号 = !最終発注番号 + 1

        lngSeqNo = !最終発注番号

      .Update

    Else

      lngSeqNo = 0

    End If

  End With

  Me.発注ID = Me.cbo発注先 * 10000 + lngSeqNo

 

ExitErr:

  On Error Resume Next

  rs.Close

  Set rs = Nothing

  Set db = Nothing

  Exit Sub

 

ExclErr:

  Select Case Err.Number

    Case 3186, 3202, 3187, 3189, 3197, 3188, 3260, 3218

      intRetryCount = intRetryCount + 1

      If intRetryCount <= conLockRetries Then

        DAO.DBEngine.Idle

        lngWait = intRetryCount ^ 2 * _

          Int((conLockUBound - conLockLBound + 1) * Rnd() + conLockLBound)

        For lngW = 1 To lngWait

          DoEvents

        Next lngW

        Resume

      Else

        MsgBox "排他制御エラーのためレコードの更新ができませんでした!", _

          vbCritical + vbOKOnly

        Cancel = True

        Resume ExitErr

      End If

    Case Else

      MsgBox "Error #" & Err.numer & ":" & _

        Err.Description, vbCritical + vbOKOnly

      Resume ExitErr

  End Select

End Sub

 

Private Sub Form_Current()

  Me.sfr発注明細.Form.cbo商品.Requery

End Sub

 

Private Sub Form_Open(Cancel As Integer)

    Me.cbo発注先.SetFocus

End Sub

 

Private Sub cmdPrint_Click()

  On Error Resume Next

  DoCmd.OpenReport conReportName, acViewPreview

End Sub

 

'--------------------------------------------------

' Form specific method called by rptPurchaseOrders

'--------------------------------------------------

Public Sub SetFilter(rpt As Report)

  With rpt

    .Filter = "tbl発注.発注ID=" & Me.発注ID

    .FilterOn = True

  End With

End Sub

 

 

cbo商品_GotFocus()イベントの処理

このイベントは、商品コンボボックスがフォーカスを取得したときに発生します。このイベントでは、商品コンボボックスのドロップダウンリストを表示させます。尚、コンボボックスの値集合ソースには、フィルタ条件が設定してありますのでメインフォームで選択した発注先の商品のみ表示されます。

 

 

cbo商品_AfterUpdate()イベントの処理

このイベントは、商品コンボボックスからアイテムを選択したときに発生します。このイベントでは、商品コンボボックスのカラム2、3から単価、単価入力日を取得してテキストボックスに設定します。

 

リスト6-6-5 sfrPurchaseOrderDetailsのフォームモジュール

Option Compare Database

Option Explicit

 

Private Sub cbo商品_AfterUpdate()

  Me.単価 = Me.cbo商品.Column(2)

  Me.単価入力日 = Me.cbo商品.Column(3)

End Sub

 

Private Sub cbo商品_GotFocus()

  Me.cbo商品.Dropdown

End Sub

 

ダウンロード (CH6-6.lzh)
Accessお手本データベースのホームへ戻る