Live-Forum - Die aktuellen Beiträge
Datum
Titel
23.04.2024 14:59:21
23.04.2024 14:47:39
23.04.2024 14:23:45
Anzeige
Archiv - Navigation
1380to1384
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

ODBC Requery

ODBC Requery
06.09.2014 11:35:26
Kaios

Hallo zusammen,
ich habe eine kleine Frage.
Ich verbinde mich via OLEDB per Excel zu einer SQL Datenbank. Ein Makro frägt Daten ab und verarbeitet diese.
Die SQL Abfrage lasse ich aus Ranges einlesen, die Kriterien der Abfrage ändern sich bei jeder Abfrage, das ist auch mein Problem. Kann ich eine Refreshperiod setzen die jedes mal die SQL Abfrage neu einliest?
Hier mein Code:


varConn = "OLEDB;Provider=MSDAORA.1;Password=0815;User ID=4711;Data Source=0815:1521/0815db"
strSQL = Range("Z1").Value & vbCrLf & _
Range("Z2").Value
With ActiveSheet.QueryTables.Add(Connection:=varConn, Destination:=Range("A1"))
.CommandText = strSQL
.Name = "0815"
.Refresh BackgroundQuery:=True
.RefreshPeriod = 1
End With
Danke!
Grüße
Kaios

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ODBC Requery
08.09.2014 11:52:50
fcs
Hallo Kaios,
eine regelmäßige Aktualisieren der Abfrage inkl. Anpassung des CommandTextes könnte wie folgt per OnTime-Methode funktionieren. Allerdings sollte die Abfrage selber dann keine Automatische Aktualisierung haben.
Beachte auch, dass die sich ständig wiederholende Ontim-Anweisung vor dem Schließen der Datei gestoppt werden muss.
Gruß
Franz
'Code in einem allgemeinen Modul
Option Explicit
Public datNextQuery As Date
Sub StartQuery_Update()
datNextQuery = Now + TimeSerial(Hour:=0, Minute:=1, Second:=0)
Application.OnTime Earliest:=datNextQuery, Procedure:="QueryTable_CommandText_neu"
Call QueryTable_CommandText_neu
End Sub
Sub StopQuery_Update()
On Error Resume Next
Application.OnTime Earliest:=datNextQuery, Procedure:="QueryTable_CommandText_neu"
End Sub
Sub QueryTable_CommandText_neu()
Dim Wks As Worksheet, objQT As QueryTable, strSQL As String
Set Wks = ThisWorkbook.Worksheets("Tabelle1")
With Wks
Set objQT = .QueryTables(1) 'Nr ggf anpasen oder durch Namen in Anführungszeichen ersetzen
'oder wenn Daten als Tabelle/Liste dargestellt werden
Set objQT = .ListObjects(1).QueryTable 'Nr ggf anpasen oder durch Namen in Anfü _
hrungszeichen ersetzen
strSQL = .Range("Z1").Value & vbCrLf & .Range("Z2").Value
End With
With objQT
.CommandText = strSQL
.Refresh False
End With
End Sub

Anzeige
AW: ODBC Requery
08.09.2014 17:53:25
Kaios
Hallo Franz,
vielen Dank! Damit kann ich was anfangen. Werde mir das Teil entsprechend umbauen.
Grüße
Kaios

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige