「AccessのVBAで、DLookupを使用せずにSELECT文を使って、Me![番号]の値に基づいてテーブルQ_所属からIDを取得し、それをMe![部]に代入するコードを作成したいです。どのようにすれば実現できるでしょうか?」

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文を使用することで、より柔軟性のあるコードを作成できます。ただし、必要なデータベースファイルのパスを正しく指定していることを確認してください。また、データベースへの接続に関する設定についても適切に行ってください。

コメントを残す