2017-02-16 174 views
0

我在继承一系列Access查询时遇到了一些问题。此前下面的VBA代码工作的预期,但我改变了一些过滤条件(变更日期范围,以反映新的一年),我现在遇到了一个问题,下面的代码:Access 2010-将数字字段转换为使用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字段从数字转换为文本,但似乎不起作用。

当我运行关联的子表时,第一个表被创建,但我得到运行时错误3615类型不匹配表达式中的第2步。当我去查看LeaksLMSDate表时,LEAK_NO字段仍然被格式化为一个号码。在这一点上,我很难理解为什么代码不能按预期运行。任何帮助,将不胜感激。

+0

不要在日期处理中运行“Alter Table”。创建一个读取LeaksLMSDate并转换为您需要的值类型的查询。然后使用此查询进行进一步处理。 – Gustav

回答

0

您可以尝试使用Append查询而不是查询1的Make Table查询。为此,您还需要执行其他一些操作。首先用正确的数据类型预先定义目标表列。其次,假设您将要多次运行此过程,您需要在Append查询之前输入Delete查询(以清除上一次运行中的数据)。然后您可以摆脱ALTER TABLE命令。

相关问题