标题:Do While Not mrc.EOF语句错误
只看楼主
ichdish
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2008-12-3
 问题点数:0 回复次数:5 
Do While Not mrc.EOF语句错误
Option Explicit
Public txtSQL As String
Dim mrc As ADODB.Recordset

Private Sub cmdAdd_Click()
    gintKmode = 1
    frmTicket1.Show 1
   
End Sub

Private Sub cmdDelete_Click()
    Dim txtSQL As String
    Dim intCount As Integer
    Dim mrc As ADODB.Recordset
    Dim MsgText As String
   
   
    If msgList.Rows > 1 Then
        If MsgBox("真的要删除顾客" & Trim(msgList.TextMatrix(msgList.Row, 3)) & Trim(msgList.TextMatrix(msgList.Row, 9)) & "从" & Trim(msgList.TextMatrix(msgList.Row, 7)) & "到" & Trim(msgList.TextMatrix(msgList.Row, 8)) & "的机票吗?", vbOKCancel + vbExclamation, "警告") = vbOK Then
            intCount = msgList.Row
            txtSQL = "delete from ticketInfo where ticketNO ='" & Trim(msgList.TextMatrix(intCount, 1)) & "'"
            Set mrc = ExecuteSQL(txtSQL, MsgText)
               
            Unload frmTicket
            frmTicket.txtSQL = "select * from ticketInfo"
            frmTicket.Show
        End If
    End If


End Sub

Private Sub cmdModify_Click()
    Dim intCount As Integer
   
    If frmTicket.msgList.Rows > 1 Then
        gintKmode = 2
        intCount = msgList.Row
        If intCount > 0 Then
           frmTicket1.txtSQL = "select * from ticketInfo where ticketNO ='" & Trim(msgList.TextMatrix(intCount, 1)) & "'"
           frmTicket1.Show 1
        Else
            MsgBox "警告", vbOKOnly + vbExclamation, "请首先选择需要修改的纪录!"
        End If
    End If

End Sub



Private Sub Command3_Click()
    frmTicket2.Show 1
End Sub

Private Sub Form_Load()
    ShowTitle
    ShowData
   
End Sub

Private Sub Form_Resize()
    If Me.WindowState <> vbMinimized And fMainForm.WindowState <> vbMinimized Then
        '边界处理
        If Me.ScaleHeight < 10 * lblTitle.Height Then
            
            Exit Sub
        End If
        If Me.ScaleWidth < lblTitle.Width + lblTitle.Width / 2 Then
            
            Exit Sub
        End If
        '控制控件的位置
               
        lblTitle.Top = lblTitle.Height
        lblTitle.Left = (Me.Width - lblTitle.Width) / 2
        
        msgList.Top = lblTitle.Top + lblTitle.Height + lblTitle.Height / 2
        msgList.Width = Me.ScaleWidth - 200
        msgList.Left = Me.ScaleLeft + 100
        msgList.Height = Me.ScaleHeight - msgList.Top - 1500
        
        Frame2.Top = msgList.Top + msgList.Height + 50
        Frame2.Left = Me.ScaleWidth / 2 - 3000
    End If
End Sub



Public Sub FormClose()
    Unload Me
End Sub
Private Sub ShowData()
   
    Dim j As Integer
    Dim i As Integer
    Dim MsgText As String

  
    Set mrc = ExecuteSQL(txtSQL, MsgText)
        With msgList
        .Rows = 1
         Do While Not mrc.EOF
            .Rows = .Rows + 1
            For i = 1 To mrc.Fields.Count
                If Not IsNull(Trim(mrc.Fields(i - 1))) Then
                Select Case mrc.Fields(i - 1).Type
                    Case adDBDate
                        .TextMatrix(.Rows - 1, i) = Format(mrc.Fields(i - 1) & "", "yyyy-mm-dd")
                    Case Else
                        .TextMatrix(.Rows - 1, i) = mrc.Fields(i - 1) & ""
                End Select
                End If
            Next i
            mrc.MoveNext
        Loop
        
         
    End With
    mrc.Close
   
   
End Sub


'显示Grid表头
Private Sub ShowTitle()
    Dim i As Integer
   
    With msgList
        .Cols = 14
        .TextMatrix(0, 1) = ""
        .TextMatrix(0, 2) = ""
        .TextMatrix(0, 3) = "顾客姓名"
        .TextMatrix(0, 4) = "顾客类型"
        .TextMatrix(0, 5) = "折扣比例"
        .TextMatrix(0, 6) = ""
        .TextMatrix(0, 7) = "出发城市"
        .TextMatrix(0, 8) = "到达城市"
        .TextMatrix(0, 9) = "出发时间"
        .TextMatrix(0, 10) = "舱位类别"
        .TextMatrix(0, 11) = "票价"
        .TextMatrix(0, 12) = "结算金额"
        .TextMatrix(0, 13) = "备注信息"
        
        
      
        
        '固定表头
        .FixedRows = 1
               
        '设置各列的对齐方式
        For i = 0 To 13
            .ColAlignment(i) = 0
        Next i
        
        
        '表头项居中
        .FillStyle = flexFillRepeat
        .Col = 0
        .Row = 0
        .RowSel = 1
        .ColSel = .Cols - 1
        .CellAlignment = 4
        
        '设置单元大小
        .ColWidth(0) = 1000
        .ColWidth(1) = 0
        .ColWidth(2) = 0
        .ColWidth(3) = 1000
        .ColWidth(4) = 1000
        .ColWidth(5) = 1000
        .ColWidth(6) = 0
        .ColWidth(7) = 1000
        .ColWidth(8) = 1000
        .ColWidth(9) = 1000
        .ColWidth(10) = 1000
        .ColWidth(11) = 1000
        .ColWidth(12) = 1000
        .ColWidth(13) = 2000
        .Row = 1
        
    End With
End Sub




Private Sub msgList_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
    '右键弹出
    If Button = 2 And Shift = 0 Then
      
    End If
   
End Sub
搜索更多相关主题的帖子: mrc While 语句 Not 
2008-12-03 19:34
三断笛
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:31
帖 子:1621
专家分:1617
注 册:2007-5-24
得分:0 
发这么长一段代码上来,也不把真正重要的ExecuteSQL函数发上来,真是的
2008-12-04 14:22
ichdish
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2008-12-3
得分:0 
不是吧,我晕!抱歉了!
2008-12-05 12:08
三断笛
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:31
帖 子:1621
专家分:1617
注 册:2007-5-24
得分:0 
mrc出错了,mrc的内容就是由ExecuteSQL控制的啊
2008-12-05 16:16
不说也罢
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:39
帖 子:1481
专家分:4989
注 册:2007-10-7
得分:0 
懒得看你这么长的代码,呵呵
你在Form_Load()事件中调用ShowData()过程,此过程中又用到了两个参数,准确地说是ExecuteSQL需要的两个参数值没有传递,怎么可能不出错呢???

===================================================
讨厌C#的行尾的小尾巴;和一对大括号{ }
===================================================
2008-12-05 18:52
ichdish
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2008-12-3
得分:0 
回复 第2楼 三断笛 的帖子
不是你说的吗?“发这么长一段代码上来,也不把真正重要的ExecuteSQL函数发上来,真是的 ”,我就把它传上来了呀
我海是没明白为什么“Do While Not mrc.EOF语句错误“这个语句会有错误
2008-12-06 16:31



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-247617-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.162385 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved