哈哈!!我解决了!!COMMAND8的内容是
SELECT tab成绩.成绩, tab成绩.成绩 * 2 AS 表达式1, tab学生.姓名, tab成绩.学生ID, tab成绩.ID AS EXPR1 FROM tab学生, tab成绩 WHERE tab学生.ID = tab成绩.学生ID现在我的窗体上放置一个TDBGRID控件,链接COMMAND8,窗体上还有这些代码:Private WithEvents r As ADODB.RecordsetPrivate Sub Form_Load()
  Set r = DATAtest.rsCommand8
End SubPrivate Sub r_RecordChangeComplete(ByVal adReason As ADODB.EventReasonEnum, ByVal cRecords As Long, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)  If adReason = adRsnUpdate Then
    DATAtest.rsCommand8.Properties("Unique Table").Value = "tab成绩"
  DATAtest.rsCommand8.Properties("Resync Command").Value = _
    "SELECT * FROM (" & DATAtest.Commands!COMMAND8.CommandText & ") AS Q1 WHERE EXPR1=" & CStr(DATAtest.rsCommand8("EXPR1"))
  
  DATAtest.rsCommand8.Resync adAffectCurrent  Command2_Click
End Sub
终于OK了,这就是最好的方法!!!!!!!!!!!!!!!!!!!!!!
大家鼓掌!!!
看明白了吗?简单一点说来,有一种查询,如:
数量 单价 小计小计=数量*单价当把这种查询放到DATAGRID时,你在里面改变数量,小计是不会改变的(ACCESS可是动态改变呀!!)。有了上面的方法,小计就能正常改动,上面的例子是乱了点,但我的问题和大家都想知道的东西就在上面,仔细看看你会很高兴的,
如果你感到高兴,就回贴吧!!