VBAを使用して、SELECT文を使ってMe![番号]の値に基づいてテーブルQ_所属からIDを取得し、それをMe![部]に代入するコードを作成する方法について説明します。
まず、以下のようなコードを使用して、ADOライブラリを使用してデータベースに接続します。
“`vba
Dim con As Object
Set con = CreateObject(“ADODB.Connection”)
con.Open “Provider=Microsoft.ACE.OLEDB.12.0;Data Source=path_to_database.accdb”
“`
次に、SELECT文を使用してデータを取得し、結果をレコードセットに格納します。
“`vba
Dim rs As Object
Set rs = CreateObject(“ADODB.Recordset”)
Dim strSQL As String
strSQL = “SELECT ID FROM Q_所属 WHERE 番号 = ” & Me![番号]
rs.Open strSQL, con, 1, 1
“`
次に、レコードセット内の値を取得して、Me![部]に代入します。
“`vba
If Not rs.EOF Then
Me![部] = rs.Fields(“ID”).Value
End If
rs.Close
Set rs = Nothing
con.Close
Set con = Nothing
“`
以上のコードをVBAエディタで開いて試してみてください。適切なデータベースファイルのパスを指定してください。
このコードは、Me![番号]の値に基づいてテーブルQ_所属からIDを取得し、それをMe![部]に代入するためのものです。必要に応じてコードをカスタマイズし、エラー処理を追加することもできます。
ご参考までに、DLookup関数を使用する代わりにSELECT文を使用することで、より柔軟性のあるコードを作成できます。ただし、必要なデータベースファイルのパスを正しく指定していることを確認してください。また、データベースへの接続に関する設定についても適切に行ってください。