我在datagrid的双击事件里写了把datagrid连接的数据库的数据赋给另外一个窗体的文本框.问题是,例如:我首先在datagrid的第三条记录单击一下(单击事件里没有任何代码),再双击第四条记录,这时弹出一个窗体,窗体应该显示的是第四条记录的数据吧?但却显示的是第三条记录的数据.我再双击第十条记录,这时候显示的是第四条记录...这是什么问题??高手们,小弟没办法了.

解决方案 »

  1.   

    LZ:改变下思路!
    Private Sub DataGrid_Click()
        '选择方式为整行选中
        DataGrid.MarqueeStyle = dbgHighlightRow
        '写把datagrid连接的数据库的数据赋给另外一个窗体的文本框的代码
    End Sub
    操作单元格记录的,只要在某个单元格上双击就可以
      

  2.   

    代码就是下面的,本来很简单,就是不想输出Null的字样所以多了IF语句.
    Private Sub DataGrid1_DblClick()
    On Error GoTo asd
    If Adodc4.Recordset.Fields("司机编号") <> "" Then
    修改.Show 1
    If IsNull(taxi_manage.Adodc4.Recordset.Fields("油费")) = False Then
    修改.Text1 = taxi_manage.Adodc4.Recordset.Fields("油费")
    Else
    修改.Text1 = ""
    End If
    If IsNull(taxi_manage.Adodc4.Recordset.Fields("公里")) = False Then
    修改.Text6 = taxi_manage.Adodc4.Recordset.Fields("公里")
    Else
    修改.Text6 = ""
    End If
    If taxi_manage.Adodc4.Recordset.Fields("地址") <> "" Then
    修改.Text3 = taxi_manage.Adodc4.Recordset.Fields("地址")
    Else
    修改.Text3 = ""
    End If
    If IsNull(taxi_manage.Adodc4.Recordset.Fields("车租")) = False Then
    修改.Text4 = taxi_manage.Adodc4.Recordset.Fields("车租")
    Else
    修改.Text4 = ""
    End If
    If IsNull(taxi_manage.Adodc4.Recordset.Fields("系数")) = False Then
    修改.Text5 = taxi_manage.Adodc4.Recordset.Fields("系数")
    Else
    修改.Text5 = ""
    End If
    'taxi_manage.Adodc4.RefreshElse
    MsgBox "还没有司机", , "提示"
    End If
    asd:
    End Sub
      

  3.   

    发现了问题所在,修改.Show 1不用模式窗口就正常
    但我想用模式窗口啊,要怎么解决??
      

  4.   

    把 修改.Show 1 移下面去,先赋值,后显示。
    Private Sub DataGrid1_DblClick()
        On Error GoTo asd
        If Adodc4.Recordset.Fields("司机编号") <> "" Then
            If IsNull(taxi_manage.Adodc4.Recordset.Fields("油费")) = False Then
            修改.Text1 = taxi_manage.Adodc4.Recordset.Fields("油费")
            Else
            修改.Text1 = ""
            End If
            If IsNull(taxi_manage.Adodc4.Recordset.Fields("公里")) = False Then
            修改.Text6 = taxi_manage.Adodc4.Recordset.Fields("公里")
            Else
            修改.Text6 = ""
            End If
            If taxi_manage.Adodc4.Recordset.Fields("地址") <> "" Then
            修改.Text3 = taxi_manage.Adodc4.Recordset.Fields("地址")
            Else
            修改.Text3 = ""
            End If
            If IsNull(taxi_manage.Adodc4.Recordset.Fields("车租")) = False Then
            修改.Text4 = taxi_manage.Adodc4.Recordset.Fields("车租")
            Else
            修改.Text4 = ""
            End If
            If IsNull(taxi_manage.Adodc4.Recordset.Fields("系数")) = False Then
            修改.Text5 = taxi_manage.Adodc4.Recordset.Fields("系数")
            Else
            修改.Text5 = ""
            End If
            'taxi_manage.Adodc4.Refresh
            
            修改.Show 1 '移到这里
        Else
            MsgBox "还没有司机", , "提示"
        End If
    asd:
    End Sub
      

  5.   

    5楼的回答看起来靠谱,可能是窗体show的时机不对。