我用一个msflexgrid控件来显示一个数据表里的所有记录,
我想双击其中的一行,将对应这行的所有相关数据传送到另一个窗口(该窗口有相应的文本显示每个数据项),并在这个窗口对数据进行修改并单击"保存"(该窗口上的一个按钮)后更新数据库,如何实现?谢谢各位老大!

解决方案 »

  1.   

    Private Sub MSFlexGrid1_DblClick()
        frmUpdate.Show
        MSFlexGrid1.Row = MSFlexGrid1.RowSel
        MSFlexGrid1.Col = 1
        dbid = MSFlexGrid1.Text
        MSFlexGrid1.Col = 2
        frmUpdate.Combo1.Text = MSFlexGrid1.Text
        MSFlexGrid1.Col = 3
        frmUpdate.Combo3.Text = MSFlexGrid1.Text
        MSFlexGrid1.Col = 4
        frmUpdate.Combo4.Text = MSFlexGrid1.Text
        MSFlexGrid1.Col = 5
        frmUpdate.Combo2.Text = MSFlexGrid1.Text
        MSFlexGrid1.Col = 6
        frmUpdate.Combo5.Text = MSFlexGrid1.Text
        MSFlexGrid1.Col = 7
        frmUpdate.Combo6.Text = MSFlexGrid1.Text
        MSFlexGrid1.Col = 8
        frmUpdate.Combo7.Text = MSFlexGrid1.Text
        MSFlexGrid1.Col = 9
        frmUpdate.Combo8.Text = MSFlexGrid1.Text
    End SubPrivate Sub CommandSave_Click()
      Dim bh As String, xh As String, cj As String, nf As String, dl As String, dy As String, dj As String, cs As String
      Dim ry As String, rq As String, cd As String, mm As String
      bh = Combo1.Text
      xh = Combo2.Text
      cj = Combo3.Text
      nf = Combo4.Text
      dl = Combo5.Text
      dy = Combo6.Text
      dj = Combo7.Text
      cs = Combo8.Text
      ry = cur_user
      rq = CStr(Date)
      
      wr = "确认修改这条记录吗?" & vbCrLf & vbCrLf & "若不修改请按“取消”。"
      If MsgBox(wr, vbExclamation + vbOKCancel, "警告!") = vbOK Then
        '连接数据库
        Set cnn = New ADODB.Connection    cnn.Open str_conn
      
        sql = "update 电表记录 set ccbh='" & bh & "',cjmc='" & cj & "',cpxh='" & xh & "',dy='" & dy _
            & "',dl='" & dl & "',dj='" & dj & "',cs='" & cs & "',ccnf='" & nf _
            & "',xgcs=xgcs+1,lrry='" & ry & "' where id=" & frmData.dbid & ";"
        'MsgBox sql
        cnn.Execute sql, , adExecuteNoRecords
        cnn.Close
      End If
      frmUpdate.Hide
    End Sub这是我正在做的一个程序中的代码.给你参考下.
      

  2.   

    被后打开的窗口里面可以直接从GRID中读取. 
    BASEFORM.MSFLEXGRID.TEXTMARTIX(BASEFORM.MSFLEXGRID.ROW,0)这个就是有GRID的FORM里面单击那行的第0列的数据,可读可写.更新完了数据库后,GRID里面的数据就脏了,要注意处理.
      

  3.   

    我是用vsflexgrid做的`
    LZ说的就是一个修改界面啊
      

  4.   

    Private Sub MSHFlexGrid1_DblClick()
             frmuser_set.user = MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 1)
             frmuser_set.password = MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 2)
             frmuser_set.Show 1
    End Sub
    frmuser_set是要弹出的窗体  user是窗体里的文本框
      

  5.   

    就是一个窗体传值啊~
    a=1
    set b=a
    a=3

    b= 3
    a=1
    b=a
    a=3
    b=1看懂这个就行了