VBA Access SQL-邮政编码(9位)拆分为4个数据类型不匹配错误

VBA Access SQL-邮政编码(9位)拆分为4个数据类型不匹配错误,sql,ms-access,vba,Sql,Ms Access,Vba,我目前有一个将Excel导入表格的系统,其中包括邮政编码。邮政编码有10个字符的实例,有时只有前5个字符 我正在寻找一种方法,它可以检测一个有10个字符,扩展名为4位的字符,并将这4个字符放在不同的字段中。下面是我的代码。但是,它给了我一个数据类型不匹配的问题 有人能帮我找出哪里出了问题吗?邮政编码和邮政编码扩展名都是带有默认设置的文本字段。批次号只是当前导入,此条件适用于导入的所有其他部分。因此,除非我在批处理时出现语法错误,否则这不是问题 当前获取的错误:“条件表达式中的数据类型不匹配。”

我目前有一个将Excel导入表格的系统,其中包括邮政编码。邮政编码有10个字符的实例,有时只有前5个字符

我正在寻找一种方法,它可以检测一个有10个字符,扩展名为4位的字符,并将这4个字符放在不同的字段中。下面是我的代码。但是,它给了我一个数据类型不匹配的问题

有人能帮我找出哪里出了问题吗?邮政编码和邮政编码扩展名都是带有默认设置的文本字段。批次号只是当前导入,此条件适用于导入的所有其他部分。因此,除非我在批处理时出现语法错误,否则这不是问题

当前获取的错误:“条件表达式中的数据类型不匹配。”


你确定li_batch_no是字符串吗?尝试用以下内容替换代码的最后一行:

" WHERE (LEN([Zip Code]) > 5) AND (BATCH_NO = " & cstr(li_batch_no) & ")"

你确定邮政编码中有一个“-”,而且它们的格式不是那样的吗?当你点击一个有长拉链的单元格时,破折号在那里吗?Excel有一个添加破折号的自定义格式。只需三次检查我的Excel输入文件-这些值在邮政编码值中确实有一个“-”,这就是阻止我将字段作为数字字段的原因(我想?)以前我在字段设置为数字时有输入,现在它至少在设置为文本时导入它们。但考虑到我的代码——有破折号或没有破折号会有什么不同?如果字段大于5个字符,则代码应该使用正确的4个字符,这样就不会有什么区别了?谢谢你的帮助@user2296381什么数据类型是
BATCH\u NO
?@Mike-BATCH\u NO是批次表中的一个自动编号,导入/复制到数字字段下的处理表中。li\u batch\u no是一个整数。@user2296381此代码是从excel导入数据还是仅处理表格?您确定此代码失败,而不是另一行吗?你能展示更多的代码吗?
" WHERE (LEN([Zip Code]) > 5) AND (BATCH_NO = " & cstr(li_batch_no) & ")"