【问题标题】:recordset data is not populated in txt field记录集数据未填充到 txt 字段中
【发布时间】: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。
  • 感谢回复,将落实建议并发布

标签: vba recordset


【解决方案1】:
...(((dtblAccount.[ACCOUNT_NO])='AcNo'))"

应该是

...(((dtblAccount.[ACCOUNT_NO])=" & AcNo & "))"

假设 ACCOUNT_NO 是一个数字字段。

您也没有填充 AcNo - 它的默认值为零。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-19
    • 1970-01-01
    • 2020-10-11
    • 2011-01-25
    • 2011-05-03
    • 1970-01-01
    • 2018-10-07
    • 2015-02-08
    相关资源
    最近更新 更多