【问题标题】:Textbox as a wildcard search to populate another textbox using SQL Server Linked table in MS Access文本框作为通配符搜索使用 MS Access 中的 SQL Server 链接表填充另一个文本框
【发布时间】:2021-11-01 07:18:54
【问题描述】:

我会尽量详细解释。

我有一个用于输入数据的 MS Access 表单。表单上的一些字段是来自 SQL Server 中的链接表的组合框。

我想让用户输入一个 8 位数字,然后在后台运行查询以在不同的文本字段中显示某种类型的值。 8 位数字可以有一个或多个组合映射到一个值。

例如,以下所有数字都与特定类型的值有关,当输入其中任何一个时,应在 SECOND 文本框中查找该值:

78538973
81004495
82308883
82308892

然而,这些数字映射到应在第二个文本框中查找的另一种类型的值

51692496
53092638
55802678

我能想到的最简单的方法是创建一个“映射”表,其中包含映射到每种类型的所有数字组合...然后在文本框中使用一个事件,该事件对该映射表运行 SQL 查询并返回应该根据数字查找的值。

  1. 这行得通吗?
  2. 是否有更简单/更好的方法来实现这一目标?
  3. 谁能指出我正确的方向让 VBA 代码执行此操作?

目前第二个文本框只是一个带有行源查询的组合框:

SELECT code, mascode_desc
FROM XXXXX
ORDER BY code, mascode_desc;

谢谢。

【问题讨论】:

  • 很难回答您的问题,因为不清楚输入数字的不同“类型”与您需要为每种类型运行的查询之间的关系。不过总的来说,使用映射表似乎没问题。
  • 蒂姆,感谢您的快速回复。简而言之,这 8 位数字映射到乐器的类型。例如,有些会映射到小提琴。有些会映射到小号。有些会映射到单簧管等。这有意义吗?
  • 是的 - 映射表听起来不错,但如果不了解数据库的结构,就很难说其他任何内容。
  • 您发布的代码,使用WHERE 子句获取映射值。然后在 TextBox after_update 事件中编写代码MyComboBox1.Requery 以将结果更新到组合框。

标签: sql vba ms-access


【解决方案1】:

我会将解决方案发布给那些希望实现相同目标的人。

我能够在 MS Access 中从 SQL 服务器上的 BI 数据仓库使用三个链接表,而不是使用本地访问或链接 SQL 映射表。

我构建了一个查询字符串来将表连接在一起,并返回与用户在文本框搜索字段中键入的值相匹配的产品信息。

然后在一个包含六列的列表框中返回结果,并根据用户输入进行过滤。例如,如果我输入 7582,列表框将只显示匹配 7852 的记录和产品。如果我在文本字段中不输入任何值,它将返回所有产品信息。我使用“查找”按钮来实现这一点,但同样可以使用 OnChange 或 AfterUpdate 事件来实现……但我的用户更喜欢点击按钮。

用户可以点击选定的项目,点击上传按钮,然后将记录详细信息和其他一些字段上传回 SQL Server 到不同的表中(这样做是有逻辑和原因的)准备添加到其他地方的另一个表中

谢谢。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-07-04
    • 1970-01-01
    • 2013-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-09
    相关资源
    最近更新 更多