问题:窗体上我用 adodc + datagrid 控件  来反映数据库中某表的数据
数据库为 ACCESS 
下面是我的 代码:(感觉不只一出有问题,不论那里帮忙改正都有分的,不够另补!!!)
数据库 student.mdb
其中一章表名为  grade包括字段为(stu_ID,English,Math,Phyics,Chemistry) 
然后在form 里  用 datagrid  把这几个字段显示出来应该是少了好多代码,请高手详细帮我讲讲到底还应该加什么 和 我应该怎么做啊!
并且我觉着上边的某些代码也没有用处,但是不太懂,就请一并说了吧 1
在下   万分谢谢 !!!!!!!!!!!!!(呵呵 , 对高手来说 应该是小菜了!)
(千万别拒绝我这个满怀激情的心啊!)
'在 modMain 模块里边定义 全局变量
Option ExplicitGlobal pubCon As New ADODB.Connection  '定义数据库连接对象
Global rsTable As New ADODB.Recordset   '定义数据库查询
’包含adodc + datagrid 控件 空间的窗体
private sub Form_load()
         
On Error GoTo ConnectErr
        '连接到ACCESS 数据库
        pubCon.ConnectionString = "Provider=Microsoft.Jet.oledb.4.0;" & _
                                "Persist Security Info =false;" & _
                                "Data Source  =" & App.Path & "\student;" & _
                                "mode=readwrite"
                                
        pubCon.ConnectionTimeout = 30
        pubCon.Open
        ConnectToServer = True
        Exit Function
        
'错误处理
ConnectErr:
        ConnectToServer = False
        MsgBox "错误代码: " & Err.Number & vbCrLf & _
                "错误描述: " & Err.Description, vbCritical + vbOKOnly, "连接错误"
                 'Adodc 的连接字符串
        Adodc1.ConnectionString = pubCon
        '指定Command 对象的形态
        Adodc1.CommandType = adCmdText
        '设置传回一个资料录集        Adodc1.RecordSource = ("select * from grade")
        '将记录集合绑定 DataGrid 控件
        Set datgQust.DataSource = Adodc1end sub

