我在继承的一系列Access查询方面遇到了一些麻烦。以前,下面的VBA代码按预期工作,但我更改了一些过滤条件(更改日期范围以反映新的一年),现在我遇到了以下代码的问题:
'1) Make Leaks LMS Date from FMSPROD
DoCmd.OpenQuery "LeakLMSDateMkTbl"
DoEvents
'Change Leak number data type from number to text.
dbs.Execute "ALTER TABLE LeaksLMSDate " & "ALTER COLUMN LEAK_NO CHAR(20);"
dbs.Close
'2) Make Leaks All Orders Table
DoCmd.OpenQuery "LeaksMkTbl"
DoEvents
总结第一个表使用LEAK_NO字段作为标识符组合来自一个数据库的多个表。在该数据库中,数据存储为数字。第二个表从另一个数据库中引入一些字段,其中相同的信息存储为文本。插入中间的转换代码以修改字段类型以将LEAK_NO字段从数字转换为文本,但似乎无效。
当我运行关联的sub时,会创建第一个表,但是我得到运行时错误3615表达式定位步骤2中的类型不匹配。当我去查看LeaksLMSDate表时,LEAK_NO字段仍然被格式化为数。在这一点上,我很难说为什么中间代码没有按预期运行。任何帮助将不胜感激。
答案 0 :(得分:0)
您可以尝试使用追加查询而不是查询1的生成表查询。为此,您还需要执行其他一些操作。首先使用正确的数据类型定义目标表列。其次,假设您将多次运行此进程,则需要在Append查询之前输入Delete查询(以清除上一次运行中的数据)。然后,您可以删除ALTER TABLE
命令。