不好意思,说错了,应该是保存修改到数据库,并且刷新DataGrid的显示

解决方案 »

  1.   

    你点击的时候游标会随着移动,所以在点击事件那里给textbox赋值就可以了。而刷新则应该要断开连接再重新给datagrid的数据源赋值才可以达到,刷新是没有作用的。
      

  2.   

    我劝你还是用个数据控件吧,可以在NEXT等这样简单的过程中自动就完成保存和刷新,建议用adodc
      

  3.   

    就是
    这么easy你也好意思问
      

  4.   

    42 42!
     还是用控件简单!
     ADODC!
      

  5.   

    自己做一个usercontrol, 很简单的,
      

  6.   


         '把ADODB.Recordset的值赋给 combobox/text 的text
    Public Sub get_text(fmname As Form)
      Dim jj As Integer
      For jj = 0 To memorst.Fields.Count - 1
        For Each ddd In fmname.Controls
            If (TypeOf ddd Is TextBox) Or (TypeOf ddd Is ComboBox) Then
               If ddd.Tag = jj + 100 Then
                   memorst.Fields(jj).value = RTrim(ddd.Text)
               End If
            End If
         Next
      NextEnd Sub
     
                '把combobox/text 的text 赋给 ADODB.Recordset
    Public Sub set_text(fmname As Form, enable As Boolean)
      Dim jj As Integer
      jj = 0
      Dim ddd As Control
      For jj = 0 To memorst.Fields.Count - 1
        For Each ddd In fmname.Controls
            If (TypeOf ddd Is TextBox) Or (TypeOf ddd Is ComboBox) Then
    '          If editmode = "" Or editmode = "browse" Then
    '              ddd.Enabled = False
    '          Else
    '              ddd.Enabled = True
              If (ddd.Tag = 100 Or ddd.Tag = 200) Then
                       ddd.Enabled = True
                       If enable And ddd.Visible Then
                         ddd.SetFocus
                       End If
              End If
              If ddd.Tag = jj + 100 Then
                 If (editmode = "insert") Or (IsEmpty(memorst)) Or (memorst.EOF And memorst.BOF) Then
                    If Not (TypeOf ddd Is ComboBox And ddd.HelpContextID) = 888 Then
                        ddd.Text = ""
                     End If
                 Else:
                     If IsNull(memorst.Fields(jj).value) Then
                        If Not (TypeOf ddd Is ComboBox And ddd.HelpContextID = 888) Then
                           ddd.Text = ""
                        End If
                     Else
                        If Not (TypeOf ddd Is ComboBox And ddd.HelpContextID = 888 And IsNull(memorst.Fields(jj).value)) Then
                           ddd.Text = Trim(CStr(memorst.Fields(jj).value))
                        End If
                     End If
                 End If
              End If
             ddd.Enabled = enable
           End If
         Next
      Next
    End Sub
      

  7.   


    Public Sub update_text(fmname As Form, enable As Boolean)
      error_reg = False
      If editmode = "insert" Or editmode = "edit" Then
        If null_primary_key(fmname) Then
           error_reg = True
           Exit Sub
        End If
      End If
      Err.Clear
      With memorst
        Select Case editmode
           Case "edit"
                On Error GoTo errorhandle0
                get_text fmname 
                .Update
                If dg_refresh Then
                    Call fmname.set_dg   'refresh datagrid
                End If
                MsgBox "记录已被成功保存", vbOKOnly, "提示"
           Case "delete"
                If MsgBox("回车将删除当前记录,确认吗?", vbCritical + vbOKCancel, "提示") = vbOK Then
                    On Error GoTo errorhandle1
                    。
                    If memorst.RecordCount = 1 Then memorst.movefirst
                    .Delete adAffectCurrent
                    .Update
                    memorst.Requery
                   MsgBox "记录已被成功删除", vbOKOnly, "提示"
                End If
            Case "insert"
                  If mingxi_reg Then GoTo mylable
                  On Error GoTo errorhandle0
                 .addnew
                 get_text fmname 
                .Update
                 MsgBox "记录已被成功保存", vbOKOnly, "提示"
        End Select
      End With Exit Sub
    errorhandle0:
       error_reg = True
        
    end sub
      

  8.   

    Dim Conn As New ADODB.Connection
    Dim Rst As New ADODB.Recordset
      Conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Test.mdb;Persist Security Info=False "
      Conn.CursorLocation = adUseClient
      Conn.Open
      Rst.ActiveConnection = Conn
      Rst.Open "Select * From Table1"
      Set DataGrid1.DataSource = Rst
      Set Rst = Nothing
      Set Conn = Nothing