我想通过代码在datagrid中显示数据库中的表的数据
比如,有一张表,表名:学生。字段名和值分别为:
学号 姓名 年龄 入学日期
01   张三  20  2001-2-3
02   李四  23  2001-9-1
03   王五  22  2002-1-2
…………
…………
我想在代码中给datagrid加入 列标题和每行数据
请教高手!
能否给出详细点的原代码,因为我是小菜!
谢谢了!
我自己的代码一直不对,不知道是何原因
adoRS.open "select * from student",cn
Set Grid.DataSource = adoRS
Grid.Columns(0).Caption = "学号"
Grid.Columns(1).Caption = "姓名"
Grid.Columns(2).Caption = "年龄"
Grid.Columns(3).Caption = "入学日期"With adoRS
If Not .EOF Then
    Grid.Columns(0).DataField = .Fields("stid").Name
    Grid.Columns(1).DataField = .Fields("stname").Name
    Grid.Columns(2).DataField = .Fields("age").Name
    Grid.Columns(3).DataField = .Fields("date").Name
End If
End With
Grid.Refresh

解决方案 »

  1.   

    这样即可
    Dim cn As New ADODB.Connection
    Dim rs As New ADODB.Recordset
    Private Sub Form_Load()
        If cn.State = 1 Then
            cn.Close
        End If
        cn.CursorLocation = adUseClient
        cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db1.mdb"
        Dim strSQl As String
        strSQl = "select * from students'"
        rs.Open strSQl, cn, adOpenStatic, adLockReadOnly
        
        Set DataGrid1.DataSource = rs
        DataGrid1.Refresh
    End Sub列标题和数据都会自动加入
      

  2.   

    我按照SoHo_Andy(冰) 的说法做了,但没用啊!
    运行后,DataGrid的列标题和数据均没有,如果用鼠标点击DataGrid,就有
    “实时错误‘7005’,行设置不可用。”弹出。
    这是怎么回事?
    再次请教高手!
    急啊!!!!!
      

  3.   

    Public AdoCnn As New ADODB.Connection
    Private Sub Form_Load()
       ' sutra
       CnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\学生.mdb;Persist Security Info=False"
         If AdoCnn.State = 0 Then AdoCnn.Open CnStr
       Set RS = Nothing
       Show_DataGrid       
    End SubSub Show_DataGrid() '这个过程把整张表读出来
         DataGrid1.Font.Size = 12
       If RS.State = 1 Then RS.Close: Set RS = Nothing
       AdoCnn.CursorLocation = adUseClient
       RS.Open "select * from[学生] order by 学号asc", AdoCnn, adOpenStatic, adLockOptimistic
       Set DataGrid1.DataSource = RS
       DataGrid1.Refresh
    End Sub
      

  4.   

    加上
    Public RS As New ADODB.Recordset
      

  5.   

    ok 了告诉我,有问题告诉我?OK
      

  6.   

    我试了qscandwh(我会Basic) 的方法,可以用了,谢谢。
    不过,还有一个小问题,一起问吧,嘿嘿……
    就是DataGrid显示数据时,其实表中只有两条数据,但DataGrid显示的却是三条数据,前面两条是确实存在的数据,第三条为空白数据,如果鼠标点击了第三条空白数据,就会有:
    "实时错误‘94’,无效使用NULL"
    出现。请问如何解决呢?
    谢谢了!!!
      

  7.   

    很好解决!on error resume next