Conectando-se ao DB2
Abaixo está uma pequena rotina VBA executada no MS Excel para consultar uma tabela usando o driver de ODBC. Precisa limpar um pouco, declarar minhas variáveis, etc, mas funciona.
Eu sempre achei difícil deixar um exemplo completo disso na Web. Tenho certeza que existe algum exemplo completo disso por aí, mas quis deixar minha contribuição breve. Essa versão é boa devido ao usuário precisar de uma conexão ODBC em sua máquina. Automaticamente limitando o acesso cliente a um login que deva funcionar.
Sub transfer()
Dim varState As String
Set CS = CreateObject(“ADODB.Connection”)Set RS = CreateObject(“ADODB.Recordset”)
‘Retrieve values from Cells on the sheet to use as selections in the query belowvarState = ActiveSheet.Range(“C2”).ValuevarFrom_Date = ActiveSheet.Range(“B3”).ValuevarTo_Date = ActiveSheet.Range(“B4”).Value‘ ISeries connection String‘ConnectString = “Driver={ISeries Access ODBC Driver};System=10.1.4.1;Uid=xxxxx;Pwd=xxxxx;Library=PWRDTA41;QueryTimeout=0”ConnectString = “Driver={ISeries Access ODBC Driver};System=10.1.4.1;Library=PWRDTA41;QueryTimeout=0”
CS.Open (ConnectString)
SqlString = “SELECT hhicusn , C.FFDCNMB, C.FFDSTEB, hhiclsn, SUM(hhiqysa), SUM(hhiexsn), SUM(hhiexac) ” & _” FROM pwrdta41.hhiorddp ” & _” left outer join PWRDTA41.FFDCSTBP c” & _” ON hhicusn = c.ffdcusn and” & _” hhidivn = c.ffddivn and” & _” c.ffdcmpn = hhicmpn and” & _” c.ffddptn = hhidptn” & _” WHERE hhidtei between ” & varFrom_Date & ” and ” & varTo_Date & _” and hhiclsn = ‘105’ and c.ffdsteb = ‘” & varState & “‘” & _” GROUP BY hhicusn, c.ffdcnmb, c.ffdsteb, hhiclsn” & _” ORDER BY hhicusn”
‘Message box can be used for debugging the SQL statement‘MsgBox (SqlString)
RS.Open SqlString, CS
‘Clear Previous contents of CellsCells.SelectActiveSheet.Range(“A7:Z65535”).ClearContents‘copy the Recordset to excel sheet starting at A7ActiveSheet.Range(“A7”).CopyFromRecordset RS
‘Close Connection and RecordSetRS.CloseCS.Close‘Reset cell back to A1ActiveSheet.Range(“A1”).Select
End Sub
Envie seus comentários e sugestões e compartilhe este artigo!
brazilsalesforceeffectiveness@gmail.com
Nenhum comentário:
Postar um comentário