UI accdb在访问2010上被破坏

时间:2014-04-03 11:16:19

标签: ms-access ms-access-2010

我已将Access应用程序(针对我的客户端)从Access 2003迁移到Access 2010.这意味着:

  • 该应用程序由一组4个“UI”数据库组成,可访问2个“数据”数据库。
  • 所有6个数据库均采用Access 2002/2003 .mdb格式
  • 所有6个数据库都位于CIFS网络共享上。
  • 我们将所有4个“UI”数据库迁移到Access 2010 .accdb格式。
  • 我们将两个“数据”数据库保留为原始格式。
  • 数据表通过标准Access“链接表”机制链接。 (没有ODBC等)

我的客户端面临的问题是UI数据库定期损坏,错误消息类似于“输入表达式包含Microsoft Access无法找到的函数名称”。之前是一个修复文件的提议,该文件已被破坏。

由于Access 2010的响应时间很短,我怀疑某些用户操作会中断程序,但如果事实并非如此,则问题是:accdb文件是否存在已知问题格式位于网络共享上?

1 个答案:

答案 0 :(得分:1)

我发现大多数问题都发生在每个人都使用相同的“UI”/前端数据库时。我修改了一个vbs脚本,它将前端数据库的副本复制到本地驱动器并使用它而不是原始驱动器。

无法找到原始脚本的链接。这是我的脚本版本。

Option Explicit

Dim objShell
Dim objFSO
Dim strHomeFolder
Dim strFullPath
Dim strDestinationFolder
Dim strDestinationFullPath
Dim returnValue

Set objShell = CreateObject("WScript.Shell")
strHomeFolder = objShell.ExpandEnvironmentStrings("%APPDATA%")

strFullPath = "\\networkPathToOriginalDatabase"
strDestinationFolder = strHomeFolder & "\myFolderName"
strDestinationFullPath = strDestinationFolder & "\myDataBaseName"

Set objFSO = CreateObject("Scripting.FileSystemObject")
returnValue = 0

If Not objFSO.FolderExists(strDestinationFolder) Then
    returnValue = objFSO.CreateFolder(strDestinationFolder)
End If

returnValue = objFSO.CopyFile(strFullPath, strDestinationFullPath, True)

' open the front end
objShell.Run """" & strDestinationFullPath & """", 1, false

' cleanup
Set objShell = Nothing
Set objFSO = Nothing

以下是一些常规的Access实践(有关于损坏的部分)

http://allenbrowne.com/tips.html