0

我有一个名为列表控件的表单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;"

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

4

2 回答 2

2

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

SELECT FullName, City & ' - ' & Region AS Location 
FROM tblContact ORDER BY FullName;
于 2016-06-17T12:40:43.093 回答
1
lstSQL = "SELECT FullName, City & ' - ' & Region AS Location FROM tblContact ORDER BY FullName;"

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

您收到type mismatch错误是因为您在此处有效地尝试减去两个字符串,并且您不能真正添加​​或减去字符串。

此外,您应该有一个计算域的别名。这就是AS运营商在上述答案中发挥作用的地方。

于 2016-06-17T15:32:42.183 回答