【发布时间】:2019-08-01 21:01:26
【问题描述】:
我正在使用从其他人那里继承的 MS Access 2016 中的 Access 数据库。其中一个表有一个包含 2 个值的字段 (EthnicID):第一列包含一个数字值,即 ID,第二列包含一个字符串值,其中包含与 ID 号关联的描述。例如:1、“非裔美国人/黑人”; 2、“高加索人”; 3,“西班牙裔/拉丁裔”;等等。这些值来自名为 tbl_Ethnicity 的查找表。
包含 [EthnicID] 字段 (tblClients) 的表在“查找”选项卡的表设计中显示以下字段属性: 显示控制:组合框 行源类型:表/查询 行来源:tbl_Ethnicity 绑定列:1 列数:2 列宽:0";1" “常规”选项卡显示以下字段属性: 字段大小:长整数 格式: 默认值:0
正如您可能期望的那样,当我查看 tblClients 时,EthnicID 字段/列会显示一个字符串值。
但是,我正在编写一些代码来根据从 tblClients 中提取的值以及来自其他各种表的值生成一个新表(我们不要讨论这是否是最好的方法!)。该过程涉及生成一个新的记录集,然后我循环遍历该记录集。在 VBA 中用于生成记录集 (rst) 的 SQL 中,我让它选择“tblClient.EthnicID”并且我希望返回 string 值。但是,rst!EthnicID 始终返回一个数值,而不是字符串值。我也尝试过 rst.Fields(9) 和 rst.Fields(9).Column(1) 和 rst.Fields(9, 1)。要么这些不起作用,要么它们也返回一个数值;将 1 更改为 2 也不会返回字符串(我很确定这些列是从零开始的)。
是否可以让SQL返回表格中显示的表格第二列的字符串值而不是数值?
(我确实意识到我可以在 VBA 中使用 DLookup 或选择语句,但是由于字符串值已经显示在表中,我认为直接获取字符串值而不是查找会更有效再次增加 tbl_Ethnicity 中的字符串值。)
我在网上搜索并没有找到答案,但我可能在搜索中使用了错误的词。
感谢您的任何想法!
【问题讨论】: