【发布时间】:2013-08-21 20:50:48
【问题描述】:
这里是 VBA 新手(截至本次哀悼),
在 MS Access 中,我编写了一个测试函数,用于根据您传入的某些条件查找记录的值。
该功能似乎工作正常,除非在我正在搜索的列中有查找。
基本上它可能会返回“19”,而 19 对应于其他一些表值。
似乎该列的 RowSource 是我之后的内容,因此我可以进行第二次查询以找到真实值。
假设我知道列名,然后利用它来查找我之后的值,有人可以指出我找到 RowSource 的正确方向吗?
编辑:我似乎没有清楚地解释自己,这是我试图以编程方式获得的图片
【问题讨论】:
-
不太确定我是否正确理解了您的问题,但我尝试了您的代码并且它有效。我想知道您的问题是否不在于您的 SELECT 实际上带回了不止一行,并为您提供了与您预期不同的值。你的
recordSet只会给你第一条记录。要移至下一个,您可以使用recordSet.MoveNext。尝试在查询中运行 SELECT,看看它是否只带回一行。如果是这样,请尝试更详细地解释问题。 -
附带说明-如果没有任何结果,您将遇到麻烦-因此您还需要进行检查,例如
If Not recordSet.EOF Then result = recordSet(column) -
我添加了图片来更清楚地解释 myslef 哈哈
-
您指向的“RowSource”只是一个查询,用于填充打开该表时显示的组合框。我看不到 RowSource 将如何帮助您从函数中获取正确的值。在您的
lookUpColumnValue函数中,在sql = "SELECT...行之后,请尝试添加另一行:MsgBox sql,并让我们知道您在运行代码时会显示什么SQL 语句。此外,尝试创建一个新查询并运行该 SQL 语句,并向我们展示结果。我认为这应该会有所帮助。 -
SELECT [FI - ROOM].[Main Space Category] FROM [FI - ROOM] WHERE [FI - ROOM].[Room No] = [parm1] ----- 我认为我需要知道行源是什么,以便在运行此查询并获取数值后,我可以运行行源查询以获取它查找的字符串值。
标签: ms-access vba lookup-tables