Hallo Liebe/-r Experte/-in,
Ich möchte über Excel VBA eine Access Abfrage ausführen
und das Ergebnis wiederum in meine Excel tabelle
eintragen lassen.
Ich habe’s versucht über Query, es geht nicht.
Jetzt habe ich in einem CommandButton folgender Code
eingetragen. Die SQL Zeile habe ich mir einfach aus der
Access geholt und in meinem Code eingefügt.
Es kommt aber immer einen Laufzeitfehler 13: Typen
unverträglich.
Ich habe schon alles Variablen anders deklariert geht
aber nicht.Kann mir jmd helfen oder wie kann von Excel
die Abfrage anders durchführen?
Code:
Private Sub CommandButton1_Click()
Sheets(„rohdaten“).Select
With ActiveSheet.QueryTables.Add(Connection:= _
„ODBC;DSN=fuebas;SERVER=BASF03;DATABASE=fuebas;SERVERTYPE
=INGRES“, _
Destination:=Sheets(„rohdaten“).Range(„A1“))
.CommandText = Array( _
„SELECT fteil_daten.objekt, fteil_daten.gruppe,
fteil_daten.key1, fteil_daten.key2, fteil_daten.ob_dz,
fteil_daten.datum, fteil_daten.f1, fteil_daten.f2,
fteil_daten.f3, fteil_daten.f4, fteil_daten.f5,
fteil_daten.f6, fteil_daten.f7, fteil_daten.speicherdat
FROM fteil_daten INNER JOIN fteil_ob_dz ON
(fteil_daten.ob_dz = fteil_ob_dz.ob_dz) AND
(fteil_daten.key2 = fteil_ob_dz.key2) AND
(fteil_daten.key1 = fteil_ob_dz.key1) AND
(fteil_daten.objekt = fteil_ob_dz.objekt) WHERE
(((fteil_daten.objekt)=‚Produkt‘) AND
((fteil_daten.gruppe)=‚fl_st‘) AND
((fteil_daten.key1)=‚1097484‘) AND
((fteil_daten.key2)=‚21936032‘))“ _
)
.Name = „basf_tokyo“
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.SourceConnectionFile = _
„C:\Documents and Settings\Application
Data\Microsoft\Queries\basf_1.dqy“
.Refresh BackgroundQuery:=False
End With
ActiveWorkbook.Save
End Sub
Hier ist mein SQL Code aus Access, den ich kopiert habe
und in VBA eingefügt.In Access funktioniert die Abfrage
mit diesem SQL Code perfekt:
SELECT fteil_daten.objekt, fteil_daten.gruppe,
fteil_daten.key1, fteil_daten.key2, fteil_daten.ob_dz,
fteil_daten.datum, fteil_daten.f1, fteil_daten.f2,
fteil_daten.f3, fteil_daten.f4, fteil_daten.f5,
fteil_daten.f6, fteil_daten.f7, fteil_daten.c1,
fteil_daten.c2, fteil_daten.speicherdat
FROM fteil_daten INNER JOIN fteil_ob_dz ON
(fteil_daten.objekt = fteil_ob_dz.objekt) AND
(fteil_daten.ob_dz = fteil_ob_dz.ob_dz) AND
(fteil_daten.key2 = fteil_ob_dz.key2) AND
(fteil_daten.key1 = fteil_ob_dz.key1)
WHERE (((fteil_daten.objekt)=„Produkt“) AND
((fteil_daten.gruppe)=„fl_st“) AND
((fteil_daten.key1)=“1097484“) AND
((fteil_daten.key2)=“21936032”));
Bitte um Ihre Hilfe, denn ich suche scho seit 4 Wochen
nach der falschen Variable
Danke i.V.
Dennis