【问题标题】:VBA Syntax ErrorVBA 语法错误
【发布时间】:2016-06-22 23:26:00
【问题描述】:

我正在尝试使用未绑定的文本框和按钮来搜索我的 ID 列 (Barcode) 并在表单中列出记录。

我遇到的问题是,根据许多示例,它看起来是正确的,但我是 VBA 新手。

Private Sub searchbutton_Click()

Dim db As DAO.Database
Dim rst As DAO.Recordset

DoCmd.OpenForm "Update"

Set rst = Forms!Update.Recordset.Clone

rst.FindFirst (Barcode) =  & Me.searchtext
Forms!Update.Bookmark = rst.Bookmark

DoCmd.Close acForm, Me.Name

End Sub

问题在于rst.FindFirst (Barcode) = & Me.searchtext 行并引发语法错误,但没有具体细节。

我也试过了:

rst.FindFirst [Barcode] = Me.searchtext
rst.FindFirst "[Barcode] = " Me.searchtext
rst.FindFirst (Barcode) = " Me.searchtext

[Barcode] 行抛出:

运行时错误“3464”条件表达式中的数据类型不匹配。

条形码字段是 ShortText,因为它需要支持我的条形码,即“000001”.....

【问题讨论】:

  • 同样的问题,条形码是短文本,因为我需要保留条形码上的开头 000,抱歉我忘记添加了
  • 没有,仍然是语法错误
  • 我遗漏了一个需要的 & 字符。应该是这样的:rst.FindFirst "[Barcode] = '" & Me.searchtext & "'"
  • 这似乎使我的表单消失但没有语法错误
  • 那是因为脚本告诉它关闭,是的,工作得很好,谢谢。弹出它作为答案并且不接受

标签: ms-access vba


【解决方案1】:

FindFirst一个字符串表达式...

'rst.FindFirst (Barcode) =  & Me.searchtext
rst.FindFirst "[Barcode] = '" & Me.searchtext & "'"

但是,我不确定为什么原始代码会触发运行时错误。给FindFirst this ... (Barcode) = & Me.searchtext ... 应该会触发编译错误。我不明白你为什么没有收到编译错误。确保在代码模块的声明部分中有Option Explicit

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-26
    • 1970-01-01
    • 1970-01-01
    • 2021-10-28
    • 1970-01-01
    • 2021-08-17
    • 1970-01-01
    相关资源
    最近更新 更多