用于从access表中检索特定信息的Excel SQL命令
使用sql命令将数据从Microsoft Access导入Excel时出现问题。我使用“ADODB”将Excel与Access连接起来。 我在Access中有几个表。当我在TrackNo上输入时,我想获得ClientDesc和ProductDesc,并使用命令按钮来运行命令。我尝试使用内部联接(不完整,没有ProductTB),但我只得到第一行信息 那么,我如何获得所有相应/必需的信息(ClientDesc和ProductDesc) 下面是我当前的Excel模块代码用于从access表中检索特定信息的Excel SQL命令,excel,ms-access,vba,Excel,Ms Access,Vba,使用sql命令将数据从Microsoft Access导入Excel时出现问题。我使用“ADODB”将Excel与Access连接起来。 我在Access中有几个表。当我在TrackNo上输入时,我想获得ClientDesc和ProductDesc,并使用命令按钮来运行命令。我尝试使用内部联接(不完整,没有ProductTB),但我只得到第一行信息 那么,我如何获得所有相应/必需的信息(ClientDesc和ProductDesc) 下面是我当前的Excel模块代码 Option Explici
Option Explicit
Public Const DBLink As String = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=C:\Users\User\Desktop\Mother File.accdb;"
Public Sub SearchTrack(asd As String)
Dim CN As ADODB.Connection
Dim Rs As ADODB.Recordset
Set Rs = New ADODB.Recordset
Set CN = New ADODB.Connection
CN.Open DBLink
Set Rs = CN.Execute("select MotherTb.Customer, ClientTb.ClientDesc from MotherTb inner join ClientTb on Mother.Customer = ClientTb.ClientID")
If Not Rs.EOF Then
Cells(2, 2) = Rs("ClientDesc")
Else
MsgBox "Record not found"
End If
Set Rs = Nothing
End Sub
附
只需在记录集中循环:
i = 2
Do While Not Rs.EOF
Cells(i, 2) = Rs("Customer")
Cells(i, 3) = Rs("ClientDesc")
i = i + 1
Rs.MoveNext
Loop
或者,如果内存允许,使用Excel方法:
在循环之前,我必须在记录集中使用.MoveLast后跟.MoveFirst来引入多行。很抱歉,我仍然无法让它工作。目的是根据MotherTb中的值从其他表中获取相关描述。对不起,我是vba新手。这是SQL查询问题,不是vba。请编辑您的帖子,以显示相关的表和字段,以便在记录集调用中生成查询语句。对于由此造成的混乱,我们深表歉意,帖子已编辑,随附示例。
Cells(2,2).CopyFromRecordset Rs