我是绑定数据集的
理应把表格里的数据重新写到数据集就可以了啊
 For i = 1 To MSHFlexGrid1.Rows - 1 
        For j = 0 To MSHFlexGrid1.Cols - 1 
            MSHFlexGrid1.Col = j
            MSHFlexGrid1.row = i
            
            rsedit(j) = MSHFlexGrid1.TextMatrix(i, j)
           
             rsedit.Update
        Next j
    Next i

解决方案 »

  1.   

    With PgGrid
    If .Rows > 2 Then
      For i = 2 To .Rows - 1
      If Trim(.TextMatrix(i, 15)) <> "" Then
        Select Case CInt(.TextMatrix(i, 15))
        Case 1
          adocon1.Execute ("insert into saware(appid,warename,warespecs,warenum,unite,gmsj,bqsj,lgprice,bqold,zjold,pgscprice,pgold,pgprice,bj,updatetime,wareexplain,llprice) " & _
          "values('" & SELappid & "','" & .TextMatrix(i, 0) & "','" & .TextMatrix(i, 2) & "'," & .TextMatrix(i, 3) & ",'" & .TextMatrix(i, 4) & "','" & .TextMatrix(i, 5) & _
          "','" & .TextMatrix(i, 6) & "','" & .TextMatrix(i, 7) & "','" & .TextMatrix(i, 8) & "','" & .TextMatrix(i, 9) & "'," & .TextMatrix(i, 10) & "," & .TextMatrix(i, 11) & "," & _
          .TextMatrix(i, 12) & ",'1','" & .TextMatrix(i, 16) & "','" & .TextMatrix(i, 17) & "','" & .TextMatrix(i, 18) & "')")
        Case 2
          adocon1.Execute ("update saware set warename='" & .TextMatrix(i, 0) & "',warespecs='" & .TextMatrix(i, 2) & "',warenum=" & .TextMatrix(i, 3) & ",unite='" & .TextMatrix(i, 4) & "'," & _
          "gmsj='" & .TextMatrix(i, 5) & "',bqsj='" & .TextMatrix(i, 6) & "',lgprice='" & .TextMatrix(i, 7) & "',bqold='" & .TextMatrix(i, 8) & "',zjold='" & .TextMatrix(i, 9) & "'," & _
          "pgscprice=" & .TextMatrix(i, 10) & ",pgold=" & .TextMatrix(i, 11) & ",pgprice=" & .TextMatrix(i, 12) & ",bj='3',updatetime='" & .TextMatrix(i, 16) & "',wareexplain='" & _
          .TextMatrix(i, 17) & "',llprice='" & .TextMatrix(i, 18) & "' where appid='" & SELappid & "' and id=" & .TextMatrix(i, 13))
        End Select
      End If
      Next
    End If
    End With
    在MSHFlexGrid1中增加一列标记列,读取记录集写入时该标记设为空,当修改后改为2,新增的为1,删除的为3,在保存时判断:
    如:
    With PgGrid
    If .Rows > 2 Then
      For i = 2 To .Rows - 1
      If Trim(.TextMatrix(i, 15)) <> "" Then
        Select Case CInt(.TextMatrix(i, 15))
        Case 1    '新增
          adocon1.Execute ("insert into saware(appid,warename,warespecs,warenum,unite,gmsj,bqsj,lgprice,bqold,zjold,pgscprice,pgold,pgprice,bj,updatetime,wareexplain,llprice) " & _
          "values('" & SELappid & "','" & .TextMatrix(i, 0) & "','" & .TextMatrix(i, 2) & "'," & .TextMatrix(i, 3) & ",'" & .TextMatrix(i, 4) & "','" & .TextMatrix(i, 5) & _
          "','" & .TextMatrix(i, 6) & "','" & .TextMatrix(i, 7) & "','" & .TextMatrix(i, 8) & "','" & .TextMatrix(i, 9) & "'," & .TextMatrix(i, 10) & "," & .TextMatrix(i, 11) & "," & _
          .TextMatrix(i, 12) & ",'1','" & .TextMatrix(i, 16) & "','" & .TextMatrix(i, 17) & "','" & .TextMatrix(i, 18) & "')")
        Case 2   '修改
          adocon1.Execute ("update saware set warename='" & .TextMatrix(i, 0) & "',warespecs='" & .TextMatrix(i, 2) & "',warenum=" & .TextMatrix(i, 3) & ",unite='" & .TextMatrix(i, 4) & "'," & _
          "gmsj='" & .TextMatrix(i, 5) & "',bqsj='" & .TextMatrix(i, 6) & "',lgprice='" & .TextMatrix(i, 7) & "',bqold='" & .TextMatrix(i, 8) & "',zjold='" & .TextMatrix(i, 9) & "'," & _
          "pgscprice=" & .TextMatrix(i, 10) & ",pgold=" & .TextMatrix(i, 11) & ",pgprice=" & .TextMatrix(i, 12) & ",bj='3',updatetime='" & .TextMatrix(i, 16) & "',wareexplain='" & _
          .TextMatrix(i, 17) & "',llprice='" & .TextMatrix(i, 18) & "' where appid='" & SELappid & "' and id=" & .TextMatrix(i, 13))
        End Select
      End If
      Next
    End If
    End With