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

Topkey 2003-05-13 07:40:10
如题
...全文
102 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
Topkey 2003-05-14
  • 打赏
  • 举报
回复
chenyu5188(来自东方的狼) :
那我再好好研究一下。
Topkey 2003-05-13
  • 打赏
  • 举报
回复
我试试先。
bingxuehuiren 2003-05-13
  • 打赏
  • 举报
回复
chenyu5188(来自东方的狼
的方法是对的,也很好.个别语句的个别地方还可以写的更简洁一些
会飞的魔术师 2003-05-13
  • 打赏
  • 举报
回复
判断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

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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