为什么我点击它以后只能下移动一次,第二次点它库里第三条记录显示不出来?
Private Sub Command4_Click()
Set cn = New ADODB.Connection
cn.CursorLocation = adUseClient
cn.Open "Provider=SQLOLEDB.1;Persist Security Info=False;User      ID=sa;Initial Catalog=yuancheng;Data Source=YUANCHENG"
Set mrc = cn.Execute("select * from shpchk3")
   mrc.MoveNext
 If mrc.EOF Then
   MsgBox "没有您要过帐的出库记录!", vbOKOnly, "信息提示"
 Else
   Text(0).Text = mrc.Fields(0)
   Text(1).Text = mrc.Fields(1)
   Text(2).Text = mrc.Fields(2)
   Text(3).Text = mrc.Fields(3)
   Text(4).Text = mrc.Fields(4)
   Text(5).Text = mrc.Fields(5)
   Text(6).Text = mrc.Fields(6)
   Text(7).Text = mrc.Fields(7)
 End If
 End Sub

解决方案 »

  1.   

    当然了,你每次都执行cn.Execute("select * from shpchk3")打开表,只能移一条--------------------------你可以把以下语句写到form_load里Set cn = New ADODB.Connection
    cn.CursorLocation = adUseClient
    cn.Open "Provider=SQLOLEDB.1;Persist Security Info=False;User      ID=sa;Initial Catalog=yuancheng;Data Source=YUANCHENG"
    Set mrc = cn.Execute("select * from shpchk3
      

  2.   

    Set cn = New ADODB.Connection
    cn.CursorLocation = adUseClient
    cn.Open "Provider=SQLOLEDB.1;Persist Security Info=False;User      ID=sa;Initial Catalog=yuancheng;Data Source=YUANCHENG"
    Set mrc = cn.Execute("select * from shpchk3")
    上面的代码不要放在Command4_Click()事件里。你的代码每次点击Command4时,都要Set mrc = cn.Execute("select * from shpchk3"),这样,mrc始终在第一条记录上,明白了么?将上面的代码放在比如Form_load()事件里就可以了。
      

  3.   

    知道为什么吗?因为每次执行command4时,在command4里都重新打开表,而每次打开表后,你的记录集指针将会移到表的第一条记录,所以当你点command4后,它只会移到第二条。
     只要不要将打开表的操作放在command4的代码中就不会出问题了。
      

  4.   

    我仔细看了~上面的人说的没错!!你确实在command4里加了打开表的操作
      

  5.   

    那我为什么把If mrc.EOF Then
       MsgBox "没有您要过帐的出库记录!", vbOKOnly, "信息提示"
     Else
       Text(0).Text = mrc.Fields(0)
       Text(1).Text = mrc.Fields(1)
       Text(2).Text = mrc.Fields(2)
       Text(3).Text = mrc.Fields(3)
       Text(4).Text = mrc.Fields(4)
       Text(5).Text = mrc.Fields(5)
       Text(6).Text = mrc.Fields(6)
       Text(7).Text = mrc.Fields(7)
     End If
     也放到Form_Load然后点command4会出现BOF或EOF中有一个是“真”,或者当前的记录已被删除,所需操作要求一个当前的记录。我该怎么改?