解决方案 »

  1.   

    声明了ADO对象,就不要有ADODC控件了'在 modMain 模块里边定义 全局变量
    Option ExplicitGlobal pubCon As  ADODB.Connection  '定义数据库连接对象
    Global rsTable As  ADODB.Recordset   '定义数据库查询
    ’包含adodc + datagrid 控件 空间的窗体  < 不要用ADODC控件了Private sub Form_load()
        Dim strSQL as String
        Dim StrConnect As String
            
    '连接到ACCESS 数据库
        StrConnect = "Provider=Microsoft.Jet.OLEDB.4.0; " _
            & "Data Source=" & App.Path & "\student.mdb;" _ 
            & "Persist Security Info=False;" _
            & "Jet OLEDB:Database Password=123"
        Set pubCon = New ADODB.Connection
        pubCon.Open StrConnect    strSQL = "select * from grade"
        Set rsTable = New ADODB.Recordset
        rsTable.CursorLocation = adUseClient   '要用客户端游标
        rsTable.Open strSQL, pubCon, _
                adOpenKeyset, adLockOptimistic        '将记录集合绑定 DataGrid 控件
        Set datgQust.DataSource = rsTableend sub
      

  2.   

    在模块中声明ADO对象应该是这样:
    Public pubCon As  ADODB.Connection  '定义数据库连接对象
    Public rsTable As  ADODB.Recordset   '定义数据库查询
      

  3.   

    怎么搞的这么复杂,你直接用ADO控件邦定不好吗?在ADO属性里链接数据库,然后再在DATAGRID里的DF属性里设置一下就可以邦定了!建议去看一些例子!
      

  4.   

    同意rayxu(有心就成) ( ) 信誉:100 的说法,把ado 控件的连接属性改为你的数据库,ado的rs绑定你要的表,再把datagrid控件的datasouce绑定为ado控件,就可以直接显示表的内容了,没必要搞的那么复杂
      

  5.   

    你完全没有必要使用adodc控件,就用代码写比较好! 
    如下::'在 modMain 模块里边定义 全局变量
    Option Explicitpublic pubCon As  ADODB.Connection  '定义数据库连接对象
    public rsTable As  ADODB.Recordset   '定义数据库查询
    set pubCon=new ADODB.Connection
    set rsTable=new ADODB.Recordset’包含datagrid 控件 空间的窗体
    private sub Form_load()
             
    On Error GoTo ConnectErr
            '连接到ACCESS 数据库
            pubCon.ConnectionString = "Provider=Microsoft.Jet.oledb.4.0;" & _
                                    "Persist Security Info =false;" & _
                                    "Data Source  =" & App.Path & "\student.mdb;" & _
                                    "mode=readwrite"
                                    
            pubCon.ConnectionTimeout = 30
            pubCon.Open
      rsTable.CursorLocation = adUseClient   
      rsTable.source="select * form grade" 
      rsTable.ActiveConnection
      rsTable.CursorTyppe=adOpenKeyset
      rsTable.LockType=AdLockPessimisticset datagrid1.datasource=rsTableExit Function
      

  6.   

    已经能顺利的连接到数据库了!感谢各位帮忙 !! 
                 尤其感谢:vbman2003(家人) 但是我还有一个问题,我该如何做才能在datagrid里显示grade表里的 内容啊?!现在datagrid 里就只有表格  没显示数据啊???
    谢,各位帮看看啊!
      

  7.   

    pigpag(噼里啪啦)
    留个代码好吗?绑定与字段隐藏.
      

  8.   

    有人  吗???我要问的  如何让Access数据库中的数据在 DATAGRID的 表格 里看到啊关键在后边啊!!
    那位高手    来看看啊!!to : hspcyeling(白痴-菜鸟-。)    好了一定给,但我也没弄出来如何显示的啊!绑定的 就是上边的代码!
      

  9.   


        strSQL = "select * from grade"
        Set rsTable = New ADODB.Recordset
        rsTable.CursorLocation = adUseClient   '要用客户端游标
        rsTable.Open strSQL, pubCon, _
                adOpenKeyset, adLockOptimistic        '将记录集合绑定 DataGrid 控件
        Set datgQust.DataSource = rsTable如上应该可以了啊?
    你的DataGrid 控件名称是datgQust吧?
      

  10.   

    我有四个字段,但我现在只需要二个,要隐藏二个,以下代码该怎么改啊? 
    Set con = New adodb.Connection
     str = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & App.Path & "/log.mdb" & ";"
       con.Open str
       Set rs = New adodb.Recordset
       rs.CursorLocation = adUseClient
       rs.LockType = adLockReadOnly  ' rs.Open "gongying", con, 1, 3
        rs.Open "SELECT * FROM testpn WHERE id,name", con, 1, 3 ‘这么用不行
        rs.Open "SELECT id,name FROM testpn WHERE ", con, 1, 3   '这样也不行
    Set DataGrid1.DataSource = rs
      

  11.   

    Set con = New adodb.Connection
     str = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & App.Path & "/log.mdb" & ";"
       con.Open str
       Set rs = New adodb.Recordset
       rs.CursorLocation = adUseClient
       rs.LockType = adLockReadOnly
       rs.CursorTyppe=adOpenKeyset
       rs.open "select id,name FROM testpn"  '不加where条件语句
       Set DataGrid1.DataSource = rs
      

  12.   

    To:fan2290 (极执) 
    不好意思,你的数据库表中有记录吗?在datagrid 控件中是不是可以看到字段的名字?
      

  13.   

    To:  xzitfcc(长城) 首先感谢! 我的表中有数据的! 而且能连接到数据库 就是我不知道该怎么让数据在  datagrid 控件中显示出来!!
    To:  vbman2003(家人)  再谢! 是的  那个datgqust 就是  DATAGRID 的名字
    这里 你可以 直接写成 datagrid1   我看的懂 !
    例:
       grade表中学号,数学,英语,历史,哲学,物理    这几个字段
    我想用 DATAGRID  使他们能在我打开窗体的时候看到!(能懂我的意思吗?)
    就是我打开窗体的时候,这几个字段的数据就直接显示出来!我用的
            datagrid1.columns(0).caption=rstable.fields("学号").value
            datagrid1.columns(1).caption=rstable.fields("数学").value
            datagrid1.columns(2).caption=rstable.fields("英语").value
            datagrid1.columns(3).caption=rstable.fields("历史").value
    但是这样做行不通,到第二行就说是下标越界??
    DATAGRID 的列需要拆分吗?为什么我拆分了还是不行 问题出在那里啊???
      

  14.   

    我的问题解决了,谢谢朋友们
     fan2290(极执)首先谢谢借了你这块地解决了我的问题,你的问题,只需要把我上面的代码复制过去就可以了。 
    rs.open "select id,name FROM testpn" 把ID,name 改成你的字段名就行了。
      

  15.   

    我 改了代码 (还是显示不出来数据,郁闷):        Dim Col(12) As Column
            Dim intindex As Long
            Set Col(0) = datgQust.Columns(0)
            Set Col(1) = datgQust.Columns(1)
            Set Col(2) = datgQust.Columns(2)
            
    For intindex = 0 To 4
            datgQust.Row = intindex
            Col(0).Caption = "学号"
            Col(0).CellText rsTable.Fields("stu_ID").Value  '这样写还是显示不出数据啊
    '       col(0).text=rstable.fields("stu_ID").value   '这样写居然不行,说没有对应列
            Col(1).Caption = "数学"
            Col(1).CellText rsTable.Fields("grade_math").Value
    Next intindex
      

  16.   

    To:  hspcyeling(白痴-菜鸟-。) ( ) 信誉:100 
    不客气 ! 共同进步是我最大的梦想!
    (呵呵 这个号也是我的 !)还是不能显示数据啊!!
      

  17.   

    To:fan2290 (极执):你可以把你的代码发完整的发出来吗?如果可以发的话,也可以发到我的信箱.
    [email protected]
      

  18.   

    ado access数据库绑定 DataGrid1,现在DataGrid1里显示着我的数据库,我现在想用鼠标在DataGrid1点那条记录,就会显示在一个文本框中。该怎么实现?
    --------
    也帮我解决一下吧!
      

  19.   

    你用VB的数据向导中的ADO代码来完成就行了。也能看到代码的。