Access Query在“select”模式下运行平稳,在“make table”模式下失败

时间:2013-07-28 11:19:52

标签: sql database ms-access

在Windows 7(64位Windows)计算机上使用32位Access 2010并使用8 GB的ram,我尝试使用LEFT JOIN

将2个表合并为1

第一个表包含~5Mn(带重复索引)记录,第二个表包含~600K(无重复)

基本上第一个表是我的基表,我想补充第二个表中可用字段的信息。我正在做LEFT JOIN而不是INNER JOIN,因为大表中的某些条目在较小的表中没有匹配,我需要它们显示为空白

当我将查询作为选择查询运行时,我得到了确切的预期结果,当我尝试通过将其更改为CREATE TABLE查询来保存它时,我收到错误:

Cannot open database. It may not be a database that your application recognizes, or the file may be corrupt

我一直在寻找解决方案,但他们都指向腐败的文件,但我觉得我错过了一些东西。

查询是:

SELECT [Key&Gov_LL_Bills].Accs_Meth_Num, [Key&Gov_LL_Bills].Acct_Num,
       [Key&Gov_LL_Bills].Bill_Stmt_Start_Dt, [Key&Gov_LL_Bills].Bill_Cycle_Id,          
       [Key&Gov_LL_Bills].Service_Chrg_Rev, [KA LL Active Services].NAME, 
       [KA LL Active Services].Party_Identification_Num, 
       [KA LL Active Services].Accs_Meth_Srv_Type_Name, 
       [KA LL Active Services].City_Name, 
       [KA LL Active Services].Accs_Meth_Srv_Type_Cd, 
       [KA LL Active Services].party_segment_type_cd 

       INTO test

       FROM [Key&Gov_LL_Bills] LEFT JOIN [KA LL Active Services] 
       ON 
       [Key&Gov_LL_Bills].Accs_Meth_Num = [KA LL Active Services].Accs_Meth_Num;"

1 个答案:

答案 0 :(得分:0)

经过一些研究和反复试验,我确信这是一个记忆问题。

因此,如果有人遇到同样的问题,并且没有时间或资源升级到64位访问或创建和SQL服务器,这是一个非常简单的解决方法。

由于查询以选择模式运行,因此请使用vba将查询结果导出到分隔的.txt文件中,您可以将其作为表读回原始数据库或新数据库。

对于任何人来说,执行此操作的vba代码非常简单:

Sub exportQuery2Text()

DoCmd.TransferText acExportDelim, "", "mapProducts2Bills",_
"[filepath].txt", True

End Sub

我希望这很有用

干杯