Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1544to1548
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

QueryTables.Add verschiebt Daten nach rechts

QueryTables.Add verschiebt Daten nach rechts
13.03.2017 10:35:27
Paul

Guten Tag ich habe ein kleines Problem mit dem einfügen von QuerryTables wobei ich die Daten meist mittels des ODBC-Treibers aus einer Datenbank abfrage. Hier einmal ein Auszug aus dem wesentlichen part:


'SQL-Abfrage starten
varConn = _
"ODBC;Driver={Microsoft ODBC for Oracle};" _
& "DSN=" + server + ";" _
& "UID=" + user + ";" _
& "PWD=" + passwort + ";" _
& "SERVER=" + server + ";"
varSQL = Str_String 'SQL String der Abfrage
Debug.Print varSQL
'Ausgabe in Excel
ActiveWorkbook.Worksheets("Daten").Activate
ActiveWorkbook.Worksheets("Daten").Cells(1, 1).Value = Str_String
With ActiveSheet.QueryTables.Add(Connection:=varConn, Destination:=Cells(1,1))
.CommandText = varSQL
.Refresh BackgroundQuery:=False
End With
End Sub
Ich habe hierbei nur das Problem das bestehende Daten auf dem Arbeitsblatt immer nach rechts geschoben werden, es werden also keine Felder überschrieben.
Nun werden teilweise aber Daten täglich abgefragt und sollen somit nur überschrieben werden. Momentan lade ich die Daten dann immer auf ein Arbeitsblatt welches ich als Zwischenablage benutze und überschreibe dann eben selber per Makro.
Aber wollte mal fragen ob es nicht eine Möglichkeit gibt das Daten dort direkt überschrieben werden. Die Eigenschaften der Add Funktion habe ich mir bereits angeschaut, dort jedoch nichts gefunden. Ich nehme an, das es am .add liegt aber leider kenne ich mich mit den Querry Tables nicht perfekt aus.
Vielen Dank schon einmal für die Hilfe.
VG Paul

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: QueryTables.Add verschiebt Daten nach rechts
13.03.2017 10:54:39
EtoPHG
Hallo Paul,
1. Das ist eine Eigenschaft des Querytables-Objekts: z.B bestehende Zellen überschreiben...
2. Durch das wiederholte .ADD von Quertables, läufst du in dies Probleme:
2 a. Das 'vorherige' Objekt verschiebt sich nach rechts
2 b. Deine Mappe wird mit (speicherintensiven) überflüssigen Query-Objekten immer grösser
Abhilfe: Grundsätzlich ist das Addieren eines Query-Objektes nur genau 1mal im Leben der Mappe nötig. Werden .CommandText, .SQL oder andere Eigenschaften des Query-Objekts modifiziert, genügt es die .Refresh Methode auf das modifizierte Objekt anzuwenden.
Gruess Hansueli
Anzeige
AW: QueryTables.Add verschiebt Daten nach rechts
13.03.2017 11:20:33
Paul
Hallo Hansueli,
vielen Dank für die Hilfe. Leider kann ich erst am Mittwoch die Refresh Methode ausprobieren.
Meine Idee wäre dann jetzt, mithilfe der Count Eigenschaft festzustellen ob schon eine QuerryTable vorhanden ist und dann eben dementsprechend .add oder .refresh anzuwenden.
Aber wie kann ich denn falls ich 2 QuerryTables auf dem Arbeitsblatt habe ansteuern welches ich refreshen möchte. Gibt es hier auch eine .Name Eigenschaft oder wie geht man hier am sinnvollsten vor? Andere Idee die mir gerade beim schreiben kommt, wäre alle querryTables mit einer schleife durchzugehen und eine andere Eigenschaft wie zum Beispiel eine Überschrift auf einen Namen überprüfen falls dies möglich ist.
VG Paul
Anzeige
Finden und ggf. Löschen Querytables
13.03.2017 12:14:06
EtoPHG
Hallo Paul,
eigentlich einfach (bes. bei Excel gut ;-)
Sub FindAndDeleteQueryTables()
Dim qt As QueryTable
For Each qt In ActiveSheet.QueryTables
If vbNo = MsgBox("Do you want to keep [" & qt.Name & "]", _
vbYesNo, "NO = Delete Querytable") Then
qt.Delete
End If
Next qt
End Sub
Damit kannst du mal überflüssige ins Nirwana schicken und anstelle der Abfrage dann den qt.Refresh setzen, damit alle im Tabellenblatt neu geladen werden.
Gruess Hansueli

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige