我用ado连接access数据库
连接如下:
adoCn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\sysdata.mdb;Mode=ReadWrite|Share Deny None;Persist Security Info=False"
再用recordset打开一个表如下:
rsQTinfo.Open "select  * from tbcline", adoCn, adOpenDynamic, adLockBatchOptimistic, adCmdText
再将recordset给一个datagrid:
Set fglist.DataSource = rsQTinfo并设置了datagrid.allowaddnew=true
那为什么不显示数据并不能在datagrid里输入数据呢?

解决方案 »

  1.   

    在打开rsQTinfo前,设置
    rsQTinfo.CursorLocation = adUseClient
    看看
      

  2.   

    adoCn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=G:\2007\code.mdb;Mode=ReadWrite|Share Deny None;Persist Security Info=False"
    adoCn.CursorLocation = adUseClient
    adoCn.OpenrsQTinfo.Open "select  * from code", adoCn, adOpenDynamic, adLockBatchOptimisticSet fglist.DataSource = rsQTinfo
      

  3.   

    不要用datagrid,用编码加listview控件,锻炼你的编程能力
      

  4.   

    先回楼上:我很习惯listview啊。可现在同样简单操作的表要有20个左右啊,所以想简单处理才用这个的,其实我用的是truedbgrid(tdbgrid).我打开记录集用
    rsQTinfo.Open "select  * from txlinfo", adoCn, adOpenStatic, adLockBatchOptimistic, adCmdText
    就可以了。如果将这个grid的数据批量更新到数据库该怎么做呢?比如有的是内容修改,有的是增加的有删除的。
    用recordset.update 还是recordset.UpdateBatch呢?关键还有一列是个编号,用来跟其他表数据库关联的。那这个编号怎么加到新加的记录里呢?谢谢几位的回复,新年快乐
      

  5.   

    晕,啊弄的差不多了,你还别说
    adoCn.CursorLocation = adUseClient 还真管用。
    用ado好多年了,但从来没直接操作过grid,水平差啊。有热心的朋友再多给点提示哦。谢谢。
      

  6.   

    据我所知,执行sql语句之后它应该产生一个结果,这个结果也像一个表一样,你要顺序移动位置指针才能访问到查询的内容吧
      

  7.   

    recordset.update 还是recordset.UpdateBatch区别在哪里.
    查CSDN,Update 方法
        用和用户已经打开“外接程序管理器”对话框一样的方法,刷新来自列在 Vbaddin.ini 文件中的外接程序的 AddIns 集合的内容。问题关键在此处:adLockBatchOptimistic(开放式批更新)
    用Update方法写入的是本地缓存;要用UpdateBatch方法才能把缓存中的数据写到数据库中.rs.Update
    rs.UpdateBatch
      

  8.   

    '''''设置要使用的下拉列表
      fglist.Columns(1).ValueItems.Presentation = 2
      fglist.Columns(1).AutoDropDown = True
      fglist.Columns(1).DropDown = dpd1
      
      Set rsCS1 = Nothing
      rsCS1.Open "select 学历编号,学历 from tcxl", adoCn, adOpenDynamic, adLockReadOnly, adCmdText
        Set dpd1.DataSource = rsCS1
        fglist.Columns(1).ValueItems.Clear
        If rsCS1.RecordCount > 0 Then
            rsCS1.MoveFirst
            Do While Not rsCS1.EOF
                aVitem.DisplayValue = Trim(rsCS1!学历)
                aVitem.Value = rsCS1!学历编号
                fglist.Columns(1).ValueItems.Translate = True
                fglist.Columns(1).ValueItems.Add aVitem '此处出类型不匹配错误啊!!!
                rsCS1.MoveNext
            Loop
        End If
        Me.dpd1.DataField = "学历编号"
        Me.dpd1.ListField = "学历"
    谢谢楼上,再问个新问题啊。
    上边的代码是将一个truedbgrid的某列用下拉列表显示编辑等。。但是在上边标记的地方出错了。这个怎么弄呢,
    你们在grid里直接编辑数据时,那种引用代码的字段怎么设置的来方便用户使用呢?