Private Sub Form_Load()
    Set APServer = CreateObject("Project1.addman2")
    APServer.departmentselect
    Set Rst = APServer.Rst
    While Not Rst.EOF
        MsgBox Rst.Fields("departmentid")
    Rst.MoveNext
    Wend
    Rst.MoveFirst
    Set DataGrid1.DataSource = Rst
End Sub我能MsgBox提示得到的记录集,那为什么DataGrid不显示结果呢

解决方案 »

  1.   

    DataGrid的属性有没有设好?右键属性,设置对应字段名
      

  2.   

    '将你的连接对象设置属性.
    con.CursorLocation = adUseClient
      

  3.   

    楼上两位的方法都试过了,还是不行
    我能得到记录集Rst,就是在DataGrid中显示不出来
      

  4.   

    只可能两种情况
    1,忘记设置客户端游标:Conn.CursorLocation = adUseClient
    2、在datagrid的属性也面中间进行人工设置,比如设置列名,改变datagrid属性页后必须手工绑定数据字段,否则一样显示不出。按下面的代码去写:
    Option ExplicitPrivate Rs As New ADODB.Recordset
    Private Conn As New ADODB.ConnectionPrivate Sub Form_Load()
     Dim strConn As String
     
     ' 连接数据库的字符串
     ' 连接带密码的数据库,直接在连接符后面加上Jet OLEDB:DataBase Password='您的密码'
     ' 连接Access97数据库需要使用Jet.OLEDB.3.5,Access2K和以上数据库使用Jet.OLEDB.4.0
     strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\test.mdb;Persist Security Info=False"
     
     ' 使用客户端数据游标
     Conn.CursorLocation = adUseClient
     ' 打开Access的连接
     Conn.Open strConn
     
     ' 如果RecordSet的状态不是关闭状态,则关闭Recordset
     If Rs.State <> adStateClosed Then Rs.Close
     
     ' Recordser打开表People
     Rs.Open "Select * from People", Conn, adOpenKeyset, adLockOptimistic
     
     ' 报告出 一共多少笔数据,测试是否存在数据
     ' MsgBox Rs.RecordCount
     
     ' 绑定进DataGrid
     Set DataGrid1.DataSource = Rs
     
    End Sub
      

  5.   

    没这么麻烦吧,直接用ADODC控件绑定很方便只设置属性就OK