Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1420to1424
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

VBA SQL Abfrage Datensätze zählen

VBA SQL Abfrage Datensätze zählen
14.04.2015 09:47:53
Frank
Guten Morgen zusammenm
mit folgender Routine mache ich eine Abfrage im Datenblatt DATA. Die dem Suchkriterium entsprechenden Datensätze werden im Anschluß ins Blatt INPUT kopiert.
Ich würde gern die Anzahl der gefilterten Datensätze in eine Variable transportieren. Wie muss ich meinen Quelltext erweitern? Habe was von COUNT gelesen, weiß aber nicht, wie bzw. wo ich es einsetzen muss.
Sub sql()
Dim cn As Object, rs As Object
Dim strConnection As String, strSQL As String
Set cn = CreateObject("ADODB.CONNECTION")
strConnection = "DRIVER={Microsoft Excel Driver (*.xls)}; DBQ=" & ThisWorkbook.FullName
With cn
.Open strConnection
strSQL = "SELECT * " & _
"FROM  [DATA$C19:AE2000] " & _
"WHERE [PRODUCT] IN " & prodstring & ""
Set rs = CreateObject("ADODB.RECORDSET")
With rs
.Source = strSQL
.ActiveConnection = strConnection
.Open
'tbl_Gesamt.Range("A1:F1").Copy Destination:=tbl_SQL.Range("A1")
Sheets("INPUT").Range("C20").CopyFromRecordset rs
'tbl_SQL.Columns.AutoFit
MsgBox rs.Fields.Count
.Close
End With
End With
cn.Close
Set cn = Nothing
Set rs = Nothing
End Sub
Vielen Dank,
Frank

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA SQL Abfrage Datensätze zählen
14.04.2015 10:26:21
Luschi
Hallo Frank,
so klappt das bei mir:

Sub sql()
Dim cn As Object, rs As Object
Dim strConnection As String, strSQL As String
strConnection = "DRIVER={Microsoft Excel Driver (*.xls)}; DBQ=" & ThisWorkbook.FullName
With cn
.Open strConnection
strSQL = "SELECT * " & _
"FROM  [DATA$C19:AE2000] " & _
"WHERE [PRODUCT] IN " & prodstring & ";"
Set rs = CreateObject("ADODB.RECORDSET")
With rs
.Source = strSQL
.ActiveConnection = strConnection
'wichtig, damit man den Cursor innerhalb des
'Recordsets positionieren kann  (.MoveLast / .MoveFirst)
.CursorType = 3 'adOpenStatic
.Open
If Not (rs.BOF Or rs.BOF) Then
'es existieren Datensätze
'wichtig, um die genaue Zahl der DS zu ermitteln
.MoveLast
MsgBox oAdoRS.RecordCount
.MoveFirst
tbl_Gesamt.Range("A1:F1").Copy Destination:=tbl_SQL.Range("A1")
Sheets("INPUT").Range("C20").CopyFromRecordset rs
'tbl_SQL.Columns.AutoFit
Else
MsgBox "Keine Datensätze vorhanden!", 16 + vbSystemModal, "Hinweis..."
End If
.Close
End With
End With
cn.Close
Set cn = Nothing
Set rs = Nothing
End Sub
Gruß von Luschi
aus klein-Paris

Anzeige
AW: VBA SQL Abfrage Datensätze zählen
14.04.2015 10:33:02
Frank
Hallo Luschi,
vielen Dank schonmal. Als was muß ich denn oAdoRS deklarieren?
VG,
Frank

AW: VBA SQL Abfrage Datensätze zählen
14.04.2015 10:42:13
Luschi
Hallo Frank,
nein, kleiner Übertragungsfehler aus meinem Objekt:
statt: MsgBox oAdoRS.RecordCount
so:    MsgBox rs.RecordCount
Gruß von Luschi
aus klein-Paris

Herzlichen Dank, das funktioniert prima! [n/t]
14.04.2015 10:54:41
Frank
Herzlichen Dank, das funktioniert prima!

133 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige