注意:请多多包涵,因为我对 Access 还比较陌生……我所学到的一切都是通过必要的 Google 搜索获得的。
所以我正在创建一个表单,其唯一目的是搜索数据库。在一个用例中,用户可以选择多个选项来过滤搜索,出于隐私原因,我们可以说“蓝色、绿色、红色、棕色”。用户可以选择这些颜色的任意组合,包括全部或无。在数据库表中,有一个主键(在我们的例子中是一个 ItemID)。表中的其他列是上面的颜色(蓝色、绿色、红色、棕色)。由于这些数据的结构(注意:由于多种原因我无法更改它),我必须在 VBA 中创建这个 SQL 查询,而不是使用 Access 提供的。
这是我在按下“搜索”按钮时用来创建和运行查询的代码:
Set qdf = Nothing
*Logic to create SQL query... variable to hold query is called sqlStr*
Set qdf = CurrentDb.CreateQueryDef("TemporaryQuery", sqlStr)
DoCmd.OpenQuery qdf.Name
经过大量搜索,这是我发现的唯一方法,除了使用 ADO 之外,我可以在 VBA 中创建 SQL 查询,然后在 VBA 中运行它。这种方法虽然有效,但它的缺点是它会创建一个查询,必须先关闭并删除该查询,然后才能再次运行该查询。对于将要使用它的用户来说,这是不可接受的。
我发现的所有示例(请耐心等待)都使用 ADO,但我无法开始工作。我有两个数据库,一个用于查询和表单,一个用于数据本身。包含数据的数据库的表通过查询和表单链接到数据库。我不确定 ADO 是否可以在该设置中工作,但如果可以,我无法弄清楚。
来自使用 Access 的 Java/Webdev 背景对我来说有点令人沮丧,因为它似乎使事情变得更加复杂(在我看来)它应该是。谁能帮我让它正常工作?
感谢您的宝贵时间...非常感谢!