我有一个大约400个完整文件路径和访问数据库文件名的列表。我在Access中编写了一个VBA程序,它遍历列表,在第二个Access实例中打开每个数据库,并提取我需要的信息,但是一些文件路径是错误的,导致Access无法打开数据库。
即使我有一个错误处理程序来尝试处理这个问题,错误处理程序也不会触发,而是代码在错误时中断。我的选项设置为仅打破未处理的错误,但这没有帮助。
有没有办法捕获appAccess对象生成的错误?
<IfModule mod_rewrite.c>
#Send all traffic to store.newsite.com
#RewriteCond %{HTTP_HOST} ^store.oldsite.com [NC,OR]
#RewriteRule ^(.*)$ http://store.newsite.com/$1 [L,R=301,NC]
#Sends all traffic to store.newsite.com
#RewriteCond %{HTTP_HOST} !^store.oldsite.com$ [NC]
#RewriteRule ^(.*)$ http://store.newsite.com/$1 [R=301,QSA,L]
#Doesn't catch the sub domain and all redirects fall to the 301
#RewriteCond %{HTTP_HOST} store.oldsite.com$ [NC]
#RewriteRule ^(.*)$ http://store.newsite.com/$1 [P]
#redirects all traffic, but not additional pages e.g. newsite.com/a/b/c
#RewriteCond %{HTTP_HOST} ^oldsite.com [NC,OR]
#RewriteCond %{HTTP_HOST} ^www.oldsite.com [NC]
#RewriteRule ^(.*)$ http://newsite.com/$1 [L,R=301,NC]
</IfModule>
#redirects all traffic and the additonal params /a/b/c
Redirect 301 / http://newsite.com/
答案 0 :(得分:2)
...某些文件路径错误,导致Access出错 无法打开数据库。
使用Dir()
确认strDb
指向实际存在的文件。并且不要试图打开一个不存在的。
If Len(Dir(strDb)) > 0 Then
Set appAccess = CreateObject("Access.Application")
appAccess.OpenCurrentDatabase strDb
' ... and everything else you want to do with appAccess
Else
' What should happen when the file does not exist?
End If
实际上,在程序开始时只需执行一次Set appAccess = CreateObject("Access.Application")
,然后使用appAccess
和OpenCurrentDatabase
方法重复使用CloseCurrentDatabase
,效率会更高。但这是一个不同的问题 - 它与你所面临的#7866错误问题无关。