已将DataGrid.AllowUpdate设为True(运行时),可是编辑却无任何反映。
Dim Rs As New ADODB.Recordset
Rs.Open SQL,Conn,adOpenKeySet(或adOpenStatic)
Set DataGrid.DataSource=Rs
这时DataGrid无法修改?应如何做才能修改?

解决方案 »

  1.   

    竟然搞PostgreSQL了  高级。只接触过linux平台下的
      

  2.   

    应该是数据提供者限制了修改,
    创建一个内存记录集,将结构和数据都拷贝过来
    再将datagrid的datasource设置到内存记录集
      

  3.   

    问题已解决,是没有指定第4个参数锁定类型造成的。我以前只查只读的记录集,所以用3个参数用习惯了。看来还是要像例子一样,别偷工减料。
    汇总一下今天总结出的需注意事项:
    1.Conn.CursorLocation指定为adUseClient(Conn做连接前)或Rs.CursorLocation=adUseClient(在Rs.Open前)。
    2.记录集指定成adOpenKeyset。
    3.SQL字符串可以用AS来更改列名,也可以选择部分列而非SELECT *,但应该不能是派生列(如XXX + 1 AS YYY,但我没试),并且数据应该是来源于一张表吧(好像不应该是做了连接的表,或是聚合的,但我也没试)。