我已把datagrid1AllowArrows,AllowDelete,AllowUpdate的属性设为true
Private Sub Form_Load()'建立连接
Set cnn1 = New ADODB.Connection
Set com1 = New ADODB.Command
Set rec1 = New ADODB.Recordset
cnn1.ConnectionString = "driver={sql server};server=gtd;uid=sa;pwd=;database=CLASS"
cnn1.Open
Set com1.ActiveConnection = cnn1
End Sub
'按下按钮时列出数据
Private Sub cmdList_Click()
com1.CommandText = "select * from zm"
rec1.Open com1, , adOpenKeyset, adLockOptimistic
Set DataGrid1.DataSource = rec1
End Sub
为什么直接点表格里的数据无法修改?就象是readonly一样

解决方案 »

  1.   

    rec1.CursorLocation = adUseClient
    rec1.Open "zm", cnn1, adOpenDynamic, adLockOptimistic
      

  2.   

    右击DATAGRID控件,看看里面是不是有什么没有设置好.
    把那些允许都打上钩再试试.
      

  3.   

    设置datagrid的allowupdata=true,然后就可以更改记录了,完成后再设置回来,ok
      

  4.   

    看你的记录集是那一种记录集,如果是单一表的记录集应该可以正常更新,但如果你的记录集是两个表联结而成的就可能不允许更新了
    例如,如果你的ADO数据源的sql语句为:
    select * from table1;
    那么应该可以正常操作的,但如果你的表超过两个,例如:
    select table1.name,table1.sex,table2.id,table3.address from table1,table2,table3 where table1.name=table2.name and table2.id=table3.id;
    那就很可能会出现你说的情况。一般来说不允许修改多表联结的记录集
      

  5.   

    我试过了,改后,datagrid,会提示该行不可用。怎么回事?