错误将数据typesvarchar转换为int – Excel VBA SQL

我试图从Microsoft SQL数据库中拉取邮政编码,并且所有工作都适用于美国邮政编码,但是一旦我开始使用加拿大邮政编码,我会收到以下消息:

将varchar值“L0S1J0”转换为数据typesint时转换失败。

我知道L0S1J0不是一个整数,但我不明白的是为什么Excel VBA想要将数据作为一个整数。 我尝试search除int以外的其他方式的数据,但是我没有运用正确的关键字。 我已经尝试了Cast和Convert之类的东西,但是除了从数据库中删除加拿大邮编外,我无法获得任何东西。

这是我的查询,我目前正在运行,邮政编码存储在LookupID字段下。

Select Distance1, Distance2, LookupID FROM excel.dbo.miles WHERE LookupID =" & Worksheets("sheet1").Range("C2").Value 

任何帮助,在此非常感谢!

你的问题在你的where子句中。 改成:

 WHERE LookupID ='" & Worksheets("sheet1").Range("C2").Value & "'" 

你需要把单引号围绕string文字。

您应该考虑执行参数化查询以防止SQL注入问题。 例如,使用ADO使用CreateParameter方法。