【发布时间】:2017-07-13 07:50:51
【问题描述】:
我想查找来自不同表的记录总和并将输出插入新列中,当我运行代码时它显示错误:
"查询无法完成。要么是查询结果的大小是 大于数据库的最大大小(2GB)或没有足够的 磁盘上的临时存储空间,用于存储查询结果"
它突出显示该行
STD.Open sql, cnn, adOpenStatic
我的代码如下
Option Compare Database
Option Explicit
Public cnn As New ADODB.Connection
Public db As DAO.Database
Public Sub SMain()
Set db = Access.Application.CurrentDb
Set cnn = CurrentProject.Connection
Get_Value
End Sub
Private Sub Get_Value()
Dim sql As String
Dim STD As New ADODB.Recordset
Dim ODR As DAO.Recordset
Set ODR = db.OpenRecordset("Total_tbl")
Do Until ODR.EOF
DoEvents
sql = "SELECT SUM(MONT_VOL.tot_n* STD_tbl.factor_n)AS TOTAL_N FROM MONT_VOL " & _
" INNER JOIN (STD_tbl INNER JOIN Total_tbl ON STD_tbl.AREA =Total_tbl.AREA_1" & _
" AND STD_tbl.AID = Total_tbl.AID)" & _
" ON MONT_VOL.BID = STD_tbl.BLOCK" & _
" WHERE MONT_VOL.BDATE = Total_tbl.Adate" & _
" GROUP BY MONT_VOL.BID"
STD.Open sql, cnn, adOpenStatic
If STD.RecordCount <> 0 Then
ODR.Edit
ODR!New_Col= STD!TOTAL_N
ODR.Update
End If
STD.Close
ODR.MoveNext
Loop
End Sub
我犯了什么错误? 我在
上正确调用输出吗ODR!New_Col= STD!TOTAL_N
【问题讨论】:
-
是的,没用。
-
尝试删除不必要的链接表。再次压缩数据库并运行您的查询。如果有帮助,请告诉我。
-
问题是我必须使用 3 表来获取输出,因为每个表都依赖于另一个表。我会再次尝试压缩并通知您。
-
没有再次工作..仍然收到错误。