连接字段并分配给 Access 中的行源时出现类型不匹配错误

Type mismatch error when concatenating fileds and assigning to Row source in Access

我有一个带有名为 lstCustomer 的列表控件的表单。我正在向 rowsource 方法传递一个字符串,如下所示

me.lstCustomer.RowSource = lstSQL

在分配给 rowSource 方法之前指定 lstSQL。

lstSQL = "SELECT FullName, City & " - " & Region AS Location FROM tblContact ORDER BY FullName;"

这会产生错误 Type Mismatch

当我不使用串联列时,我不会收到此错误。我尝试了下面的代码(这不会产生错误)

lstSQL = "SELECT FullName, City, Region FROM tblContact ORDER BY FullName;"

我想在一个列中显示城市和地区。请指出我的错误。 提前致谢。

请在查询中使用单引号 ' 而不是 ":

SELECT FullName, City & ' - ' & Region AS Location 
FROM tblContact ORDER BY FullName;
lstSQL = "SELECT FullName, City & ' - ' & Region AS Location FROM tblContact ORDER BY FullName;"

两件事:在引号内必须使用单引号或转义字符。否则,VBA 会混淆您的文字字符串的开始和停止位置。双引号意味着将中间的所有内容都作为文字。双引号内的单引号是当 SELECT 语句实际上是 运行.

时的文字

您收到 type mismatch 错误是因为您实际上是在尝试在此处减去两个字符串,而您实际上无法添加或减去字符串。

另外,您应该有一个计算字段的别名。这就是 AS 运算符在上述答案中发挥作用的地方。