如何从 vb6 中的查询中获取 table 值

How to get table value from query in vb6

我在 vb6 函数中创建了一个 table 但无法从 vb6.I 中的 SQL 查询中获取它的值想要自动递增 s.no 而不是 Months.The 要求 table 如下。请帮忙

S.NO  EMPLOYEE_ID  EMPLOYEE_NAME   GROSS_SALARY
1       1            abc             45677878
2       2            xyz             5678998

下面给出了创建的函数

Private Sub Command1_Click()

    Dim FileName As String
    Dim lTaxablePay As Variant
    Dim lSDLAmt As Variant
    Dim lRsCompDet As New ADODB.Recordset
    Dim lRsMonthlyDet As New ADODB.Recordset
    Dim lTotCasual As Currency, lTotPermanent As Currency, lTotSDLAmt As Currency, lTotGrossAmt As Currency

    Call MsgBox("This report will be generated for the period of " & MonthName(DTPFromDate.Month) & " to " & MonthName(DTPToDate.Month), vbOKOnly + vbExclamation, Me.Caption)

    lstrSQL = "SELECT ADDRESS1, ADDRESS2, CITY, POSTCODE , TYPE_OF_BUSINESS "
    lstrSQL = lstrSQL & " FROM I_HR_EMPLOYER_MASTER "
    lstrSQL = lstrSQL & " WHERE EMPLOYER_CODE = '" & gEmployerCode & "' AND TAX_YEAR = " & gTaxYear

    Set lRsCompDet = gObjDBConnection.ExecuteSQL(lstrSQL)

    If RecordsetsIsEmpty(lRsCompDet) = True Then
        MsgBox "Company Details are not entered.", vbOKOnly + vbInformation, Me.Caption
        Exit Sub
    End If

    lTaxablePay = GetTaxablePay(, DTPFromDate.Month, DTPToDate.Month)
    lstrSQL = " SELECT s.EMPLOYEE_ID,EMPLOYEE_NAME, "
    lstrSQL = lstrSQL & " (SELECT sum(AMOUNT)As GROSS_SALARY FROM V_HR_PP_PROCESS_DATA  s inner join I_HR_EMPLOYEE_MASTER m on m.EMPLOYER_CODE=s.EMPLOYER_CODE and m.EMPLOYEE_ID=s.EMPLOYEE_ID WHERE "
    lstrSQL = lstrSQL & " EMPLOYER_CODE = A.EMPLOYER_CODE AND TAX_YEAR = A.TAX_YEAR AND PROCESS_MONTH = A.MONTH AND "
    lstrSQL = lstrSQL & " TAX_YEAR = 2014  "
    lstrSQL = lstrSQL & " group by  s.EMPLOYER_CODE,s.EMPLOYEE_ID,EMPLOYEE_NAME,TAX_YEAR "
   ' MsgBox (lstrSQL)


    Set lRsMonthlyDet = gObjDBConnection.ExecuteSQL(lstrSQL)

    lRsMonthlyDet.Sort = "Month Asc"

    'If fSDLPercentage <> 0 Then
        lSDLAmt = Val(lTaxablePay & "") * 1 / 100
   ' End If

 fObjTS.WriteLine " ------------------------------------------------------------------------------------------------"
    fObjTS.WriteLine " |              |                  |                 |                 |                        |"
    fObjTS.WriteLine " |   S.NO       |  EMPLOYEE_ID     |   EMPLOYEE NAME |   GROSS SALARY  | Total amount of        |"
    fObjTS.WriteLine " |              |                  |                 |                 | SDL. Paid to           |"
    fObjTS.WriteLine " |              |                  |                 |                 |  the Bank              |"
    fObjTS.WriteLine " ------------------------------------------------------------------------------------------------"

    If RecordsetsIsEmpty(lRsMonthlyDet) = True Then
    fObjTS.WriteLine " |  January     |                  |                 |                 |                        |"
    fObjTS.WriteLine " |  February    |                  |                 |                 |                        |"
    fObjTS.WriteLine " |  March       |                  |                 |                 |                        |"
    fObjTS.WriteLine " |  April       |                  |                 |                 |                        |"
    fObjTS.WriteLine " |  May         |                  |                 |                 |                        |"
    fObjTS.WriteLine " |  June        |                  |                 |                 |                        |"
    fObjTS.WriteLine " |  July        |                  |                 |                 |                        |"
    fObjTS.WriteLine " |  August      |                  |                 |                 |                        |"
    fObjTS.WriteLine " |  September   |                  |                 |                 |                        |"
    fObjTS.WriteLine " |  October     |                  |                 |                 |                        |"
    fObjTS.WriteLine " |  November    |                  |                 |                 |                        |"
    fObjTS.WriteLine " |  December    |                  |                 |                 |                        |"
    fObjTS.WriteLine " |              |                  |                 |                 |                        |"
    fObjTS.WriteLine " ------------------------------------------------------------------------------------------------"
    fObjTS.WriteLine " |  TOTALS      |                  |                 |                 |                        |"
    fObjTS.WriteLine " ------------------------------------------------------------------------------------------------"
    Else

        lTotCasual = 0: lTotPermanent = 0: lTotSDLAmt = 0: lTotGrossAmt = 0
       Do While Not lRsMonthlyDet.EOF

            'If fSDLPercentage <> 0 Then
                lSDLAmt = (Val(lRsMonthlyDet.Fields("Gross_Permanent").Value & "") + Val(lRsMonthlyDet.Fields("Gross_Casual").Value & "")) * 1 / 100
           ' Else
           '     lSDLAmt = 0
          '  End If

            lTotCasual = lTotCasual + Val(lRsMonthlyDet.Fields("Employee_Id").Value & "")
           lTotPermanent = lTotPermanent + Val(lRsMonthlyDet.Fields("Employee_Name").Value & "")
            lTotGrossAmt = lTotGrossAmt + Val(lRsMonthlyDet.Fields("Gross_Salary").Value & "") + Val(lRsMonthlyDet.Fields("Gross_Permanent").Value & "")
            lTotSDLAmt = lTotSDLAmt + Val(lSDLAmt & "")

            fObjTS.WriteLine " |  " & _
                            ConvertNumberToThousandSeparator(Val(lRsMonthlyDet.Fields("Employee_Id").Value & "")) & "|" & _
                           ConvertNumberToThousandSeparator(Val(lRsMonthlyDet.Fields("Employee_Name").Value & "")) & "|" & _
                         ConvertNumberToThousandSeparator(Val(lRsMonthlyDet.Fields("Gross_Salary").Value & "")) & "|" & _
                            ConvertNumberToThousandSeparator(lSDLAmt, 24) & "|"

            lRsMonthlyDet.MoveNext

        Loop

        fObjTS.WriteLine " |              |                  |                 |                 |                        |"
        fObjTS.WriteLine " ------------------------------------------------------------------------------------------------"
        fObjTS.WriteLine " |  TOTALS      |" & _
                            ConvertNumberToThousandSeparator(Val(lTotPermanent & ""), 18) & "|" & _
                            ConvertNumberToThousandSeparator(Val(lTotCasual & ""), 17) & "|" & _
                            ConvertNumberToThousandSeparator(Val(lTotGrossAmt & ""), 17) & "|" & _
                            ConvertNumberToThousandSeparator(lTotSDLAmt, 24) & "|"
        fObjTS.WriteLine " ------------------------------------------------------------------------------------------------"

   End If
    '--------------------------------------------------------------------
    fObjTS.WriteLine ""

    fObjTS.CLOSE

    Call ShowTextReportPreview(FileName)

