我想实现的:通过单击command (属性分别为增加,修改,删除,关闭)来控制datagrid中显示的数据记录!
怎样实现并且代码方便易读!另:我自已做了一个最简单,但是也出错,请大家帮我看一下!Private Sub Data1_Validate(Action As Integer, Save As Integer)End Sub
Private Sub Form_Load()
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordsetconn.ConnectionString = "provider=SQLOLEDB.1;persist security info=false;user id=sa;initial catalog=e:\program files\MSSQL\data\gzjs_data.mdf;datasource=JSLD-XXCX01"
conn.Open
Set rs = New ADODB.Recordset
rs.Open "select * from gz", conn, adOpenStatic, adLockOptimistic, adCmdTextDataGrid1.DataSource = rsEnd Sub
datagrid的allowaddnew,allowupdate,allowdelete设置为true运行,得:未找到方法和数据成员。
救命啊!

解决方案 »

  1.   

    set DataGrid1.DataSource = rs这面这句错了
    不了set
      

  2.   

    不好意思打错字了
    set DataGrid1.DataSource = rs上面这句错了
    少了set
      

  3.   

    Option ExplicitPrivate Rs As New ADODB.Recordset
    Private Conn As New ADODB.ConnectionPrivate Sub Form_Load()
     Dim strConn As String
     
     ' 连接数据库的字符串
     ' 连接带密码的数据库,直接在连接符后面加上Jet OLEDB:DataBase Password='您的密码'
     ' 连接Access97数据库需要使用Jet.OLEDB.3.5,Access2K和以上数据库使用Jet.OLEDB.4.0
     strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\test.mdb;Persist Security Info=False"
     
     ' 使用客户端数据游标
     Conn.CursorLocation = adUseClient
     ' 打开Access的连接
     Conn.Open strConn
     
     ' 如果RecordSet的状态不是关闭状态,则关闭Recordset
     If Rs.State <> adStateClosed Then Rs.Close
     
     ' Recordser打开表People
     Rs.Open "Select * from People", Conn, adOpenKeyset, adLockOptimistic
     
     ' 报告出 一共多少笔数据,测试是否存在数据
     ' MsgBox Rs.RecordCount
     
     ' 绑定进DataGrid
     Set DataGrid1.DataSource = Rs
     
    End Sub
      

  4.   

    不要在 Form Load 事件在进行控件数据源绑定,因为有可能被绑定的控件仍然未加载完毕
    你原来的代码就有可能错在这,
      

  5.   

    数据库打开方法的问题,没有打开请参阅相关ADO操作指南。如果是打开ACCESS数据库用DAO好用好用