【发布时间】:2019-09-12 07:39:07
【问题描述】:
我是 Access 和 VBA 的新手,我正在尝试探索。我有一个表单,其中有两个文本框(txtAc 和 txtFirstName),我希望根据基于 txtAc 参数的 SQL 查询将数据填充到 txtFirstName 中。我试图通过记录集来实现相同的目标。请在下面查看我的代码:-
Private Sub txtCust_Click()
Dim cnn As ADODB.Connection
Dim strSQL As String
Dim rst As ADODB.Recordset
Set cnn = CurrentProject.Connection
Dim i As Integer
Dim Records As Integer
Dim AcN As Double
Dim AcNo As Double
AcN = Forms!dfrmAccount!txtAc.Value
AcN = AcNo
strSQL = "SELECT dtblCustomer.[FIRST_N], dtblAccount.[ACCOUNT_NO] FROM
dtblAccount INNER JOIN dtblCustomer ON dtblAccount.[CUSTOMER_ID] =
dtblCustomer.[CUSTOMER_ID] WHERE (((dtblAccount.[ACCOUNT_NO])='AcNo'))"
Set rst = New ADODB.Recordset
rst.CursorLocation = adUseClient
rst.Open strSQL, cnn
Records = rst.RecordCount
Debug.Print rst.RecordCount
For i = 1 To Records
Me.txtFirstName.Value = rst.Fields!FIRST_N
Debug.Print rst.Fields!FIRST_N
rst.MoveNext
Next i
'' Clean up
rst.CLOSE
Set rst = Nothing
End Sub
提前致谢。请有人帮忙。
【问题讨论】:
-
执行此代码时出现错误“标准表达式中的数据类型不匹配”
-
查询只返回一行?由于您是新手,请从通常的绑定表单开始。将您的 sql(省略 where 部分)添加到表单记录源并将 fcontrols 绑定到字段/控件源)。在表单上使用 Agodb 是精通。 VBA 整数限制为 -32768 到 32767(16 位/2 字节),可能超出记录数。请改用 Long。
-
感谢回复,将落实建议并发布