Datenverbindung neu setzen, vor SQL Änderung.
Betrifft: Datenverbindung neu setzen, vor SQL Änderung.
von: michlchen80
Geschrieben am: 20.09.2019 12:40:04
Hallo NG,
ich habe eine DB Verbindung -> emi_db_MIB_autom
herausgefunden über die Eigenschaften
(ExecuteExcel4Macro "(""emi_db_MIB_autom"",TRUE,FALSE,FALSE,TRUE,FALSE,TRUE,
1,FALSE,TRUE,TRUE,0,TRUE,""\\Pfad...\...\Meine
Datenquellen\emi_db_MIB_autom.odc"")"
jetzt möchte ich bei dieser mit
.CommandText = sql_Text
den SQL ändern. Dafür muss ich ja erst mittels
Range([Tabellenname]).Select
die Tabelle auswählen und dann
With Selection.ListObject.QueryTable
die QueryTable, um dann eben mit CommandText den SQL zu manipulieren...
(Ich rufe einen für mich erstellten View auf, möchte aber vorher noch eine Where Klausel ergänzen... Test_elemente definieren oder Zeitbezug letzte 3 Tage...)
Jetzt habe ich das Problem, dass es mit:
Range([Tabellenname]).Select
With Selection.ListObject.QueryTable
.CommandText = sql_Text
.Refresh BackgroundQuery:=False
End With
alles bestens funktioniert. Schließe ich die Datei dann aber, so bleibt er nach dem Neustart und Makroaufruf beim Refresh hängen...
Wenn ich dann die Tabelle wieder lösche und meinen [Tabellenname] vergeben will mosert er rum, dass es diesen noch geben würde. Ich kann dann bspw. einen anderen nehmen - etwa "Tab_..." davor - das kurz im VBA anpassen, und es läuft wieder sauber.
Kann ich irgendwie heraus finden, welche Tabelle dahinter steht, wenn ich in dem gewählten Tabellenblatt auf Range("A1") bin?
und ggf. auch die Verknüpfung neu setzen, damit auch das erste mal die SQL Änderung funktioniert... Wenn ich es wie oben beschrieben einmal sauber habe, kann ich beliebig oft andere Fzge. oder Zeiträume auswählen und bekomme die Daten sauber heraus...
mercy und schonmal schönes WE.
O'zapft wird. :-)
Betrifft: AW: Datenverbindung neu setzen, vor SQL Änderung.
von: 1714079.html
Geschrieben am: 20.09.2019 12:55:28
wie gut, dass es aufzeichnen gibt...
habe es jetzt einfach mit
Cells.Select
Selection.ListObject.QueryTable.Delete
Selection.ClearContents
With ActiveSheet.ListObjects.Add(SourceType:=0, Source:=Array(Array( _
raus geballert und neu eingefügt. :-)
kaum macht mers richtig, schon funktionierts...
Beiträge aus dem Excel-Forum zum Thema "Datenverbindung neu setzen, vor SQL Änderung."