2

在具有 8-gigs ram 的 Windows 7(64 位 Windows)机器上使用 32 位 Access 2010,我正在尝试使用 a 将 2 个表合并为 1 个LEFT JOIN

第一个表包含~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;"
4

1 回答 1

0

经过更多的研究和反复试验,我确信这是一个内存问题。

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

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

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

Sub exportQuery2Text()

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

End Sub

我希望这是有帮助的

干杯

于 2013-07-29T13:54:40.320 回答