【发布时间】:2021-11-01 07:18:54
【问题描述】:
我会尽量详细解释。
我有一个用于输入数据的 MS Access 表单。表单上的一些字段是来自 SQL Server 中的链接表的组合框。
我想让用户输入一个 8 位数字,然后在后台运行查询以在不同的文本字段中显示某种类型的值。 8 位数字可以有一个或多个组合映射到一个值。
例如,以下所有数字都与特定类型的值有关,当输入其中任何一个时,应在 SECOND 文本框中查找该值:
78538973
81004495
82308883
82308892
然而,这些数字映射到应在第二个文本框中查找的另一种类型的值
51692496
53092638
55802678
我能想到的最简单的方法是创建一个“映射”表,其中包含映射到每种类型的所有数字组合...然后在文本框中使用一个事件,该事件对该映射表运行 SQL 查询并返回应该根据数字查找的值。
- 这行得通吗?
- 是否有更简单/更好的方法来实现这一目标?
- 谁能指出我正确的方向让 VBA 代码执行此操作?
目前第二个文本框只是一个带有行源查询的组合框:
SELECT code, mascode_desc
FROM XXXXX
ORDER BY code, mascode_desc;
谢谢。
【问题讨论】:
-
很难回答您的问题,因为不清楚输入数字的不同“类型”与您需要为每种类型运行的查询之间的关系。不过总的来说,使用映射表似乎没问题。
-
蒂姆,感谢您的快速回复。简而言之,这 8 位数字映射到乐器的类型。例如,有些会映射到小提琴。有些会映射到小号。有些会映射到单簧管等。这有意义吗?
-
是的 - 映射表听起来不错,但如果不了解数据库的结构,就很难说其他任何内容。
-
您发布的代码,使用
WHERE子句获取映射值。然后在 TextBox after_update 事件中编写代码MyComboBox1.Requery以将结果更新到组合框。