End Sub

这是上述问题的解决方案

私人订阅 cmdWCReport_Click() 将文件名调暗为字符串 Dim lTaxablePay 作为变体 将 lSDLAmt 变暗为变体 将 lRsCompDet 变暗为新 ADODB.Recordset Dim lRsMonthlyDet 为新 ADODB.Recordset Dim EmployeeID 为字符串,EmployeeName 为字符串,lTotBasicAmt 为货币,lTotGrossAmt 为货币,lTotUSDGrossPay 为货币

Call MsgBox("This report will be generated for the period of " & MonthName(DTPFromDate.Month), vbOKOnly + vbExclamation, Me.Caption)

lstrSQL = "SELECT ADDRESS1, ADDRESS2, CITY, POSTCODE , TYPE_OF_BUSINESS "
lstrSQL = lstrSQL & " FROM I_HR_EMPLOYER_MASTER "
lstrSQL = lstrSQL & " WHERE EMPLOYER_CODE = '" & gEmployerCode & "' AND TAX_YEAR = " & gTaxYear

Set lRsCompDet = gObjDBConnection.ExecuteSQL(lstrSQL)

If RecordsetsIsEmpty(lRsCompDet) = True Then
    MsgBox "Company Details are not entered.", vbOKOnly + vbInformation, Me.Caption
    Exit Sub
End If

lTaxablePay = GetTaxablePay(, DTPFromDate.Month, DTPToDate.Month)

