Dim Hjjc As Double
   Dim Hjsk As Double
   Dim Hjks As Double
   Dim mRsQ As New ADODB.Recordset
   Dim mOperate_id As String
   
Private Sub Form_Activate()
On Error Resume Next
    mRsQ.Close
    mRsQ.Open "select * from fz_sk_jbdata where operate_id=" & Val(gOperate_idg) & " and sign='0'", gCnSk, adOpenStatic, adLockReadOnly
    If mRsQ.EOF = False Then
      Call Xsdata
'      mRsQ.MoveNext
    End IfEnd Sub
    
Private Sub Form_Load()
On Error Resume Next
   MSHFtzdmx.Rows = 2
    MSHFtzdmx.Cols = 13
    MSHFtzdmx.TextMatrix(0, 0) = "序号"
    MSHFtzdmx.TextMatrix(0, 1) = "红"
    MSHFtzdmx.TextMatrix(0, 2) = "白"
    MSHFtzdmx.TextMatrix(0, 3) = "黑"
    MSHFtzdmx.TextMatrix(0, 4) = "黄"
    MSHFtzdmx.TextMatrix(0, 5) = "蓝"
    MSHFtzdmx.TextMatrix(0, 6) = "紫"
    MSHFtzdmx.TextMatrix(0, 7) = "棕"
    MSHFtzdmx.TextMatrix(0, 8) = "灰"
    MSHFtzdmx.TextMatrix(0, 9) = "青"
    MSHFtzdmx.TextMatrix(0, 10) = "粉"
    MSHFtzdmx.TextMatrix(0, 11) = "菊"
    MSHFtzdmx.TextMatrix(0, 12) = "橙"
    MSHFtzdmx.TextMatrix(MSHFtzdmx.Rows - 1, 0) = "合计"
    MSHFtzdmx.TextMatrix(MSHFtzdmx.Rows - 1, 1) = ""
    MSHFtzdmx.TextMatrix(MSHFtzdmx.Rows - 1, 2) = ""
    MSHFtzdmx.TextMatrix(MSHFtzdmx.Rows - 1, 3) = "0"
    MSHFtzdmx.TextMatrix(MSHFtzdmx.Rows - 1, 4) = "0"
    MSHFtzdmx.TextMatrix(MSHFtzdmx.Rows - 1, 5) = ""
    MSHFtzdmx.TextMatrix(MSHFtzdmx.Rows - 1, 6) = "0"
    MSHFtzdmx.TextMatrix(MSHFtzdmx.Rows - 1, 7) = ""
    MSHFtzdmx.TextMatrix(MSHFtzdmx.Rows - 1, 8) = ""
    MSHFtzdmx.TextMatrix(MSHFtzdmx.Rows - 1, 9) = ""
    MSHFtzdmx.TextMatrix(MSHFtzdmx.Rows - 1, 10) = ""
    MSHFtzdmx.TextMatrix(MSHFtzdmx.Rows - 1, 11) = ""
    MSHFtzdmx.TextMatrix(MSHFtzdmx.Rows - 1, 12) = ""
   
    
    Dim i As Integer
    For i = 0 To MSHFtzdmx.Cols - 1
                If (MSHFtzdmx.Width - 400) > 0 Then MSHFtzdmx.ColWidth(i) = (MSHFtzdmx.Width - 400) / (MSHFtzdmx.Cols - 5)
    Next i
    MSHFtzdmx.ColWidth(5) = 0
    MSHFtzdmx.ColWidth(7) = 0
    MSHFtzdmx.ColWidth(8) = 0
    MSHFtzdmx.ColWidth(9) = 0
    MSHFtzdmx.ColWidth(10) = 0
    
    Dim lRs As New ADODB.Recordset
    lRs.Close
    lRs.Open "select small_id from fz_sk_data where fire_opening>=4 and  operate_id=" & Val(gOperate_idg) & "", gCnSk, adOpenStatic, adLockReadOnly
    While Not lRs.EOF
       Combo1.AddItem lRs(0)
       lRs.MoveNext
    Wend
    
    Dim lRs1 As New ADODB.Recordset
    lRs1.Close
    lRs1.Open "select distinct(gun_length) from fz_sk_gun where gun_name=(select gun from fz_sk_jbdata  where operate_id=" & Val(gOperate_idg) & ")", gCnSk, adOpenStatic, adLockReadOnly
    While Not lRs1.EOF
       lRs1(0) = Format(lRs1(0), "0.0")
       Combo2.AddItem lRs1(0)
       lRs1.MoveNext
    Wend
    
  End SubPrivate Function Xsdata()
    If mRsQ.EOF = True Then Exit Function
    Dim i As Integer
    mOperate_id = mRsQ("operate_id")
    gOperate_idg = mOperate_id
    
   
    
   Dim lRsdata As New ADODB.Recordset
       
    lRsdata.Open "select fz_sk_data.small_id, oil_bottom, oil_top, interlining,fire_opening, hole_close, hole_count,bullet_name,gun,zcsk,xwj,yh,choose_gun.choose_gunlen from fz_sk_data left join choose_gun on choose_gun.operate_id=fz_sk_data.operate_id where fz_sk_data.operate_id =" & mOperate_id & "", gCnSk, adOpenStatic, adLockReadOnly
     MSHFtzdmx.Rows = 2
     Call HjMs
    MSHFtzdmx.Rows = lRsdata.RecordCount + MSHFtzdmx.Rows
    'Text12.Text = lRsdata.RecordCount
    While Not lRsdata.EOF
        ' If lRsdata.AbsolutePosition = 1 Then Text4.Text = lRsdata(1)
        'If lRsdata.AbsolutePosition = lRsdata.RecordCount Then Text8.Text = lRsdata(2)
         MSHFtzdmx.TextMatrix(lRsdata.AbsolutePosition, 0) = lRsdata(0)
         MSHFtzdmx.TextMatrix(lRsdata.AbsolutePosition, 1) = lRsdata(1)
         MSHFtzdmx.TextMatrix(lRsdata.AbsolutePosition, 2) = lRsdata(2)
         MSHFtzdmx.TextMatrix(lRsdata.AbsolutePosition, 3) = lRsdata(3)
         MSHFtzdmx.TextMatrix(lRsdata.AbsolutePosition, 4) = lRsdata(4)
         MSHFtzdmx.TextMatrix(lRsdata.AbsolutePosition, 5) = IIf(lRsdata(5) = 0, "", lRsdata(5))
         MSHFtzdmx.TextMatrix(lRsdata.AbsolutePosition, 6) = lRsdata(6)
         MSHFtzdmx.TextMatrix(lRsdata.AbsolutePosition, 7) = lRsdata(7)
         MSHFtzdmx.TextMatrix(lRsdata.AbsolutePosition, 8) = lRsdata(8)
         MSHFtzdmx.TextMatrix(lRsdata.AbsolutePosition, 9) = lRsdata(9)
         MSHFtzdmx.TextMatrix(lRsdata.AbsolutePosition, 10) = lRsdata(10)
         MSHFtzdmx.TextMatrix(lRsdata.AbsolutePosition, 11) = lRsdata(11)
         MSHFtzdmx.TextMatrix(lRsdata.AbsolutePosition, 12) = lRsdata(12)         lRsdata.MoveNext
         
         
    Wend
    
        Hjjc = 0
        Hjsk = 0
        Hjks = 0
        For i = 1 To MSHFtzdmx.Rows - 2
            Hjjc = Hjjc + Val(MSHFtzdmx.TextMatrix(i, 3))
            Hjsk = Hjsk + Val(MSHFtzdmx.TextMatrix(i, 4))
            Hjks = Hjks + Val(MSHFtzdmx.TextMatrix(i, 6))
        Next i
        MSHFtzdmx.TextMatrix(MSHFtzdmx.Rows - 1, 0) = "合计"
        MSHFtzdmx.TextMatrix(MSHFtzdmx.Rows - 1, 1) = ""
        MSHFtzdmx.TextMatrix(MSHFtzdmx.Rows - 1, 2) = ""
        MSHFtzdmx.TextMatrix(MSHFtzdmx.Rows - 1, 3) = Round(Hjjc, 2)
        MSHFtzdmx.TextMatrix(MSHFtzdmx.Rows - 1, 4) = Round(Hjsk, 2)
        MSHFtzdmx.TextMatrix(MSHFtzdmx.Rows - 1, 5) = ""
        MSHFtzdmx.TextMatrix(MSHFtzdmx.Rows - 1, 6) = Round(Hjks, 2)
        MSHFtzdmx.TextMatrix(MSHFtzdmx.Rows - 1, 7) = ""
        MSHFtzdmx.TextMatrix(MSHFtzdmx.Rows - 1, 8) = ""
        MSHFtzdmx.TextMatrix(MSHFtzdmx.Rows - 1, 9) = ""
        MSHFtzdmx.TextMatrix(MSHFtzdmx.Rows - 1, 10) = ""
        MSHFtzdmx.TextMatrix(MSHFtzdmx.Rows - 1, 11) = ""
        MSHFtzdmx.TextMatrix(MSHFtzdmx.Rows - 1, 12) = ""
    lRsdata.Close
    Set lRsdata = Nothing
    On Error Resume Next
    
      
    Dim lRs As New ADODB.Recordset
    lRs.Close
    lRs.Open "select small_id from fz_sk_data where fire_opening>=4 and  operate_id=" & mOperate_id & "", gCnSk, adOpenStatic, adLockReadOnly
    While Not lRs.EOF
       Combo1.AddItem lRs(0)
       lRs.MoveNext
    Wend
    
    Dim lRs1 As New ADODB.Recordset
    lRs1.Close
    lRs1.Open "select distinct(length) from fz_sk_data  where gun_name=(select gun from fz_sk_jbdata  where operate_id=" & mOperate_id & ")", gCnSk, adOpenStatic, adLockReadOnly
    While Not lRs1.EOF
       lRs1(0) = Format(lRs1(0), "0.0")
       Combo2.AddItem lRs1(0)
       lRs1.MoveNext
    Wend
    End FunctionPrivate Function HjMs()
        Hjjc = 0
        Hjsk = 0
        Hjks = 0
        For i = 1 To MSHFtzdmx.Rows - 2
           If i = 1 Then
                MSHFtzdmx.TextMatrix(i, 1) = Val(Text4.Text)
                MSHFtzdmx.TextMatrix(i, 2) = MSHFtzdmx.TextMatrix(i, 1) - MSHFtzdmx.TextMatrix(i, 4)
           Else
                MSHFtzdmx.TextMatrix(i, 1) = MSHFtzdmx.TextMatrix(i - 1, 2) - MSHFtzdmx.TextMatrix(i, 3)
                MSHFtzdmx.TextMatrix(i, 2) = MSHFtzdmx.TextMatrix(i, 1) - MSHFtzdmx.TextMatrix(i, 4)
           End If
            Hjjc = Hjjc + Val(MSHFtzdmx.TextMatrix(i, 3))
            Hjsk = Hjsk + Val(MSHFtzdmx.TextMatrix(i, 4))
            Hjks = Hjks + Val(MSHFtzdmx.TextMatrix(i, 6))
        Next i
        MSHFtzdmx.TextMatrix(MSHFtzdmx.Rows - 1, 0) = "合计"
        MSHFtzdmx.TextMatrix(MSHFtzdmx.Rows - 1, 1) = ""
        MSHFtzdmx.TextMatrix(MSHFtzdmx.Rows - 1, 2) = ""
        MSHFtzdmx.TextMatrix(MSHFtzdmx.Rows - 1, 3) = Round(Hjjc, 2)
        MSHFtzdmx.TextMatrix(MSHFtzdmx.Rows - 1, 4) = Round(Hjsk, 2)
        MSHFtzdmx.TextMatrix(MSHFtzdmx.Rows - 1, 5) = ""
        MSHFtzdmx.TextMatrix(MSHFtzdmx.Rows - 1, 6) = Round(Hjks, 2)
        MSHFtzdmx.TextMatrix(MSHFtzdmx.Rows - 1, 7) = ""
        MSHFtzdmx.TextMatrix(MSHFtzdmx.Rows - 1, 8) = ""
        MSHFtzdmx.TextMatrix(MSHFtzdmx.Rows - 1, 9) = ""End Function
执行完红色字那行,就不执行蓝色字体那行。lRsdata读出的不止一条记录!!可显示的只有一行。为什么呢?