Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Sub CallStoredProcedure()
- Dim Conn As ADODB.Connection
- Dim RecordSet As ADODB.RecordSet
- Dim Command As ADODB.Command
- Dim ConnectionString As String, StoredProcName As String
- Dim MonthVar As ADODB.Parameter
- Dim YearVar As ADODB.Parameter
- Dim TPm1Var As ADODB.Parameter
- Dim TPm2Var As ADODB.Parameter
- Dim TPm3Var As ADODB.Parameter
- Dim MonthInput As Integer
- Dim YearInput As Integer
- Dim TPm1Input As String
- Dim TPm2Input As String
- Dim TPm3Input As String
- Dim fldCount As Long
- Dim iCol As Long
- Dim sht As Worksheet
- Dim LastRow As Long
- Dim username As String
- Dim password As String
- Dim IPaddress As String
- ' CMF QUERY
- Application.ScreenUpdating = False
- Set Conn = New ADODB.Connection
- Set RecordSet = New ADODB.RecordSet
- Set Command = New ADODB.Command
- username = "Uid=" & Worksheets("Input").Range("H5").Value & ";"
- password = "Pwd=" & Worksheets("Input").Range("I5").Value & ";"
- IPaddress = "Server=" & Worksheets("Input").Range("J5").Value & ";"
- ConnectionString = "Provider=SQLNCLI11;" _
- & IPaddress _
- & "Database=SESG_General_DB;" _
- & username _
- & password _
- & "DataTypeCompatibility=80;"
- Conn.Open ConnectionString
- StoredProcName = "[dbo].[IFRS_DATA_CMF_CHF_Accuracy]"
- On Error Resume Next
- With Sheet2.ListObjects("Sheet2")
- .Range.AutoFilter
- .DataBodyRange.Offset(1).Resize(.DataBodyRange.Rows.Count - 1, .DataBodyRange.Columns.Count).Rows.Delete
- .DataBodyRange.Rows(1).SpecialCells(xlCellTypeConstants).ClearContents
- End With
- MonthInput = Worksheets("Input").Range("C5").Value
- YearInput = Worksheets("Input").Range("B5").Value
- Set MonthVar = Command.CreateParameter("@Month", adInteger, adParamInput, , MonthInput)
- Set YearVar = Command.CreateParameter("@Year", adInteger, adParamInput, , YearInput)
- With Command
- .ActiveConnection = Conn
- .CommandType = adCmdStoredProc
- .CommandText = StoredProcName
- .NamedParameters = True
- .Parameters.Append MonthVar
- .Parameters.Append YearVar
- End With
- Set RecordSet = Command.Execute
- fldCount = RecordSet.Fields.Count
- For iCol = 1 To fldCount
- Sheet2.Cells(3, iCol).Value = RecordSet.Fields(iCol - 1).Name
- Next iCol
- Sheet2.Range("A4").CopyFromRecordset RecordSet
- Set RecordSet = Command.Execute
- Sheet2.Range("A" & LastRow).CopyFromRecordset RecordSet
- RecordSet.Close
- Conn.Close
- Application.ScreenUpdating = True
- Application.Calculate
- ' ACTUAL QUERY
- Application.ScreenUpdating = False
- Set Conn = New ADODB.Connection
- Set RecordSet = New ADODB.RecordSet
- Set Command = New ADODB.Command
- username = "Uid=" & Worksheets("Input").Range("H5").Value & ";"
- password = "Pwd=" & Worksheets("Input").Range("I5").Value & ";"
- IPaddress = "Server=" & Worksheets("Input").Range("J5").Value & ";"
- ConnectionString = "Provider=SQLNCLI11;" _
- & IPaddress _
- & "Database=SESG_General_DB;" _
- & username _
- & password _
- & "DataTypeCompatibility=80;"
- Conn.Open ConnectionString
- StoredProcName = "[dbo].[IFRS_DATA_ACTUAL_CHF_Accuracy]"
- On Error Resume Next
- With Sheet2.ListObjects("Sheet2")
- .Range.AutoFilter
- .DataBodyRange.Offset(1).Resize(.DataBodyRange.Rows.Count - 1, .DataBodyRange.Columns.Count).Rows.Delete
- .DataBodyRange.Rows(1).SpecialCells(xlCellTypeConstants).ClearContents
- End With
- MonthInput = Worksheets("Input").Range("C5").Value
- YearInput = Worksheets("Input").Range("B5").Value
- Set MonthVar = Command.CreateParameter("@Month", adInteger, adParamInput, , MonthInput)
- Set YearVar = Command.CreateParameter("@Year", adInteger, adParamInput, , YearInput)
- With Command
- .ActiveConnection = Conn
- .CommandType = adCmdStoredProc
- .CommandText = StoredProcName
- .NamedParameters = True
- .Parameters.Append MonthVar
- .Parameters.Append YearVar
- End With
- Set RecordSet = Command.Execute
- fldCount = RecordSet.Fields.Count
- For iCol = 1 To fldCount
- Sheet2.Cells(14, iCol).Value = RecordSet.Fields(iCol - 1).Name
- Next iCol
- Sheet2.Range("A15").CopyFromRecordset RecordSet
- Set RecordSet = Command.Execute
- Sheet2.Range("A" & LastRow).CopyFromRecordset RecordSet
- RecordSet.Close
- Conn.Close
- Application.ScreenUpdating = True
- Application.Calculate
- 'TP QUERY
- Application.ScreenUpdating = False
- Set Conn = New ADODB.Connection
- Set RecordSet = New ADODB.RecordSet
- Set Command = New ADODB.Command
- username = "Uid=" & Worksheets("Input").Range("H5").Value & ";"
- password = "Pwd=" & Worksheets("Input").Range("I5").Value & ";"
- IPaddress = "Server=" & Worksheets("Input").Range("J5").Value & ";"
- ConnectionString = "Provider=SQLNCLI11;" _
- & IPaddress _
- & "Database=SESG_General_DB;" _
- & username _
- & password _
- & "DataTypeCompatibility=80;"
- Conn.Open ConnectionString
- StoredProcName = "[dbo].[IFRS_DATA_TP_CHF_Accuracy]"
- On Error Resume Next
- With Sheet2.ListObjects("Sheet2")
- .Range.AutoFilter
- .DataBodyRange.Offset(1).Resize(.DataBodyRange.Rows.Count - 1, .DataBodyRange.Columns.Count).Rows.Delete
- .DataBodyRange.Rows(1).SpecialCells(xlCellTypeConstants).ClearContents
- End With
- ' January Data
- MonthInput = Worksheets("Input").Range("C5").Value
- YearInput = Worksheets("Input").Range("B5").Value
- TPm1Input = Worksheets("Input").Range("F5").Value
- TPm2Input = Worksheets("Input").Range("E5").Value
- TPm3Input = Worksheets("Input").Range("D5").Value
- Set MonthVar = Command.CreateParameter("@Month", adInteger, adParamInput, , MonthInput)
- Set YearVar = Command.CreateParameter("@Year", adInteger, adParamInput, , YearInput)
- Set TPm1Var = Command.CreateParameter("@TPM1", adVarChar, adParamInput, 12, TPm1Input)
- Set TPm2Var = Command.CreateParameter("@TPM2", adVarChar, adParamInput, 12, TPm2Input)
- Set TPm3Var = Command.CreateParameter("@TPM3", adVarChar, adParamInput, 12, TPm3Input)
- With Command
- .ActiveConnection = Conn
- .CommandType = adCmdStoredProc
- .CommandText = StoredProcName
- .NamedParameters = True
- .Parameters.Append YearVar
- .Parameters.Append MonthVar
- .Parameters.Append TPm3Var
- .Parameters.Append TPm2Var
- .Parameters.Append TPm1Var
- End With
- Set RecordSet = Command.Execute
- fldCount = RecordSet.Fields.Count
- For iCol = 1 To fldCount
- Sheet2.Cells(25, iCol).Value = RecordSet.Fields(iCol - 1).Name
- Next iCol
- Sheet2.Range("A26").CopyFromRecordset RecordSet
- Set RecordSet = Command.Execute
- Sheet2.Range("A" & LastRow).CopyFromRecordset RecordSet
- RecordSet.Close
- Conn.Close
- Application.ScreenUpdating = True
- Application.Calculate
- End Sub
Add Comment
Please, Sign In to add comment