【问题标题】:Run-Time error 3075 Access Syntax Error for combobox Search in AccessAccess 中组合框搜索的运行时错误 3075 访问语法错误
【发布时间】:2020-08-25 04:44:59
【问题描述】:

我正在学习如何使用组合框创建搜索框。我正在通过 youtube 上的视频学习: 访问:如何使用组合框创建搜索表单第 1 部分

但是,当我编写代码时,它不起作用。 :/ 我得到运行时错误 3075 访问语法错误。

Private Sub cboVendorSearch_AfterUpdate()
Dim MyVendor As String
MyVendor = "Select * from Vendors where ([vend_name] = " & Me.cboVendorSearch & ")"
Me.Invoices_subform.Form.RecordSource = MyVendor
Me.Invoices_subform.Form.Requery
End Sub

【问题讨论】:

  • 请注意:这不是搜索表单的代码,而是过滤表单。
  • 谢谢!一直在学SQL,以为是代码。
  • 是的,给定的代码将过滤器应用于表单。如果您想进行搜索并在不应用过滤器的情况下进行记录,那将是不同的代码。

标签: sql vba ms-access debugging


【解决方案1】:

假设 vend_name 是一个文本字段,需要撇号分隔符。

MyVendor = "SELECT * FROM Vendors WHERE [vend_name] = '" & Me.cboVendorSearch & "';"

除了设置 RecordSource,另一种方法是设置 Filter 属性。

Me.Invoices_subform.Form.Filter = "[vend_name] = '" & Me.cboVendorSearch & "'"
Me.Invoices_subform.Form.FilterOn = True

使用供应商 ID 作为搜索条件可能会更好。探索多列组合框,其中 ID 字段是隐藏列,但组合框使用隐藏列作为其值,但向用户显示 vend_name。

【讨论】:

  • Private Sub VendorSearch_AfterUpdate() Dim myVendor As String myVendor = "SELECT * FROM Vendor WHERE [vend_name] = '" & Me.VendorSearch & "';" Me.Filter -"[vend_name] = '" & Me.VendorSearch & "'" Me.FilterOn = True End Sub
  • 代码无效:/我无法使用 ID...我有很多供应商,输入时不记得他们的号码。我还能做什么?
  • 错误是调试,它以黄色显示我:Private Sub VendorSearch_AfterUpdate()
  • 它还说编译错误:无效使用属性。
  • Me.Filter 后面的连字符应该是=。见docs
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-03
  • 1970-01-01
  • 2012-12-13
  • 1970-01-01
相关资源
最近更新 更多