lstrSQL = " SELECT A.EMPLOYEE_ID, A.EMPLOYEE_CODE, A.EMPLOYEE_NAME, "
lstrSQL = lstrSQL & " (SELECT sum(AMOUNT) FROM V_HR_PP_PROCESS_DATA PP "
lstrSQL = lstrSQL & " WHERE EMPLOYER_CODE = A.EMPLOYER_CODE AND TAX_YEAR = " & gTaxYear & " AND PROCESS_MONTH = " & DTPFromDate.Month
lstrSQL = lstrSQL & " AND EMPLOYEE_ID = a.EMPLOYEE_ID AND PROCESS_YEAR = " & DTPFromDate.Year
lstrSQL = lstrSQL & " AND PD_CODE = 'Z970' ) as GROSSPAY, "
lstrSQL = lstrSQL & " (SELECT sum(AMOUNT) FROM V_HR_PP_PROCESS_DATA PP "
lstrSQL = lstrSQL & " WHERE EMPLOYER_CODE = A.EMPLOYER_CODE AND TAX_YEAR = " & gTaxYear & " AND PROCESS_MONTH = " & DTPFromDate.Month
lstrSQL = lstrSQL & " AND EMPLOYEE_ID = a.EMPLOYEE_ID AND PROCESS_YEAR = " & DTPFromDate.Year
lstrSQL = lstrSQL & " AND PD_CODE = 'Z001' ) as BASICPAY, "

 lstrSQL = lstrSQL & " (SELECT sum(AMOUNT_OTHER_CURRENCY) FROM V_HR_PP_PROCESS_DATA PP "
lstrSQL = lstrSQL & " WHERE EMPLOYER_CODE = A.EMPLOYER_CODE AND TAX_YEAR = " & gTaxYear & " AND PROCESS_MONTH = " & DTPFromDate.Month
lstrSQL = lstrSQL & " AND EMPLOYEE_ID = a.EMPLOYEE_ID AND PROCESS_YEAR = " & DTPFromDate.Year
lstrSQL = lstrSQL & " AND PD_CODE = 'Z970' AND OTHER_CURRENCY_CODE = 'USD') as USDGROSSPAY "

lstrSQL = lstrSQL & " FROM I_HR_EMPLOYEE_MASTER A"
lstrSQL = lstrSQL & " WHERE A.EMPLOYER_CODE = '" & gEmployerCode & "' "
lstrSQL = lstrSQL & " AND CURRENT_EMPLOYEE_STATUS <> 'T' AND RECORD_STATUS <> 'D'  "
'MsgBox (lstrSQL)

Set lRsMonthlyDet = gObjDBConnection.ExecuteSQL(lstrSQL)

'If fSDLPercentage <> 0 Then
    lSDLAmt = Val(lTaxablePay & "") * 1 / 100

' 结束如果

出错继续下一步 fObjTS.Close

FileName = CreateStdSpoolFileName("WORKMEN'S COMPENSATION REPORT")
Set fObjTS = fobjSh.CreateTextFile(FileName, True)

'Set fObjTS = fobjSh.OpenTextFile(FileName, ForWriting,  True)

fObjTS.WriteLine ""
fObjTS.WriteLine "                          TANZANIA REVENUE AUTHORITY"
fObjTS.WriteLine "                             WC FUND"
fObjTS.WriteLine ""
fObjTS.WriteLine ""
fObjTS.WriteLine "                         WORKMEN'S COMPENSATION FUND(WCF)"
fObjTS.WriteLine "                      EMPLOYER 'S END OF THE YEAR CERTIFICATE"
fObjTS.WriteLine "                                 YEAR " & gTaxYear
fObjTS.WriteLine ""
fObjTS.WriteLine ""
fObjTS.WriteLine " To: The Regional/District Revenue Officer"
fObjTS.WriteLine "     Income Tax Department"
fObjTS.WriteLine "     P.O.Box............................."
fObjTS.WriteLine "            .............................  Employer's Income Tax Number " & fEmployersITNumber
fObjTS.WriteLine ""
fObjTS.WriteLine ""
fObjTS.WriteLine ""
fObjTS.WriteLine " -------------------------------------------------------------------------------"
fObjTS.WriteLine "|  1. Name Of Employer                 |" & PadR(gEmployerName, 39) & "|"
fObjTS.WriteLine "|                                      |                                       |"
fObjTS.WriteLine "|  2. Address: Postal                  |" & PadR(lRsCompDet.Fields("Address1").Value & "", 39) & "|"
fObjTS.WriteLine "|              Physical                |" & PadR(lRsCompDet.Fields("Address2").Value & "", 39) & "|"
fObjTS.WriteLine "|                                      |" & PadR(lRsCompDet.Fields("CITY").Value & "," & lRsCompDet.Fields("POSTCODE").Value, 39) & "|"
fObjTS.WriteLine "|  3. Nature of Business               |" & PadR(lRsCompDet.Fields("TYPE_OF_BUSINESS").Value & "", 39) & "|"
fObjTS.WriteLine "|                                      |                                       |"
fObjTS.WriteLine "|     State Whether                    |                                       |"
fObjTS.WriteLine "|  4. Individual/PartnerShips/         |                                       |"
fObjTS.WriteLine "|     Companies/                       |                                       |"
fObjTS.WriteLine "|     Parastatals/and others e.g Clubs |                                       |"
fObjTS.WriteLine "|     Trusts and Associations          |                                       |"
fObjTS.WriteLine "|  5. Amount                           |" & ConvertNumberToThousandSeparator(Val(lTaxablePay & ""), 16) & "                       |"
fObjTS.WriteLine "|  6. Applicable Month                 |" & DTPFromDate & "                            |"
fObjTS.WriteLine "--------------------------------------------------------------------------------"
fObjTS.WriteLine ""
fObjTS.WriteLine ""
fObjTS.WriteLine " The total amount of gross emoluments paid during the year " & gTaxYear & " added up"
fObjTS.WriteLine "to Shs " & ConvertNumberToThousandSeparator(Val(lTaxablePay & ""), 16) & " and " & 1 & "% of which works to Shs" & ConvertNumberToThousandSeparator(lSDLAmt, 16) & " as"
fObjTS.WriteLine "shown on the reverse of this Form."
fObjTS.WriteLine ""
fObjTS.WriteLine " I/We Certify that the particulars entered on the form HL.9 already submitted"
fObjTS.WriteLine "Monthly for the period from January to December, " & gTaxYear & " are correct."
fObjTS.WriteLine ""
fObjTS.WriteLine ""
fObjTS.WriteLine "Date " & Format(Date, "dd/MM/yyyy") & "                                 (Signature and rubber stamp)"
fObjTS.WriteLine ""
fObjTS.WriteLine "To be submitted in original to the relevant Income Tax Office on or before"
fObjTS.WriteLine "31St January of the Year following."

