WillemSchaaper
Gebruiker
- Lid geworden
- 2 nov 2004
- Berichten
- 22
Hallo aan allen
Ik heb het volgende probleem. Ik probeer d.m.v. VBA data op te halen uit een mainframe. Hierbij krijg ik de foutmelding "typen komen niet met elkaar overeen" en de code stopt op de commandtext array. Als ik de query draai met QMF for windows, dan wordt de data foutloos opgehaald.
De code die gebruik in VBA ziet er zo uit.
De regel met CASE wordt in deze editor afgebroken, maar loopt in de VBA editor door tot AS BEST
Ik hoop dat iemand me verder kan helpen.
Ik heb het volgende probleem. Ik probeer d.m.v. VBA data op te halen uit een mainframe. Hierbij krijg ik de foutmelding "typen komen niet met elkaar overeen" en de code stopt op de commandtext array. Als ik de query draai met QMF for windows, dan wordt de data foutloos opgehaald.
De code die gebruik in VBA ziet er zo uit.
Code:
With ActiveSheet.QueryTables.Add _
(Connection:=Array _
(Array("ODBC;DSN=DB2A30;UID=@J610;pwd=dsimed3;" & "MODE=SHARE;DBALIAS=DB2A30;SCHEMALIST='P';" _
& "TABLETYPE='TABLE','VIEW','INOPERATIVE VIEW';LONGDATACOMPAT=1;DIS"), _
Array("ABLEUNICODE=1;DISABLEKEYSETCURSOR=1;" & _
"PATCH1=1024;PATCH2=6;LOBMAXCOLUMNSIZE=1048575;")), Destination:=Range("A1"))
.CommandText = Array _
("SELECT DATE, C_HERKOMST_KOWA AS HERKOMST," _
& "IND_CPS_COLLO AS BAD_HEV," _
& "IND_GEW_BRUTO_COL AS BRUTTO," _
& "IND_GEW_NETTO_COL AS NETTO," _
& "IND_GEW_TARRA_COL AS TARRA," _
& "CASE WHEN SUBSTR(OPLTR_IVV, 1, 1) = SUBSTR(OPLTR_IVV, 2, 1) THEN 'V' ELSE 'K' END AS BEST" _
& "FROM @vp0.P91T10" _
& "WHERE DATE BETWEEN '2009-11-10' AND '2009-11-23'" _
& "AND RECSRT IN ('10051' , '10054')" _
& "UNION ALL" _
& "SELECT DATE," _
& "IND_C_HERKOMST AS HERKOMST," _
& "IND_CPS_COLLO AS BAD_HEV," _
& "IND_GEW_BRUTO_COL AS BRUTO," _
& "IND_GEW_BRUTO_COL - IND_GEW_TARRA_COL AS NETTO," _
& "IND_GEW_TARRA_COL AS TARRA," _
& "CASE WHEN SUBSTR(IND_OPLTR_IVV_OUD, 1, 1) = SUBSTR(IND_OPLTR_IVV_OUD, 2, 1) THEN 'V' ELSE 'K' END AS BEST" _
& "FROM @vp0.P91T14" _
& "WHERE DATE BETWEEN '2009-11-10' AND '2009-11-23'" _
& "AND RECSRT IN ('10051' , '10054')")
.Name = "Query from DB2A30"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:=False
End With
De regel met CASE wordt in deze editor afgebroken, maar loopt in de VBA editor door tot AS BEST
Ik hoop dat iemand me verder kan helpen.