连接文件并分配给Access中的行源时键入不匹配错误

时间:2016-06-17 12:25:10

标签: sql ms-access listcontrol

我有一个名为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;"

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

2 个答案:

答案 0 :(得分:2)

请在查询中使用单引号'代替"

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

答案 1 :(得分:1)

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

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

您收到type mismatch错误,因为您有效地尝试在此处减去两个字符串,而您无法真正添加或减少字符串。

此外,您应该拥有计算字段的别名。 {(1}}运算符在上述答案中起作用的地方。