使用sql命令将数据从Microsoft Access导入Excel时出现问题。我用" ADODB"将Excel与Access连接。 我在Access中有几个表。我想在TrackNo上输入并使用命令按钮运行命令时获取ClientDesc和ProductDesc。我尝试使用内连接(不完整,没有ProductTB),但我只得到第一行信息。
那么我如何获得所有相应/必需的信息(ClientDesc和ProductDesc)?
以下是我目前的Excel模块代码。
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
附上 sample
答案 0 :(得分:0)
只需遍历您的记录集:
i = 2
Do While Not Rs.EOF
Cells(i, 2) = Rs("Customer")
Cells(i, 3) = Rs("ClientDesc")
i = i + 1
Rs.MoveNext
Loop
或者,如果内存允许,请使用Excel方法:CopyFromRecordset
Cells(2,2).CopyFromRecordset Rs
答案 1 :(得分:-1)
在循环之前,我必须在记录集上使用.MoveLast后跟.MoveFirst,以引入多行。