当您执行的 Access 表上的操作时,您可能会收到"有没有足够的磁盘空间或内存"的错误消息

标签:
注册表编辑器数据访问对象数据库引擎单击更改杂谈 |
分类: 技术收藏 |
方法 1: 更改 MaxLocksPerFile 在 Windows 注册表中
警告: 如果注册表编辑器使用不当可能会导致严重的问题,可能会要求您重新安装操作系统。Microsoft 不能保证可以解决问题所产生的错误地使用注册表编辑器。使用注册表编辑器需要您自担风险。使用注册表编辑器增加 MaxLocksPerFile 值在以下项:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Jet 4.0
注意此方法更改 Windows 注册表设置的所有应用程序使用 Microsoft Jet 数据库引擎版本 4.0。
http://support.microsoft.com/library/images/support/en-us/uparrow.gifAccess 表上的操作时,您可能会收到"有没有足够的磁盘空间或内存"的错误消息" />回到顶端
方法 2: 使用 SetOption 暂时更改 MaxLocksPerFile
注: 此文章使用 Microsoft 数据访问对象的示例代码。对于正常运行的此代码,必须引用 Microsoft DAO 3.6 对象库。若要执行此操作,在 Visual Basic 编辑器中 工具 菜单上单击 引用,并确保已选中 Microsoft DAO 3.6 对象库 的复选框。Microsoft 提供的编程示例只,用于说明不附带任何明示或暗示保证。这包括,但不限于对适销性或针对特定用途的适用性的暗示的担保。本文假定您熟悉演示了正在使用的编程语言以及用于创建和调试过程的工具。Microsoft 支持工程师可以帮助解释某个特定过程的功能,但他们不会修改这些示例以提供额外的功能或构建过程来满足您的具体要求。SetOption 方法暂时替代 Microsoft Jet 数据库引擎项在 Windows 注册表中的值。新值将保持有效,直到您再次,更改,或者直到 DBEngine 对象已关闭。
注: 使用 SetOption 方法 MaxLocksPerFile 设置所做的更改将只可通过在当前会话的数据访问对象 (DAO)。查询运行通过 Microsoft Access 用户界面,仍将使用在注册表中的设置。
下面的代码示例在执行更新操作在事务内的之前将设置为 200,000 的 MaxLocksPerFile:
Sub LargeUpdate()
On Error GoTo LargeUpdate_Error
Dim db As DAO.Database, ws As DAO.Workspace
' Set MaxLocksPerFile.
DBEngine.SetOption dbMaxLocksPerFile, 200000
Set db = CurrentDb
Set ws = Workspaces(0)
' Perform the update.
ws.BeginTrans
db.Execute "UPDATE BigTable SET Field1 = 'Updated Field'", _
dbFailOnError
ws.CommitTrans
db.Close
MsgBox "Done!"
Exit Sub
LargeUpdate_Error:
MsgBox Err & " " & Error
ws.Rollback
MsgBox "Operation Failed - Update Canceled"
End Sub
http://support.microsoft.com/library/images/support/en-us/uparrow.gifAccess 表上的操作时,您可能会收到"有没有足够的磁盘空间或内存"的错误消息" />回到顶端
方法 3: 在一个操作查询中设置 UseTransaction 属性
UseTransaction 属性设为 否。请注意是否执行此操作您将无法回滚所做的更改,如果有问题或错误执行查询时:- 在设计视图中打开查询。
- 在 视图 菜单上单击 属性。
- 单击以显示 查询属性 对话框的查询窗口的上半部分中的空白空间。
- 将 UseTransaction 属性设置为 否。
- 保存查询并将其关闭。