可以使用数据连接对象的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
Private Sub Command1_Click()
'打开错误处理陷阱
On Error GoTo ErrGoto
'----------------------------------------------------
Open "1.mdb" For Input As #1
Close #1
'----------------------------------------------------
MsgBox "文件没打开"
Exit Sub
'-----------------------------
ErrGoto:
MsgBox "文件打开"
End Sub
正确方法如下:
添加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