vb 连接access数据库错误80004005

utmostblue 2009-08-26 09:04:53
大家过来帮下忙吧,实在不知道怎么回事了。
做了一个小的vb使用ado访问access2000数据库,程序完成后,只运行一个程序实例没有任何问题,但是当我同时运行2个或者更多程序实例的时候,vb弹出错误对话框如下:
运行时错误'-2147467259(800004005)':不能打开数据库''。应用程序可能无法识别该数据库,或文件可能损坏。

为了找出具体错误点,我同时运行了2个程序实例,同时打开vb源程序,使用调试功能运行一个实例,发现调试报错点在这一句上:
cn.Open conmdb


数据库连接代码如下
Public cn As New ADODB.Connection '声明一个全局型的数据库连接对象
Public conmdb As String '声明个全局型的字符串变量用来记录连接数据库的语句
Public rs As New ADODB.Recordset '声明个记录集对象
Public Sub conn() '定义一个全局型的自定函数
If cn.State = adStateClosed Then
conmdb = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" & App.Path & "\Racing.mdb';Persist Security Info=False" '连接到你的数据库文件
cn.ConnectionTimeout = 1000
cn.Open conmdb '打开数据库
End If
End Sub

主程序部分用一个100ms循环的时钟更新数据库中的部分值,主要代码如下:
Private Sub Timer1_Timer()
jl=jl+1
conn
If cn.State = adStateOpen Then
sqlstr = "update Sta set 距离='" & jl & "' where ID=1"
cn.Execute (sqlstr)
If cn.State = adStateOpen Then cn.Close
End If
end sub
...全文
317 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
孤独剑_LPZ 2009-08-27
  • 打赏
  • 举报
回复
数据源需要用到ODBC,从ODBC访问数据库,不以独占方式打开,即可
多用户下不推荐用下面这种形式连接
conmdb = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" & App.Path & "\Racing.mdb';Persist Security Info=False"
king06 2009-08-27
  • 打赏
  • 举报
回复
那句放if外面

cn.ConnectionString = "provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & app.path & "\racing.mdb;Mode=ReadWrite;Persist Security Info=False"
If cn.State = adStateClosed Then
cn.ConnectionTimeout = 1000
cn.Open conmdb '打开数据库
End If
chinaboyzyq 2009-08-27
  • 打赏
  • 举报
回复
查看你的数据库是否以独占方式打开.
utmostblue 2009-08-26
  • 打赏
  • 举报
回复
没有什么用啊
[Quote=引用 1 楼 leftie 的回复:]
VB code'这样试试:With cnIf .State= adStateOpenThen .Close
.ConnectionString="provider=Microsoft.Jet.OLEDB.4.0;Data Source="& app.path&"\racing.mdb;Mode=ReadWrite;Persist Security Info=False"
.Open¡­
[/Quote]
贝隆 2009-08-26
  • 打赏
  • 举报
回复
给你几个函数,我经常使用:
http://download.csdn.net/source/1498324
饮水需思源 2009-08-26
  • 打赏
  • 举报
回复
'这样试试:
With cn
If .State = adStateOpen Then .Close
.ConnectionString = "provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & app.path & "\racing.mdb;Mode=ReadWrite;Persist Security Info=False"
.Open
End With

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