Access (VBA)

Access VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Pro : Access 2016)
レポート内のSQLの値をラベルに代入
投稿日時: 23/03/28 12:38:53
投稿者: みたらい

こんにちはお忙しいところ失礼いたします。レポートのオープン時に動くコードで、SQLで抽出してラベル(会社情報)に代入したいのですが、「型が一致しません」というエラーが出て解決できません。ご教示お願いします。
 
Private Sub Report_Open(Cancel As Integer)
On Error GoTo err1
    Dim rs As Recordset
    Dim sql As String
 
    Set db = CurrentDb
    sql = "SELECT 会社名,登録番号,郵便番号,住所1,住所2,TEL,FAX,URL " _
        & " FROM 基本情報 " _
        & " WHERE ID =0 "
 Debug.Print sql
    Set rs = CurrentProject.Connection.Execute(sql)
        Me.会社情報 = rs("登録番号") & vbCrLf _
        & rs("郵便番号") & vbCrLf _
        & rs("住所1") & vbCrLf _
        & rs("住所2") & vbCrLf _
        & "TEL:" & rs("TEL") & vbCrLf _
        & "FAX:" & rs("FAX") & vbCrLf _
        & "WEB:" & rs("URL")
    rs.Close
  Exit Sub
err1:
    MsgBox Err.Description
End Sub

回答
投稿日時: 23/03/28 14:56:39
投稿者: sk

引用:
Dim rs As Recordset

変数 rs の型が DAO.Recordset オブジェクトであるのに対し、
 
引用:
Set rs = CurrentProject.Connection.Execute(sql)

ここでの Execute メソッドの戻り値の型が
ADODB.Recordset オブジェクトだからでしょう。
 
とりあえず、そのプロジェクトのライブラリ参照設定を
確認されることをお奨めします。

投稿日時: 23/03/28 16:52:02
投稿者: みたらい

ライブラリ参照設定を確認したところ初期設定で入っている4つ以外に
Microsoft ActiveX Data Object 2.1 Library
Microsoft Visual Basic for Applications Extensibility 5.3
が入っていました。
 
レコードセットの型を下記に変更したら動作しました。
Dim rs As ADODB.Recordset
ありがとうございました。

投稿日時: 23/03/29 10:27:57
投稿者: みたらい

aaaddあ