如何判断1.mdb是否已经被一个程序打开,如果是,就MsgBox

Topkey 2003-05-13 07:40:10
如题
...全文
20 点赞 收藏 15
写回复
15 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
Topkey 2003-05-14
chenyu5188(来自东方的狼) :
那我再好好研究一下。
回复
Topkey 2003-05-13
我试试先。
回复
bingxuehuiren 2003-05-13
chenyu5188(来自东方的狼
的方法是对的,也很好.个别语句的个别地方还可以写的更简洁一些
回复
判断1.ldb是否存在(同一路径下)最简单
回复
chenyu5188 2003-05-13
注:月欠税情况.mdb可以改成你的1.mdb
回复
chenyu5188 2003-05-13
可以使用数据连接对象的State属性来做。
你首先要在VB菜单中:
“工程”-->“引用”-->“Microsoft AxtiveX Data Objects 2.X Library”
注:2.X为版本号,如果你机子上有高版本的就用高版本的,如:2.5或2.6的。
"工程"-->“部件”-->“MicroSoft DataGrid Control 6.0”
Private Sub ComOK_Click()
Dim SQLstr As String,cnstr AS String
  Dim cn AS New ADODB.Connection'连接对象
Dim rs As New ADODB.Recordset'记录集对象
cnstr = "Provider=Microsoft.Jet.OLEDB.4.0;" _
& "Data Source=" & App.Path & "\data\月欠税情况.mdb;" _
& "Persist Security Info=False"'连接字符串
if cn.State=AdStateOpen then '判段数据是否打开
msgbox "数据库已经打开!!!"
exit sub
  else
cn.open cnstr' 打开数据库连接
rs.CursorLocation =adUseClient
sqlstr="slect * from XXX表"
rs.open sqlstr,cn,3,3'执行SQL语句,并返回记录
set datagrid1.datasource=rs
datagrid1.refresh
rs.close'关闭记录集对象
set rs=nothing
end if
End Sub
回复
nik_Amis 2003-05-13
.ldb
回复
叶帆 2003-05-13
Private Sub Command1_Click()
'打开错误处理陷阱
On Error GoTo ErrGoto
'----------------------------------------------------

Open "1.mdb" For Input As #1
Close #1
'----------------------------------------------------
MsgBox "文件没打开"
Exit Sub
'-----------------------------
ErrGoto:
MsgBox "文件打开"
End Sub
回复
chenyu5188 2003-05-13
例程就是例程,只能提供一个思路或者让你从中学到什么或是得到一些启发,从你的回答来看,你并没有认认真真的去读这个例程,而是直接用来运行调试。

回复
angle1219 2003-05-13
判断你的连接
if len(cn.connectionstring) > 0 then
msgbox "opened!"
end if
回复
Topkey 2003-05-13
是程序的重复加载呀,其中有一部分是可以重复的,但打开数据库时要判断的。
回复
CBASE 2003-05-13
为何要判断数据库是否打开?
如果只是为了未打开时打开,可以先关闭连接,在打开连接
如:
cn.close
cn.open
回复
Topkey 2003-05-13
两位大侠的方法都试过了,没有作用。
我是这样做的:
如果数据库已打开,则MsgBox,然后Unload Me
否则继续(打开数据库到表)

可是我连续开了几遍同一个程序,照旧打开无误,没有任何MsgBox"数据库已打开"的提示。

怎么回事 ???
回复
pirateRocy 2003-05-13
忽略了一个地方

elseif err<> then
on error goto 0 '添加这样一条语句,重要
err.raise err.number
回复
pirateRocy 2003-05-13
chenyu5188(来自东方的狼)
的方法说什么呀,简直是不知所云。一塌糊涂!!!

正确方法如下:
添加ADO引用
Private Sub ComOK_Click()
Dim SQLstr As String,cnstr AS String
  Dim cn AS New ADODB.Connection'连接对象
Dim rs As New ADODB.Recordset'记录集对象
cnstr = "Provider=Microsoft.Jet.OLEDB.4.0;" _
& "Data Source="XX.mdb;" _
& "Persist Security Info=False"'连接字符串
on error resume next
cn.open cnstr
if err = -2147467259 then
msgbox "数据库已经打开!!!"
exit sub
  elseif err<>0 then
err.raise err.number
else
msgbox "OK"
end if
on error goto 0
End Sub
回复
相关推荐
发帖
VB基础类
创建于2007-09-28

7491

社区成员

VB 基础类
申请成为版主
帖子事件
创建了帖子
2003-05-13 07:40
社区公告
暂无公告