我通过一个ADODC控件联接到一个access数据库中,然后把记录的内容显示到DataGrid中,以前用的是rdo联接,使用的为data控件,可以实现,当我把data更换成ADODC后,反而不能做到了,不知为什么?是我点击记录的时候没有触发Reposition事件,还是我的事件低码写的不对,有谁能给出现成的例子,多谢!

解决方案 »

  1.   


        把原先写在Reposition事件里的代码放到datagrid的rowcolchange事件里,或recordset的movecomplete事件里。
      

  2.   

    我把原来的代码放到Datagrid的Rowcolchange和Recordset的Movecomplete中,运行的时候总是说事件名和过程名冲突,后来我把代码放到Datagrid的click事件中,可以运行,我原来的代码为:Adodc.caption=Adodc.recordset.salouteposition,但Adodc的Caption显示的数字总是不对,例如同一个记录当再次点击时,它的记录号会发生改变,我把它变为:Adodc.caption=adodc.recordset.bookmake,结果相同,不知怎么做,能让Datagrid显示的数据库按ID号(其中的一个字段)从小到大排列,当我点击其中的一个记录时,让其显示记录号,记录号按ID号从小到大,从1 到RecordCount,且记录号唯一,不知怎么做到,望高手帮我。
      

  3.   

    另外,我在模块中声明Ado联接,在程序中向数据库中添加数据,为何总是不成功,你给看看为什么?
    Public MyVS(0 to 4) as string 
    Public MYV(0 to 4) as double
    Public MyCon as Adodb.Connection
    Public MyRS as Nes Adodb.Recordset
    public MyCom as new adodb.command
    public strsql as string
    set mycon=new adodb.connection
    my connectionstring="provider=microsoft.jet.oledb.3.51" &_
    "data source=" & app.path & "\data\line.mdb"
    mycon.open
    strsql="select*from 测试数据"
    myrs.cursorlocation=aduseclient
    set myrs=mycon.execute(strsql))
    或myrs=mycon.openresuleset(strsql)
    myrs("第一次结果")=myv(0)
    或myrs("第一次结果")=myvs(0))
    结果总是提示错误,要么是数据类型不匹配,要么是提供者不支持。不知为什么,请你给看看。
      

  4.   

    画蛇添足了。这样:
    Private Suv Datagrid1_Rowcolchange(......)
    Adodc1.Caption = Adodc1.Recordset!字段名
    End Sub这样不行:
    myrs("第一次结果")=myv(0)
    或myrs("第一次结果")=myvs(0))这样:
    myRs.AddNew
    myRs!第一次结果 = myv(0)
    myRs.Update注意所赋值的数据类型必须与字段的数据类型一致。
      

  5.   

    另,这样的记录集是只读的set myrs=mycon.execute(strsql))。
    必须这样:
    myRs.Open strSQL, myCon