※ ChatGPTを利用し、要約された質問です(原文:コンボボックスにレコードセットでリストをセットする)
コンボボックスにレコードセットでリストをセットする
このQ&Aのポイント
Access2013/VBAでコンボボックスにレコードセットでリストをセットする方法を教えてください。
コンボボックスの設定やデータソースの指定などによって、リストが空になるエラーが発生しています。解決方法を教えてください。
コンボボックスのリストが空になる問題を解決するために、VBAコードによってリストを取得しセットする方法を教えてください。
コンボボックスにレコードセットでリストをセットする
【Access2013/VBA】
■テーブル構成
【分析テーブル】
・分析ID(主キー)
・依頼ID(外部キー)
・会社ID
【会社管理テーブル】
・会社ID(主キー)
・会社名
■コード
Dim Rst As DAO.Recordset
Dim Db As DAO.Database
Dim SQL As String
Dim lngID As Long
Dim FlgWinLoad As Boolean
Me.FlgWinLoad = modPub.FlgWindowLoading
lngID = modPub.Selected依頼ID
'コンボボックスの設定
SQL = "SELECT DISTINCT [分析テーブル].[会社ID] as [会社ID1], "
SQL = SQL & " [分析テーブル].[依頼ID], "
SQL = SQL & " [会社管理テーブル].[会社ID] AS [会社ID2], "
SQL = SQL & " [分析テーブル].[会社ID] AS [会社ID3], "
SQL = SQL & " [会社管理テーブル].[会社名] "
SQL = SQL & "FROM [分析テーブル] LEFT JOIN [会社管理テーブル] ON "
SQL = SQL & " [分析テーブル].[会社ID] = [会社管理テーブル].[会社ID] "
SQL = SQL & "where [依頼ID]=" & lngID & " "
SQL = SQL & "ORDER BY [分析テーブル].[依頼ID] "
Set Db = CurrentDb
Set Rst = Db.OpenRecordset(SQL, dbOpenDynaset)
If Rst.EOF = True And Rst.EOF = True Then
GoTo errH
End If
Me.cmbo会社ID.ColumnCount = 5
Me.cmbo会社ID.ColumnWidth = "1cm;1cm;1cm;3cm;3cm"
Me.cmbo会社ID.RowSource = "会社ID1;依頼ID;会社ID2;会社ID3;会社名"
Me.cmbo施工会社ID.RowSourceType = "テーブル/クエリ"
Set Me.cmbo施工会社ID.Recordset = Rst.Clone
■コード の終わり
エラーになりませんが、画面でコンボボックスのリストが空になります。
解決方法を教えて頂きたいと思います。
よろしくお願いします。
お礼
ご回答ありがとうございました。 実は、この質問を上げた後に、自分で解決出来ました。 やり方は、凄く簡単で何だ、こんなことか・・・と思いましたが Me.cmbo会社ID.RowSource = SQL これだけでした。