我问两个问题:
1,我用RS打开了数据库后,查询出的数据用DateGrid显示出来了。
查询出来的项目中有个字段是ID(关键字,整形,自动增值)
我用一个TEXT作为用户输入
当用户选择存在在查询结果中的项时,没有问题
当我查询出来时空的时候,DATAGRID中显示的是空白,而此时再在TEXT中任意输入一个数字,则出错:BOF或者EOF中其中一个是真,或者当前记录北删除,所需操作需要一个记录。
**********************
我有个想法:通过屏蔽空结果时的DATAGRID,但是,我不知道怎么实现
如果各位有好办法,请指导
2.我想实现当选择上面的一条记录号时,从查询FORM1转到对应的该项记录的FORM2(form2是(可以通过next,forward,last,first选择所有用户)的窗体)
请问怎么实现?
谢谢先
***********************
            If rs.State = 1 Then rs.Close
            rs.Open txtSQL, conn, 2, 3
            Set Me.DataGrid1.DataSource = rs
**************************************
相关代码:
Private Sub Command3_Click()
Dim flag As Boolean
                            While (rs.EOF = False)
                                If Text7.Text = rs.Fields(0) Then
                                        flag = True
                                        Me.Hide
                                        Form5.Show
                                        Exit Sub
                                Else
                                       rs.MoveNext
                                End If
                            Wend
                            If (flag = False) Then
                                        MsgBox "没有这个项,重新输入", vbOKOnly + vbExclamation, "警告"
                                        Text7.Text = ""
                            End If
End Sub
****************
Private Sub Text7_Change()
            rs.MoveFirst
End Sub

解决方案 »

  1.   

    Private Sub Text7_Change()    if rs.eof<>true and rs.bof<> true then rs.MoveFirst
    End Sub
      

  2.   

    谢谢xiyou
    第一个问题解决了
      

  3.   

    Private Sub DataGrid1_Click()
    Form2.Show
    Form2.Text1.Text = Me.DataGrid1.Columns(1)
    Form2.Text2.Text = Me.DataGrid1.Columns(2)
    End Sub
    直接轉換過去就可以呀?
      

  4.   

    //////我先试试上面daisy8675的办法先
    我还有个问题:
    就是我用
    Private Sub Text7_Change()    if rs.eof<>true and rs.bof<> true then rs.MoveFirst
    End Sub
    当我在TEXT1.TEXT中输入的是结果中不错在的值后
    只可以实现一次操作,操作结束以后,datagrid就失去了有效性了
    怎么实现我任意多次对上面查询结果(就是DATAGRID)对象进行操作?
      

  5.   

    Private Sub Command3_Click()
    Dim flag As Boolean
                                While NOT rs.EOF
                                    If Text7.Text = rs.Fields(0) Then
                                            flag = True
                                            Me.Hide
                                            Form5.Show
                                            Exit Sub
                                    Else
                                           rs.MoveNext
                                    End If
                                Wend
                                If NOT flag Then
                                            MsgBox "没有这个项,重新输入", vbOKOnly + vbExclamation, "警告"
                                            Text7.Text = ""
                                End If
    End Sub
    ****************
    Private Sub Text7_Change()
                if NOT (rs.eof  and rs.bof) then rs.MoveFirst
    End Sub
      

  6.   

    Private Sub DataGrid1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
          With DataGrid1
             .Row = .RowContaining(Y)
             FORM2.Text1.Text = .Columns(0)
             FORM2.Text2.Text = .Columns(1)
          End With
    End Sub
      

  7.   

    *注.取当前行列值时不能用
    Private Sub DataGrid1_Click()
    该事件取得的值是是次单击DATAGRID时所在行列的值.