'Second Page
fObjTS.WriteLine Chr(12)
fObjTS.WriteLine "                                  SUMMARY FOR THE "
fObjTS.WriteLine "                                     YEAR " & gTaxYear
fObjTS.WriteLine ""
fObjTS.WriteLine ""

fObjTS.WriteLine " ----------------------------------------------------------------------------------------------------------------"
fObjTS.WriteLine " |              |                  |                 |                 |                        |                |"
fObjTS.WriteLine " |   S.NO       |  EMPLOYEE_CODE   |   EMPLOYEE NAME |   GROSS SALARY  |  BASIC SALARY          |    USD_GROSS   |"
fObjTS.WriteLine " |              |                  |                 |                 |                        |                |"
fObjTS.WriteLine " |              |                  |                 |                 |                        |                |"
fObjTS.WriteLine " ----------------------------------------------------------------------------------------------------------------"

lTotGrossAmt = 0: lTotBasicAmt = 0 昏暗的 lintCtr 一样长 lintCtr = 1

   Do While Not lRsMonthlyDet.EOF
        fObjTS.WriteLine " |  " & PadL(CStr(lintCtr), 5, False) & _
                        "       |  " & PadR(lRsMonthlyDet.Fields("EMPLOYEE_CODE").Value, 10) & _
                        "      |  " & PadR(lRsMonthlyDet.Fields("EMPLOYEE_NAME").Value, 10) & _
                        "     |  " & ConvertNumberToThousandSeparator(Val(lRsMonthlyDet.Fields("GROSSPAY").Value & ""), 15) & _
                        "|  " & ConvertNumberToThousandSeparator(Val(lRsMonthlyDet.Fields("BASICPAY").Value & ""), 22) & _
                         "|  " & ConvertNumberToThousandSeparator(Val(lRsMonthlyDet.Fields("USDGROSSPAY").Value & ""), 8) & "      |"


        lTotGrossAmt = lTotGrossAmt + Val(lRsMonthlyDet.Fields("GROSSPAY").Value & "")
        lTotBasicAmt = lTotBasicAmt + Val(lRsMonthlyDet.Fields("BASICPAY").Value & "")
        lTotUSDGrossPay = lTotUSDGrossPay + Val(lRsMonthlyDet.Fields("USDGROSSPAY").Value & "")


            lRsMonthlyDet.MoveNext
            lintCtr = lintCtr + 1
    Loop

    fObjTS.WriteLine " |              |                  |                 |                 |                        |                |"
    fObjTS.WriteLine " -----------------------------------------------------------------------------------------------------------------"
    fObjTS.WriteLine " |  TOTALS      |" & _
                         " " & "                 |" & _
                      " " & "                |" & _
        ConvertNumberToThousandSeparator(Val(lTotGrossAmt), 16) & " |" & _
        ConvertNumberToThousandSeparator(Val(lTotBasicAmt), 24) & "|" & _
         ConvertNumberToThousandSeparator(Val(lTotUSDGrossPay), 10) & "       |"
    fObjTS.WriteLine " -----------------------------------------------------------------------------------------------------------------"

fObjTS.Close

Call ShowTextReportPreview(FileName)

结束子 }