ExcelからADOでAccessにデータを登録してみます。
使用するAccessファイル
Accessファイルは以下のパスに置かれています。
C:\access-register-test\MenuData.accdb
Accessにはテーブル「T_メニュー」があります。
T_メニューにはメニューデータが記録されています。
テーブルは以下のフィールドで構成されています。
フィールド名 | データ型 |
ID | オートナンバー型 |
メニュー名 | 短いテキスト |
値段 | 数値型 |
データ新規登録者 | 短いテキスト |
データ新規登録日 | 日付/時刻型 |
データ更新者 | 短いテキスト |
データ更新日 | 日付/時刻型 |
新規登録フォーム
今回はCさんがピザを880円で新規登録するとしてみます。
メニューをデータベースに新規登録したいので
データ登録用のフォームをシートに用意します。
シート名はRegisterとします。
メニュー名、値段、データ新規登録者の名前を入力します。
A3セルに登録したいメニューを入力します。
B3セルにメニューの値段を入力します。
C3セルにデータ新規登録者の名前を入力します。
データ登録のVBAコード
参照設定
ExcelからADOを利用してAccessのデータを更新するには
参照設定を行う必要があります。
参照設定の方法は以下をご覧ください。

VBAで参照設定を行う
VBAに標準で含まれていない機能があるときは
外部のライブラリを参照して、外部ライブラリ内の機能を利用します。
この外部ライブラリの機能を利用する設定を、参照設定と言います。
参照設定を起動してMicrosoft ActiveX Data Objects 6.1 Libraryに
チェックを入れます。
Accessにデータを登録するコードは以下になります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
Option Explicit Sub registerMenu() Dim registerSht As Worksheet Set registerSht = ThisWorkbook.Worksheets("Register") Dim adoCON As New ADODB.Connection Dim dbPath As String dbPath = "C:\access-register-test\MenuData.accdb" adoCON.ConnectionString = "provider=Microsoft.ACE.OLEDB.12.0;" & _ "Data Source=" & dbPath & ";" adoCON.Open Dim adoRS As New ADODB.Recordset adoRS.Open "T_メニュー", adoCON, adOpenDynamic, adLockPessimistic Dim menuName As String Dim price As Long Dim personName As String menuName = registerSht.Range("A3") price = registerSht.Range("B3") personName = registerSht.Range("C3") adoRS.AddNew adoRS!メニュー名 = menuName adoRS!値段 = price adoRS!データ新規登録者 = personName adoRS!データ新規登録日 = Now() adoRS.Update adoRS.Close adoCON.Close Set registerSht = Nothing Set adoCON = Nothing Set adoRS = Nothing MsgBox "メニューを登録しました", vbInformation, "登録完了" End Sub |
データの登録テスト
登録ボタンを押した時にregisterMenuプロシージャを呼び出すように設定します。
登録ボタンをクリックすると入力したデータを登録します。
登録が完了するとメッセージボックスが表示されます。
Accessのデータを見るとT_メニューにピザのデータが登録されています。
コメント