Aktuell kann es Probleme bei der Anmeldung mit dem Chrome oder Edge Browser geben. Ihr müsstet in die Einstellungen des Browsers gehen und Cache, Cookies und sofern vorhanden, gespeicherte Passwörter vom CEF löschen oder alternativ auf einen anderen Browser ausweichen. Ursache sind vermutlich kürzliche Browserupdates. x

VBA: DB-Abfrage mit Variablen aus einem Tabellenbereich
#1
Hallo geehrte VBA-Götter, :19:


wieder einmal möchte ich um euer schier grenzenloses Wissen bitten, da ich erneut ein Thema habe, welches meine Kenntnisse weit übersteigt.

Ich habe eine Excel-Datei, die per odc-Datei eine Datenbankverbindung hat und mit der ich die Daten in der Exceldatei regelmäßig aktualisiere.

Nun stellt sich gerade die Herausforderung, dass ich das Select, welches die Daten von der DB abfragt und starr in der odc-Datei hinterlegt ist, so umgestalten muss,
dass ein Teil der Where-Clause sich variabel aus einem sich verändernden Bereich in einer Tabelle zusammensetzen muss.

Konkret:
mit einem Makro:
Sub DbAbfrage_mit_einem_Parameter_aus_Zelle()

Debug.Print
Dim odc_pfad As String
odc_pfad = "ABFRAGE_KD_NUMMER"
    With ActiveWorkbook.Connections(odc_pfad).ODBCConnection
        .BackgroundQuery = True
        .CommandText = Array("SELECT kdname FROM datenbank WHERE kdnummer IN (" & Worksheets("Tabelle1").Cells(1, 1) & ")")
        .CommandType = xlCmdSql
        .Connection = Array(Array( _
        "ODBC;DRIVER={Client Access ODBC Driver (32-bit)};SYSTEM=127.127.0.0;DBQ=QGPL CHLLIB;DFTPKGLIB=QGPL;LANGUAGEID=ENU;PKG=QGPL/DEFAULT(" _
        ), Array("IBM),2,0,1,0,512;QRYSTGLMT=-1;"))
        .RefreshOnFileOpen = False
        .SavePassword = False
        .SourceConnectionFile = ""
        .SourceDataFile = ""
        .ServerCredentialsMethod = xlCredentialsMethodIntegrated
        .AlwaysUseConnectionFile = False
    End With
    With ActiveWorkbook.Connections(odc_pfad)
        .Name = odc_pfad
        .Description = ""
    End With
    ActiveWorkbook.Connections(odc_pfad).Refresh
End Sub

bekomme ich schon hin, in die Zelle A1 eine Kundennummer für das Select mitzugeben, das klappt auch und da bin ich schon mächtig stolz drauf. :18: :19:

Allerdings muss ich nicht nur eine Kundennummer, sondern eine sich ständig verändernde Anzahl von Kundennummern mitgeben, die sich in einem anderen Tabellenblatt (Tabelle2, Spalte A)
befinden.

All meine Versuche, aus der einen Zelle einen Bereich zu machen, sind kläglich gescheitert.

Hättet ihr eine Lösung für mein Problem?

Vorab gang herzlichen Dank für euer Hirnschmalz. :17: 


VG

Bovie
Top
#2
Hola,

verlinkst du bitte deine Fragen in den verschiedenen Foren untereinander?
Danke.

Gruß,
steve1da
Top
#3
Hallo steve1da,


was meinst du damit?

Ich habe meine Frage zwar noch im VBA-Forum eingestellt, aber warum sollte ich die beiden Beiträge verlinken und vor allem, WIE??? *amkopfkratz*

Ich bin nicht so oft in Foren unterwegs, vielleicht könntest du mich kurz aufklären?
Und vielleicht hast du ja auch sogar eine Lösung für mein Problem?

Vorab vielen Dank.

VG

Bovie
Top
#4
Hola,

https://www.clever-excel-forum.de/misc.php?action=help&hid=10

Du setzt hier einen Link zur Frage im anderen Forum und umgekehrt.

Gruß,
steve1da
Top
#5
Hi Bovie,

einfach die Links jeweils in das andere Forum schreiben, damit die Leute hier z.B. wissen, dass du auch woanders angefragt hast und z.B. wenn dort schon ein Lösung gegeben ist, dann brauchen die Leute hier sich die Arbeit nicht nochmals umsonst machen und umgekehrt! Niemand arbeitet gerne für die Tonne! :)

LG
Alexandra
Top
#6
Hallo ihr beiden,


verstanden und hiermit erledigt!
Vielen Dank für den wertvollen Hinweis, hab ich nicht drüber nachgedacht. Angel


http://www.vba-forum.de/Forum/View.aspx?...lenbereich

Und wenn jetzt noch jemand einen wertvollen Tipp für mein Problemchen hätte, wäre das ein Traum. :19:


VG

Bovie
Top
#7
Hallo Bovie,
Worksheets("Tabelle2").Cells(1, 1).CurrentRegion.Columns(1)
Gruß Uwe
Top
#8
Hallo Uwe,


vielen Dank für deinen Tipp, leider bekomme ich die Meldung "Laufzeitfehler 13, Typen unverträglich"

Ist aber nicht so schlimm, ich habe eine Lösung im VBA-Forum (http://www.vba-forum.de/forum/View.aspx?ziel=50926) erhalten,
dennoch vielen Dank für deine Mühen und deine Zeit und dir noch ein schönes Wochenende. :19:


VG

Bovie
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste