PDA

Vollständige Version anzeigen : Query über VBA ausführen - Ergebnis wird als Datumsformat ausgegegeben


cloudy
29.06.2015, 14:46
Hallo zusammen,

ich bin neu im VBA Thema und benötige eure Hilfe.

Mithilfe des VBA-Codes unten möchte ich automatisch meine Daten aus Vertica in Excel ziehen. Allerdings spuckt er mir als Ergebnis alles als Datumsformat aus.
Dies ist ein Problem für die Spalte "QTY".

Ich hoffe, es kann mir jemand von euch helfen. Ich habe gegoogelt, aber leider keine passende Antwort gefunden.


Option Explicit

Public Sub Vertica_Inbound_Connection()


'Initializes variables
Dim cnn As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim ConnectionString As String
Dim StrQuery As String

'Setup the connection string for accessing Vertica database

ConnectionString = "DRIVER={Vertica};" & _
"SERVER=XXX;" & _
"Port=XXX;" & _
"DATABASE=WW_DWH_PRD;" & _
"USER=XXX;" & _
"PASSWORD=XXX;" & _
"Option=3"

'Opens connection to the database

cnn.Open ConnectionString

'Timeout error in seconds for executing the entire query; this will run for 15 minutes before VBA timesout, but your database might timeout before this value

cnn.CommandTimeout = 80

'This is your actual Vertica query that you need to run

StrQuery = "select bi.inbound.stamp as 'stamp', bi.inbound.origin as 'origin', bi.inbound.sku as 'sku', bi.inbound.qty :: integer as 'qty' , bi.inbound.inbound_type as 'inbound_type', bi.inbound.supplier_code as 'supplier_code', CASE when bi.inventory.item_size = '1' then 'small' when bi.inventory.item_size = '2' then 'big' when bi.inventory.item_size = '3' then 'bulky' Else '-' END as 'DD_Size_Classification' from bi.inbound left join bi.inventory on bi.inbound.sku = bi.inventory.sku where date(bi.inbound.stamp) between current_date - interval '1 Month' and current_date and left((bi.inbound.supplier_code :: varchar), 1) <> '5' order by bi.inbound.stamp desc "

'Performs the actual query

rst.Open StrQuery, cnn

'Dumps all the results from the StrQuery into cell A2 of the first sheet in the active workbook

Sheets(5).Range("A2:G10000").CopyFromRecordset rst

End Sub


Danke und VG