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

SDL Datenbank schnelle abfrage der LinkedID

SDL Datenbank schnelle abfrage der LinkedID
19.09.2016 08:34:23
baschti007
Guten Morgen =)
Ich hätte einen Frage zu einer SQL Datenbank.
Zb. Ich habe Eine SQL Datenbank
in der Sind Tabellen = Tbl1 und Tbl2
In Tbl1 finde ich die LinkedID die zu der ID in Tbl2 gehört wie suche ich am schnellsten in Tbl2 die Zeile mit der LinkedID.
Ich habe bis jetzt immer ein Recordset gemacht aber wenn das über 5000 mal in einer schleife geöffnet wird um einen Wert aus Tbl2 abzurufen das dauert .
Gibt es einen andere möglich keine um dieses zu beschleunigen ?
Gruß Basti

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

Betreff
Datum
Anwender
Anzeige
AW: SDL Datenbank schnelle abfrage der LinkedID
19.09.2016 11:28:35
ChrisL
Hi Basti
Wenn du in Tabelle1 nach einer unique (einmalige) ID suchst, anhand derer die LinkedID hervorgeht, müsste das SQL Statement in etwa wie folgt lauten:

SELECT * FROM Tabelle1 INNER JOIN Tabelle2 ON Tabelle1.LinkedID=Tabelle2.LinkedID WHERE Tabelle1.ID=1
(ID=1, du suchst nach unique ID Nummer 1)
N.b. wenn du in Access eine Abfrage erstellst, kannst du den SQL Code im Entwurfsmodus einsehen.
cu
Chris
AW: SDL Datenbank schnelle abfrage der LinkedID
19.09.2016 12:29:51
baschti007
Danke Chris
Nur ist es bei mir so auch nicht wirklich schneller oder habe ich immer noch was falsch gemacht ?
Gruß Basti

Sub SQL()
Dim con As New ADODB.Connection
Dim RsPT As New ADODB.Recordset
Dim RS As New ADODB.Recordset
Application.ScreenUpdating = False
con.ConnectionString = "Provider=xxx;Data Source=xxx;Initial Catalog=xxx;User ID=xxx;Password= _
xxx;"
con.Open
Set RS.ActiveConnection = con
getCorpID = "SELECT *  FROM Tabelle1" & " WHERE (Pruefungabgeschlossen = 'True')" & " ORDER BY  _
ID DESC"
RS.Open getCorpID
x = 1
Do While Not RS.EOF  ' Über 5000 einträge
Set RsPT.ActiveConnection = con
getCorpID = "SELECT * FROM Tabelle1 INNER JOIN Tabelle2 ON Tabelle1.LinkedID=Tabelle2. _
ID WHERE Tabelle1.LinkedID=" & RS!LinkedID
RsPT.Open getCorpID, con, adOpenStatic, adLockReadOnly, adCmdText
Messung = RsPT!Messung ' Diesen Wert suche ich
RsPT.Close
Set RsPT = Nothing
Cells(x, 1) = RS!LinkedID
Cells(x, 2) = Messung
x = x + 1
RS.MoveNext
Loop
Application.ScreenUpdating = False
End Sub

Anzeige
AW: SDL Datenbank schnelle abfrage der LinkedID
19.09.2016 12:51:44
ChrisL
Hi Basti
Ziel müsste es sein, möglichst alle Bedingungen in ein einziges SQL-Statement zu verwurschteln.
Ohne deinen Code im Detail nachzuvollziehen, vielleicht so...
SELECT * FROM Tabelle1 INNER JOIN Tabelle2 ON Tabelle1.LinkedID=Tabelle2.LinkedID WHERE Tabelle1.Pruefungabgeschlossen = 'True'
Aufgrund JOIN bekommst du ein konsolidiertes Ergebnis aus Tabelle1 und 2.
cu
Chris
DAnke
19.09.2016 13:34:22
baschti007
Ah super Chris =)
Jetzt habe ich es gerallt ;)
Danke

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige