我是用VB6.0+ACCESS数据库 
用到DataGrid控件,奇怪的问题在于,我一旦右击设置了DataGrid属性后,原本能正常显示的数据全部无法显示了。这次需要使用到此控件中的列按钮还必须在属性里去设置,实在找不到好办法了请教各位大大出个主意。代码如下: Dim strHuoPDAconn$ 
'导入数据源文件 
strHuoPDAconn = "provider=microsoft.jet.oledb.4.0;data source=" & App.Path & "\资财.mdb" 
HuoPDAconn.CursorLocation = adUseClient '解决DATAGRID控件无法显示数据的问题 
HuoPDAconn.Open strHuoPDAconn     Dim tempGouC$  '材料构成 
    Dim rstempGouC As New ADODB.Recordset 
      tempGouC = "select DA.编号,DA.名称,zz.材料用量 from 货品组装 as ZZ ,货品档案 as DA where zz.货品编号= '" & rsHuoPDA("编号") & "' and ZZ.材料编号=DA.编号 " 
        If rstempGouC.State <> adStateClosed Then rstempGouC.Close 
        rstempGouC.Open tempGouC, HuoPDAconn, 1, 3 
        Set DataGrid1.DataSource = rstempGouC 

解决方案 »

  1.   

    Option Explicit
        Dim db As ADODB.Connection
        Dim rs As ADODB.Recordset
    Private Sub Form_Load()
        '导入数据源文件
        Dim sql
        Set db = New ADODB.Connection
        Set rs = New ADODB.Recordset
        sql = "select DA.编号,DA.名称,zz.材料用量 from 货品组装 as ZZ ,货品档案 as DA where zz.货品编号= '" & rsHuoPDA("编号") & "' and ZZ.材料编号=DA.编号 "
        db.ConnectionString = "provider=microsoft.jet.oledb.4.0;data source=" & App.Path & "\资财.mdb"
        db.Open
        rs.CursorLocation = adUseClient
        rs.Open sql, db, adOpenStatic, adLockReadOnly
        Set DataGrid1.DataSource = rs 'tempGouC
    End Sub
      

  2.   

    完全按照大哥你的格式使用后还是一样。
    问题可能不在编码格式吧,因为只要我不去手动设置DataGrid的属性,数据显示是完全正常的。我只在属性里勾选了布局选项卡中column0的按钮而已。
    或许谁知道如何在代码中实现Datagrid控件第一列添加按钮的代码,问题就能解决,麻烦各位帮我想想办法了~
      

  3.   

    LZ:你在手动对DataGrid的属性设置前,需要选编辑菜单,然后插入或追加列到符合数据表所需列数(SQL语句中涉及的列数,你只需加1列,共3列),然后选菜单的属性项,出现属性页。在其列选项一一做好如下设置
    列(C)        Column(0)   Column(1)   Column(1)
    标题(P)      编号          名称          材料用量
    数据字段(F)   DA.编号      DA.名称      zz.材料用量
    然后对属性页的布局做设置
    再对格式做设置
    然后按属性页确定按钮保存设置,这样才能不出现你所说的情况。
    由于上传图片要申请,无法贴图。
      

  4.   

    问题已经解决~多谢"zdingyun"详细的讲解.
    解决方法是在Set DataGrid1.DataSource = rs 后加上DataGrid1.Columns(0).Button = True