如何用MSHFlexGrid或DataGrid控件显示Access数据库数据?通过属性好像只能连接固定位置的数据库,程序装到别人机器上怎么办呢?我想把数据库打包到文件里,装到别人机器上也能用。怎样通过代码实现?请各位大虾执教

解决方案 »

  1.   

    先定义一个ODBC数据源,然后:
    dim conn As New ADODB.Connection
    dim rst As New ADODB.Recordset
    dim sql As String, cn As String
    Private Sub Form_Load()
       cn = "dsn=数据源"
       conn.Open cn
    sql = "select * from 表"
    rst.Open sql, conn, adOpenKeyset, adLockPessimistic
    Set DataGrid1.DataSource = rst
    End Sub
      

  2.   

    Public Function ExecuteSQL(ByVal sql _
       As String, MsgString As String) _
       As ADODB.Recordset  
       ConnectString = "DBQ=" & DataBaseName & ";DefaultDir=;Driver={Microsoft Access Driver (*.mdb)};"
       Dim cnn As ADODB.Connection
       Dim rst As ADODB.Recordset
       Dim sTokens() As String
       
       On Error GoTo ExecuteSQL_Error
       
       sTokens = Split(sql)
       Set cnn = New ADODB.Connection
       cnn.Open ConnectString
       If InStr("INSERT,DELETE,UPDATE", _
          UCase$(sTokens(0))) Then
          cnn.Execute sql
          MsgString = sTokens(0) & _
             " query successful"
       Else
          Set rst = New ADODB.Recordset
          rst.Open Trim$(sql), cnn, _
             adOpenKeyset, _
             adLockOptimistic
          Set ExecuteSQL = rst
       End If
       Set rst = Nothing
       Set cnn = Nothing
       Exit Function
    ExecuteSQL_Exit:
       Set rst = Nothing
       Set cnn = Nothing
       Exit Function
       
    ExecuteSQL_Error:
       Resume ExecuteSQL_Exit
    End Function
      

  3.   

    '引用 ado 
    dim cn as new adodb.connection
    dim rs as new adodb.recordset
    cn.connectionstirng="provider=microsoft.jet.3.51;database=\\ip\path\databasename;pwd=;uid=;"
    'ip: 机器地址
    'path:数据库的路径
    rs.open "select * from table",cn