- 帖子
- 132
- 主題
- 25
- 精華
- 0
- 積分
- 199
- 點名
- 0
- 作業系統
- window XP
- 軟體版本
- Excel 2010
- 閱讀權限
- 20
- 性別
- 男
- 來自
- 台灣 新竹
- 註冊時間
- 2010-6-1
- 最後登錄
- 2022-7-14
  
|
輸入2個參數 Source Code。
- Option Explicit
- Option Base 0
- Sub main()
- Call SQL_Insurance_Burden
- End Sub
- Function Multiply_2_No_Round_Down_4_Up_5(Number1 As Single, Number2 As Single) As Long
- ' 目的
- ' 2數相乘再做4捨5入
- Multiply_2_No_Round_Down_4_Up_5 = Int(Number1 * Number2 + 0.5)
- End Function
- Sub SQL_Insurance_Burden()
- Const Output_Sht = "輸出表"
- Const Input_Sht = "輸出表"
- Const Labor_Pension_Personal_rate = 0.1
- Dim lcConnectionString As String
- Dim lcConnectString, lcCommandText As String
- Dim loADODBConnection As ADODB.Connection
- Dim loADODBRecordset As ADODB.Recordset
-
- lcConnectionString = "Driver={Microsoft Excel Driver (*.xls)}; " & _
- "DBQ=" + ActiveWorkbook.FullName + ";" & _
- "ReadOnly=True"
-
- lcCommandText = "SELECT 序號, 姓名, 核定本薪, 核定績效 , 薪資總額 , 勞保薪資 , 勞退薪資 , 健保薪資, " & _
- " 勞退 , 職災, 普通事故, 就業保險, 工資墊償, 全民健保, 全民健保舊, " & _
- " '=Multiply_2_No_Round_Down_4_Up_5(' + trim(str(勞退)) + ',' + trim(str(Labor_Pension_Personal_rate)) + ')' as 勞退個人 " & _
- "FROM " & "[" & Input_Sht & "$" & "A1:P32]"
-
- ' Work
- '1 " '=Multiply_2_No_Round_Down_4_Up_5(' + trim(str(勞退)) + ',' + trim(str(0.1)) + ')' as 勞退個人 " & _
- ' 不 Work
- '1 " '=Multiply_2_No_Round_Down_4_Up_5(' + trim(str(勞退)) + ',' + trim(str(Labor_Pension_Personal_rate)) + ')' as 勞退個人 " & _
- '2 " '=Multiply_2_No_Round_Down_4_Up_5(' + trim(str(勞退)) + ',' + Labor_Pension_Personal_rate + ')' as 勞退個人 " & _
- Set loADODBConnection = CreateObject("ADODB.Connection")
- Set loADODBRecordset = CreateObject("ADODB.Recordset")
-
- Debug.Print lcCommandText
- loADODBConnection.Open lcConnectionString
- loADODBRecordset.Open lcCommandText, loADODBConnection, 3, 1, 1
- Sheets(Output_Sht).Select
- Dim r, f As Integer
- r = 1
- For f = 0 To loADODBRecordset.Fields.Count - 1
- Sheets(Output_Sht).Cells(r, f + 1) = loADODBRecordset.Fields(f).Name
- Next
-
- While Not loADODBRecordset.EOF
- r = r + 1
- For f = 0 To loADODBRecordset.Fields.Count - 1
- Sheets(Output_Sht).Cells(r, f + 1) = loADODBRecordset.Fields(f).Value
- Next
-
- loADODBRecordset.MoveNext
- Wend
- End Sub
複製代碼 |
|