如题

解决方案 »

  1.   

    Private Sub Command1_Click()
       '打开错误处理陷阱
       On Error GoTo ErrGoto
       '----------------------------------------------------
      
      Open "1.mdb" For Input As #1
      Close #1
       '----------------------------------------------------
       MsgBox "文件没打开"
       Exit Sub
       '-----------------------------
    ErrGoto:
       MsgBox "文件打开"
    End Sub
      

  2.   

    可以使用数据连接对象的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
      

  3.   

    注:月欠税情况.mdb可以改成你的1.mdb
      

  4.   

    判断1.ldb是否存在(同一路径下)最简单
      

  5.   

    chenyu5188(来自东方的狼
    的方法是对的,也很好.个别语句的个别地方还可以写的更简洁一些
      

  6.   

    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.   

    忽略了一个地方

    elseif err<> then
         on error goto 0    '添加这样一条语句,重要
         err.raise err.number
      

  8.   

    两位大侠的方法都试过了,没有作用。
    我是这样做的:
    如果数据库已打开,则MsgBox,然后Unload Me
    否则继续(打开数据库到表)可是我连续开了几遍同一个程序,照旧打开无误,没有任何MsgBox"数据库已打开"的提示。怎么回事 ???
      

  9.   

    为何要判断数据库是否打开?
    如果只是为了未打开时打开,可以先关闭连接,在打开连接
    如:
    cn.close
    cn.open
      

  10.   

    判断你的连接
    if len(cn.connectionstring) > 0 then
        msgbox "opened!"
    end if
      

  11.   

    chenyu5188(来自东方的狼) :
    那我再好好研究一下。