本帖最后由 jinzhuduan 于 2011-02-24 10:22:18 编辑

解决方案 »

  1.   

    Private Sub CmdNext_Click()
         SQL = "select*from company"
         RsOpen (SQL)'不需要每次都去查询数据库,可以在form_load的时候查询下数据库,然后调用下showinfo
         If Rs.EOF Then
            MsgBox ("已经是最后一条!"), vbOKOnly, "错误"
            Exit Sub
         Else
            Rs.MoveNext
            ShowInfo
         End If
          
    End Sub
    不需要每次都去查询数据库,可以在form_load的时候查询下数据库,然后调用下showinfo
    RsOpen (SQL)建议改成
    if rs.recordset is nothing then RsOpen SQL
      

  2.   

    你说的这个好像不行,因为在load中我打开了,rs.recordset没有这个属性呀!
      

  3.   

    直接去掉下面两句试试:
    SQL = "select*from company"
    RsOpen (SQL)如果有出错提示什么的贴上来。
      

  4.   

       SQL = "select*from company"
       Call CnOpen
       RsOpen (SQL)
    之类的去掉
      

  5.   

    SQL = "select*from company"
    改为
    SQL = "select * from company"SQL语句是错的吧。
      

  6.   

    Private Sub CmdNext_Click()
         SQL = "select*from company"
         RsOpen (SQL)
         If Rs.EOF Then
            MsgBox ("已经是最后一条!"), vbOKOnly, "错误"
            Exit Sub
         Else
            Rs.MoveNext
            ShowInfo
         End If
          
    End Sub每次打开数据库都在那一个位置,点下一条好像没意义,
      

  7.   

    谢谢,已经改好了,就是你说的原因Dim DataPos&
    Dim oldpos() As CONTROLRECT
    Private Sub CmdFirst_Click()
         If Rs.BOF Then
            MsgBox ("未找到数据信息,请确认!"), vbOKOnly, "错误"
         Else
            Rs.MoveFirst
            ShowInfo
        End If
    End SubPrivate Sub CmdLast_Click()
           If Rs.RecordCount < 1 Then
            MsgBox ("未找到数据信息,请确认!"), vbOKOnly, "错误"
            Exit Sub
         Else
            Rs.MoveLast
            ShowInfo
         End IfEnd SubPrivate Sub CmdNext_Click()
               
        '将当前记录移动到下一条记录
     If Rs.EOF Then
       MsgBox "已经到了最后一条记录", , "提示信息"
     Else
       Rs.MoveNext
       '调用ShowInfo过程,在文本框中显示当前的记录信息
       ShowInfo
     End If
        
    End SubPrivate Sub CmdPrevious_Click()
       
           If Rs.BOF Then
                MsgBox ("第一条数据了"), vbOKOnly, "错误"
           Else
                ShowInfo
                Rs.MovePrevious
           End If
    End SubPrivate Sub Form_Resize()    SetNewPos Me, oldposEnd Sub
    Private Sub CmdADD_Click()
         Text1.SetFocus
         CmdSave.Enabled = True
            Text1.Text = ""
            Text2.Text = ""
            Text3.Text = ""
            Text4.Text = ""
            Text5.Text = ""
            Text6.Text = ""
            Text7.Text = ""
            Text8.Text = ""
            Text9.Text = ""
            Text10.Text = ""
            Text11.Text = ""
            Text12.Text = ""
            Text13.Text = ""
            Text14.Text = ""
            Text15.Text = ""
            Text16.Text = ""
           
    End SubPrivate Sub CmdDele_Click()
          SQL = "select*from company where 厂商号=" & Val(Text1.Text) & ""
          Call CnOpen
          RsOpen (SQL)
          If Rs.RecordCount < 1 Then
                MsgBox ("未找到数据信息,请确认!"), vbOKOnly, "错误"
                Exit Sub
          Else
                If MsgBox("数据删除不可恢复,请确认!", vbYesNo) = vbYes Then
                    Rs.Delete
                    Rs.MoveNext
                    Rs.Close
                    Call Reshow '刷新一下数据源
                Else
                
                End If
               
          End If
    End SubPrivate Sub CmdSave_Click()
         Text1.SetFocus
         If Text1.Text = "" Then
            MsgBox "请输入厂商号再添加数据", vbOKOnly, "提示"
            Text1.SetFocus
            Exit Sub
          Else
             Rs.Close
             SQL = "select*from company where 厂商号=" & Val(Text1.Text) & ""
             RsOpen (SQL)
         
             If Rs.EOF = False Then '''''''If Rs.RecordCount >0  Then也可
         
                    MsgBox "厂商号重复!", vbOKOnly + vbExclamation, "错误"
                    Text1.SetFocus
                    Text1 = ""
                    Rs.Close
               Else
                    Rs.AddNew
                    Rs.Fields(0).Value = Val(Text1.Text)
                    Rs.Fields(1).Value = CStr(Text2.Text)
                    Rs.Fields(2).Value = CStr(Text3.Text)
                    Rs.Fields(3).Value = CStr(Text4.Text)
                    Rs.Fields(4).Value = CStr(Text5.Text)
                    Rs.Fields(5).Value = CStr(Text6.Text)
                    Rs.Fields(6).Value = CStr(Text7.Text)
                    Rs.Fields(7).Value = CStr(Text8.Text)
                    Rs.Fields(8).Value = CStr(Text9.Text)
                    Rs.Fields(9).Value = CStr(Text10.Text)
                    Rs.Fields(10).Value = CStr(Text11.Text)
                    Rs.Fields(11).Value = CStr(Text12.Text)
                    Rs.Fields(12).Value = CStr(Text13.Text)
                    Rs.Fields(13).Value = CStr(Text14.Text)
                    Rs.Fields(14).Value = CStr(Text15.Text)
                    Rs.Fields(15).Value = CStr(Text16.Text)
                    Rs.Update
                    Rs.Close
                 End If
            
           End If
           
             Call Reshow
    End SubPrivate Sub Form_Load()     ReDim oldpos(Me.Controls.Count)
         GetSourcePos Me, oldpos
          
          CnOpen
          Reshow '刷新一下数据
          CmdSave.Enabled = False
    End SubPrivate Sub MSHFlexGrid1_Click()
    '   SQL = "select*from company"
    '   Call CnOpen
    '   RsOpen (SQL)
       If Rs.RecordCount > 0 Then
          If MSHFlexGrid1.MouseRow = 0 Then
          Else
             DataPos = MSHFlexGrid1.MouseRow - 1
             Rs.MoveFirst
             Rs.Move DataPos
          End If
       End If
       '======窗口显示
            Text1.Text = MSHFlexGrid1.TextMatrix(DataPos + 1, 1)
            Text2.Text = MSHFlexGrid1.TextMatrix(DataPos + 1, 2)
            Text3.Text = MSHFlexGrid1.TextMatrix(DataPos + 1, 3)
            Text4.Text = MSHFlexGrid1.TextMatrix(DataPos + 1, 4)
            Text5.Text = MSHFlexGrid1.TextMatrix(DataPos + 1, 5)
            Text6.Text = MSHFlexGrid1.TextMatrix(DataPos + 1, 6)
            Text7.Text = MSHFlexGrid1.TextMatrix(DataPos + 1, 7)
            Text8.Text = MSHFlexGrid1.TextMatrix(DataPos + 1, 8)
            Text9.Text = MSHFlexGrid1.TextMatrix(DataPos + 1, 9)
            Text10.Text = MSHFlexGrid1.TextMatrix(DataPos + 1, 10)
            Text11.Text = MSHFlexGrid1.TextMatrix(DataPos + 1, 11)
            Text12.Text = MSHFlexGrid1.TextMatrix(DataPos + 1, 12)
            Text13.Text = MSHFlexGrid1.TextMatrix(DataPos + 1, 13)
            Text14.Text = MSHFlexGrid1.TextMatrix(DataPos + 1, 14)
            Text15.Text = MSHFlexGrid1.TextMatrix(DataPos + 1, 15)
            Text16.Text = MSHFlexGrid1.TextMatrix(DataPos + 1, 16)
           ' Rs.Close
    End Sub
    Private Sub ShowInfo()
         
        On Error Resume Next '''''', 所发生的运行时错误将显示错误信息,同时,代码的执行也随之终止。
            Text1.Text = Rs("厂商号")
            Text1.Text = Rs.Fields(0).Value
            Text2.Text = Rs.Fields(1).Value
            Text3.Text = Rs.Fields(2).Value
            Text4.Text = Rs.Fields(3).Value
            Text5.Text = Rs.Fields(4).Value
            Text6.Text = Rs.Fields(5).Value
            Text7.Text = Rs.Fields(6).Value
            Text8.Text = Rs.Fields(7).Value
            Text9.Text = Rs.Fields(8).Value
            Text10.Text = Rs.Fields(9).Value
            Text11.Text = Rs.Fields(10).Value
            Text12.Text = Rs.Fields(11).Value
            Text13.Text = Rs.Fields(12).Value
            Text14.Text = Rs.Fields(13).Value
            Text15.Text = Rs.Fields(14).Value
            Text16.Text = Rs.Fields(15).Value
            
    End Sub
    这样就ok了,所以贴出来,让大家看看,也算是做个参考吧