Access 2010 VBA ADODB Recordset returns 只有一条记录

Access 2010 VBA ADODB Recordset returns only one record

几个小时以来,我一直在尝试,但没有找到解决方案...这是代码:

Private Sub Form_Load()
    Dim Cn As New ADODB.Connection
    Dim Rs As New ADODB.Recordset

    Cn.Provider = "SQLOLEDB.1"
    Cn.CursorLocation = adUseClient
    Cn.ConnectionString = "Password=*************;" & _
    "Persist Security Info=True;" & _
    "User ID=sa;" & _
    "Initial Catalog=pA-StdVK-KalkDB_V1;" & _
    "Data Source=WINSER27"
    Cn.Open

    Rs.Open "SELECT * FROM [dbo].[VIEW_Superliste_000]", Cn

    ' Me ist im Formular Name und Rs das Column im SQL Server
    Me.TeileGruppe.Value = Rs.Fields("Teilegruppe")
    Me.PlanTGrpSpanne_Stfl1.Value = Rs.Fields("Plan-TGrp-Spanne_Stfl1")
    Me.PlanTGrpSpanne_Stfl2.Value = Rs.Fields("Plan-TGrp-Spanne_Stfl2")
    Me.PlanTGrpSpanne_Stfl3.Value = Rs.Fields("Plan-TGrp-Spanne_Stfl3")
    ...
    Me.Suchbegriff.Value = Rs.Fields("Suchbegriff")
    Me.Selektion.Value = Rs.Fields("Selektion")
    Me.Katalogartikel.Value = Rs.Fields("Katalogartikel")
    Me.Sparte.Value = Rs.Fields("Sparte")

    Dim i As Long
    i = 0

    Do Until Rs.EOF
        i = i + 1
        Rs.MoveNext
    Loop

    Rs.Close


ExitSub:
    Set Rs = Nothing
    Exit Sub
ErrorHandler:
    Resume ExitSub
End Sub

...我在 Whosebug 上缩短了这里的代码,它并没有那么长!!!

为什么我只有一条记录???

尝试将代码更改为如下内容:

Rs.MoveFirst
Do Until Rs.EOF

Me.TeileGruppe.Value = Rs.Fields("Teilegruppe")
Me.PlanTGrpSpanne_Stfl1.Value = Rs.Fields("Plan-TGrp-Spanne_Stfl1")
Me.PlanTGrpSpanne_Stfl2.Value = Rs.Fields("Plan-TGrp-Spanne_Stfl2")
Me.PlanTGrpSpanne_Stfl3.Value = Rs.Fields("Plan-TGrp-Spanne_Stfl3")
...
Me.Suchbegriff.Value = Rs.Fields("Suchbegriff")
Me.Selektion.Value = Rs.Fields("Selektion")
Me.Katalogartikel.Value = Rs.Fields("Katalogartikel")
Me.Sparte.Value = Rs.Fields("Sparte")

Rs.MoveNext
Loop

在您的代码中,您将第一个记录集加载到表单中,然后循环遍历所有记录集,使用此代码,您循环遍历记录并将每个记录集加载到表单中。 但是每次文本框的值都会被替换,所以你很可能只会看到最后一条记录。