Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Excel Schließen nach SQL Abfrage

Excel Schließen nach SQL Abfrage
edie
Hallo zusammen,
habe mal vor Zeiten vom Josef Ehrensberger ein Makro bekommen, dabei werden Werte aus
einer geschlossenen Datei gesucht bzw. ausgelesen. Siehe nachfolgende Code.
Nun das Problem: Beim ersten Makrostart funktioniert es tadellos, danach nicht mehr bis
ich Excel schließe, dann funktioniert das Makro wieder einwandfrei. Es scheit so, dass die
die Datei zwar mit ExcelTable.Open SQL geöffnet wird und bleibt offen bis man alles schließt.
Habe schon mal versucht mit "Set Con = Nothing" ohne Erfolg.
Meine Frage: Wie kann man die ExcelTable.Open SQL auch wieder schlissen?
Wie schliesse ich die SQL Abfrage?
Public Function ExcelTable(ByRef Path As String, ByRef Table As String, ByRef SourceRange As  _
String) As Object
Dim SQL As String
Dim Con As String
SQL = "select * from [" & Table & "$" & SourceRange & "]"
Con = "Provider=Microsoft.Jet.OLEDB.4.0;" _
& "Extended Properties=Excel 8.0;" _
& "Data Source=" & Path & ";"
Set ExcelTable = CreateObject("ADODB.Recordset")
ExcelTable.Open SQL, Con, 3, 1
End Function

Sub Test()
Dim vntA As Variant, vntB As Variant, vntC As Variant, vntRes As Variant
Dim strFile As String, strTab As String, strRange1 As String, strRange2 As String
Dim lngIndexA As Long
Dim sDatei As String
Dim shA As Worksheet
sDatei = Range("A1").Value
On Error Resume Next
strFile = ThisWorkbook.Path & "\EDV\" & sDatei
strTab = "Tabbele1"
strRange1 = "A1:B20000"
Set shA = ActiveSheet ' aktuelle Tabelle
With ExcelTable(strFile, strTab, strRange1)
vntB = .GetRows(, , 0)
.MoveFirst
vntC = .GetRows(, , 1)
.Close
End With
vntA = shA.Range(shA.Cells(4, 1), shA.Cells(shA.Cells(shA.Rows.Count, 1).End(xlUp).Row, 7))
For lngIndexA = 1 To UBound(vntA, 1)
vntRes = Application.Match(CStr(vntA(lngIndexA, 1)), vntB, 0)
If IsNumeric(vntRes) Then
vntA(lngIndexA, 7) = vntC(0, vntRes - 1)
End If
Next
shA.Range(shA.Cells(4, 1), shA.Cells(shA.Cells(shA.Rows.Count, 1).End(xlUp).Row, 7)) = vntA
End Sub
Hat jemand einen Vorschlag und kann helfen?
Vielen Dank im Voraus.
Grüße
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Excel Schließen nach SQL Abfrage
15.02.2010 17:34:17
Ramses
Hallo
Das müsste so gehen
ExcelTable.Open SQL, Con, 3, 1
ExcelTable.Close
End Function
Gruss Rainer
AW: Excel Schließen nach SQL Abfrage
15.02.2010 18:49:25
edie
Hallo Rainer,
leider funktioniert es so nicht, es werden keine Werte eingelesen.
Vielen Dank, werde versuchen weiterhin das Problem zu lösen.
Grüße
AW: Excel Schließen nach SQL Abfrage
15.02.2010 19:03:31
Ramses
Hallo
Der Befehlt hat ja nix mit dem einlesen zu tun, sondern schliesst nur die RecordSet Abfrage.
Dann dauert das einlesen halt zu lange
ExcelTable.Open SQL, Con, 3, 1
Application.Wait Now + TimeSerial(0,0,10)
ExcelTable.Close
End Function
Dann wartet Excel mit dem schliessen 10 Sekunden
Gruss Rainer
Anzeige
AW: Excel Schließen nach SQL Abfrage
15.02.2010 19:49:59
edie
Hallo Rainer,
habe bereits ausprobiert, es will immer noch nicht, auch wenn ich 1 minute und mehr einstelle.
Der ExcelTable.Close müsste in die Sub, oder?
Wenn ich Excel schließe und neu starte dann funktioniert alles. RecordSet wird beim verlassen der
Prozedur nicht geschlossen, nun muss gesucht werden wie mal es schließt.
Vielen Dank.
Grüße
Anzeige
AW: Excel Schließen nach SQL Abfrage
15.02.2010 21:53:09
Ramses
Hallo
Sorry.... gerade erst bemerkt: die Close Anweisung ist ja schon in deinem Code untergebracht.
Keine weitere Idee
Gruss Rainer
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige