我正在处理具有150万条记录的表,我需要对数据进行大量修改。
由于我需要使整个过程自动化,因此我试图通过一次调用所有子项将所有步骤置于一个命令按钮下。
但是,由于数据的大小,运行一个子例程后,访问数据库的大小将达到2GB(最大限制),甚至无法完成运行一个子例程。
我附加了一个子目录,该子目录通常会导致数据库损坏,因为文件大小会在一半时达到2GB,然后停止运行。
我真的需要帮助,会感谢任何人的帮助!
Sub cogsinout()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("Final")
rs.MoveFirst
Do Until rs.EOF
If (rs!El = "BA") Or (rs!El= "BE") Or (rs!El = "FE") Or (rs!El = "LA") Or (rs!El = "LB") Or (rs!El Then
rs.Edit
rs!cogs = "COGS IN"
rs.Update
Else
rs.Edit
rs!cogs = "COGS OUT"
rs.Update
End If
rs.MoveNext
Loop
End Sub
答案 0 :(得分:1)
尝试使用此功能更新表, 看来用这种方法,数据库不那么肿。
Sub cogsinoutNew()
Dim strSQL As String
Dim db As DAO.Database: Set db = CurrentDb
strSQL = "UPDATE Final SET cogs = 'COGS OUT' WHERE El Not In ('BA','BE','FE','LA','LB');"
db.Execute strSQL, dbFailOnError
strSQL = "UPDATE Final SET cogs = 'COGS IN' WHERE El In ('BA','BE','FE','LA','LB');"
db.Execute strSQL, dbFailOnError
Set db = Nothing
End Sub