用vb6.0
已经定义好了界面按钮了,数据库表也建好了,但是以前没用过vb,不晓得应该怎么连接2者
具体操作是怎么样的?尽量详细点吧~我是初初学者~谢谢咯~~

解决方案 »

  1.   

    我以前的练习,很粗糙你参考参考吧
      需要引用Microsoft Activex Data 2.x ......
    Option Explicit
    'Dim Cnn As ADODB.Connection
    'Dim Rst As ADODB.Recordset
    Dim Cmd As ADODB.Command
    Dim Cul As ADODB.Field
    Dim vBookMark As Variant
    Dim CnnStr As String
    Dim RstStr As String
    Dim CmdStr As String
    Private WithEvents Cnn As ADODB.Connection
    Private WithEvents Rst As ADODB.RecordsetDim VBExcel As Excel.Application
    Dim VBBook As Excel.Workbook
    Dim VBSheet As Excel.Worksheet
    Dim i As Integer
    Dim j As Integer
    Private Sub Cnn_BeginTransComplete(ByVal TransactionLevel As Long, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pConnection As ADODB.Connection)
      MsgBox "BeginTrans"
    End SubPrivate Sub Cnn_CommitTransComplete(ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pConnection As ADODB.Connection)
       MsgBox "Committrans"
    End SubPrivate Sub Cnn_ConnectComplete(ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pConnection As ADODB.Connection)
      MsgBox "连接完成"
    End SubPrivate Sub Cnn_WillConnect(ConnectionString As String, UserID As String, Password As String, Options As Long, adStatus As ADODB.EventStatusEnum, ByVal pConnection As ADODB.Connection)
         MsgBox "BUhao"
    End SubPrivate Sub Command1_Click()
        Set Cnn = New ADODB.Connection
        Cnn.Open CnnStr
    '    Set Cmd = New ADODB.Command
    '    Set Rst = New ADODB.Recordset
    '    Set Cmd.ActiveConnection = Cnn
    '    Cmd.CommandType = adCmdText
    '    Cmd.CommandText = RstStr
    '
    '    Set Rst = Cmd.Execute
    '    Set Adodc1.Recordset = Rst
        
        Set Rst = New ADODB.Recordset
        Rst.CursorLocation = adUseClient
        Rst.Sort = "sCardID desc"
        
          Rst.Open RstStr, Cnn, adOpenKeyset, adLockOptimistic    Set Adodc1.Recordset = Rst
          Open "D:\Txt.txt" For Output As #1
          Set VBExcel = CreateObject("Excel.Application")
     
          Set VBBook = VBExcel.Workbooks.Open("D:\120.xls")      Set VBSheet = VBBook.Sheets(1)
          
          Adodc1.Recordset.MoveFirst
            Do While Adodc1.Recordset.AbsolutePosition <> adPosEOF
                
                j = 64
                Dim x As String
                i = i + 1
                For Each Cul In Adodc1.Recordset.Fields
                  Debug.Print Cul.Value & Space(5);
                  Print #1, Cul.Value & Space(2);
                  
                  j = j + 1
                  x = Chr(j) & CStr(i)
                   If IsNumeric(Cul.Value) Then
                       VBSheet.Range(x).Value = CStr(Cul.Value)
                    Else
                       VBSheet.Range(x).Value = Cul.Value
                    End If
                 
                  
                  
                  
                Next
                  Print #1, "|"
                  Debug.Print
                 Adodc1.Recordset.MoveNext
            Loop
    Close #1
    Debug.Print Adodc1.Recordset.RecordCount
    '
            
    '             VBBook.Close
    '             Set VBExcel = Nothing
    '             Set VBBook = Nothing
                       
        
    End SubPrivate Sub Command2_Click()
    '  Rst.MoveFirst
    '  Rst.Move (2)
    '    Rst.Fields(2).Value = "Week"
    '    Rst.Update
    '    Adodc1.Refresh
    '    Set Adodc1.Recordset = Rst
    '   Rst.Book = vBookMark
    '   Set Adodc1.Recordset = Rst
    '   Debug.Print Rst.Fields(0)
    '   Debug.Print Adodc1.Recordset.Fields(0)
    '   Rst.Sort = "sCardID desc"
    '   Set Adodc1.Recordset = Rst
    '   Adodc1.Refresh'  Rst.MoveFirst
    '  Rst.Find "sCardID='210000084326'"
    '  Rst.Delete
    ''  Rst.Update
    ''  Set Adodc1.Recordset = Null
    ''  Set Adodc1.Recordset = Rst
    '  Adodc1.Refresh
    '  Set Adodc1.Recordset = Rst'MsgBox Rst.Supports(adUpdateBatch)
    Rst.MoveFirst
    Cnn.BeginTrans
     Rst.Fields(1).Value = "王垃圾"
     Rst.Fields(2).Value = Null
     Rst.Update
     
     Adodc1.Refresh
     Set Adodc1.Recordset = Rst  
    End SubPrivate Sub Command3_Click()
    '
    '  Rst.MoveFirst
    ''  Rst.Index = "PrimaryKey"
    '  Rst.Find "sCardID ='210005311340'"
    '  Set Adodc1.Recordset = Rst
    '  Debug.Print Rst.Fields(0).Value
    '  vBookMark = Rst.Book
    'Dim x As Integer
    ' Rst.MoveFirst
    ' Cnn.BeginTrans
    ' Rst.Fields(1).Value = "王麻子"
    ' Rst.Fields(2).Value = "000123"
    ' Rst.Update
    ' x = MsgBox("Hello", vbYesNo)
    ' If x = vbYes Then
    '    Cnn.CommitTrans
    '  Else
    '    Cnn.RollbackTrans
    '  End If
    ' Adodc1.Refresh
    ' Set Adodc1.Recordset = Rst  
    End SubPrivate Sub Form_Load()
    i = 0
     CnnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
     App.Path & "\2003.mdb;Persist Security Info=False"
     RstStr = "Select * from tUsers order by sCardID desc "
    End SubPrivate Sub Rst_EndOfRecordset(fMoreData As Boolean, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)
       MsgBox "End"
    End SubPrivate Sub Rst_FetchProgress(ByVal Progress As Long, ByVal MaxProgress As Long, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)
        MsgBox "Fetch progress"
    End SubPrivate Sub Rst_FieldChangeComplete(ByVal cFields As Long, ByVal Fields As Variant, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)
      MsgBox "ChangeEnd"
    End SubPrivate Sub Rst_WillChangeField(ByVal cFields As Long, ByVal Fields As Variant, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)
       MsgBox "Change"
    End Sub
      

  2.   

    Dim objConn
    Dim objstrSet objConn=CreateObject("ADODB.Connection")objstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\test.MDB"
    objConn.Open objstrset rs=CreateObject("ADODB.Recordset")
    dim sql
    sql="select * from test where (id=?)"     '这里添加查询条件
    rs.Open sql,objConn,1,1
      

  3.   

    简单点的就直接用adodc+datagrid绑定吧,简单方便,适合简单的数据库编程
      

  4.   

    celevantis(三藏) 的代码最合适,简单易懂,其他代码都是小题大作 了,没必要。
      

  5.   

    我的正在用的程序Dim Conn As New ADODB.ConnectionFunction ConnectDB() As Boolean
        On Error GoTo ErrInfo
        ConnectDB = False
        Dim strConn As String
        strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dbname
        Conn.CommandTimeout = 10
        Conn.Open strConn
        ConnectDB = True
        Exit Function
    ErrInfo:
        'MsgBox Err.Description
        'MsgBox "数据库连接失败", vbCritical, "错误"
    WriteLogE ("m_db;ConnectSetDB;" + Error() + ";数据库连接失败 ")
    End FunctionSub DBQuery(ByVal cmd As String, ByRef rs As ADODB.Recordset)
        On Error GoTo ErrInfo
        If rs.CursorLocation <> adUseClient Then rs.CursorLocation = adUseClient
        If rs.State <> adStateClosed Then rs.Close
        rs.Open cmd, Conn, adOpenDynamic, adLockOptimistic
        Exit Sub
    ErrInfo:
        MsgBox Err.Description
        MsgBox "表查询失败", vbCritical, "错误"
    WriteLogE ("m_db;ConnectSetDB;" + Error() + ";表查询失败 ")
    End SubFunction DBExecuteSQL(ByVal cmd As String) As Boolean
        On Error GoTo ErrInfo
        DBExecuteSQL = False
        Conn.BeginTrans
        Conn.Execute cmd
        Conn.CommitTrans
        DBExecuteSQL = True
        Exit Function
    ErrInfo:
        'MsgBox Err.Description
        MsgBox "表操作失败", vbCritical, "错误"
    WriteLogE ("m_db;ConnectSetDB;" + Error() + ";表操作失败")
        Conn.RollbackTrans
    End Function调用时
     Dim ProductRs As New ADODB.Recordset
     Dim ls_sql_str As String
       ls_sql_str = "select * from t_product"
         DBQuery ls_sql_str, ProductRs