Microsoft Excel

Herbers Excel/VBA-Archiv

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."