Einzelnen Beitrag anzeigen

Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.737 Beiträge
 
Delphi 6 Enterprise
 
#1

Problem bei Access Abfrage

  Alt 8. Okt 2014, 13:02
Datenbank: MSSQL • Version: ? • Zugriff über: Access
Hallo,

ich habe eine alte Anwendung, wo mit Access als Frontend auf ein MSSQL-Server Backend zugegriffen wird (Tabellen in Access verknüpft). Dabei macht mir eine Abfrage, die einer Access-Listbox als "Row-Source" zugewiesen wird, Probleme.

SQL-Code:
Select Distinctrow
  T.ID, T.Name,
  (Select Max(Testdatum) From Testreihen where Testid=T.ID) as LastTestDate
From Test T
Where T.Status=1
  and (Select Max(Testdatum) From Testreihen where Testid=T.ID) >= Datevalue('07.10.2014')
Diese Abfrage läuft in Access super lange (Minuten) und liefert richtigerweise nur einen Datensatz zurück. Lasse ich die Zeile mit LastTestDate aus der Ergebnismenge weg (im Where lass ich die Bedingung aber drin) ist die Abfrage blitzschnell (< 1 sek.).

Die selbe Abfrage leicht angepasst (s.u.) direkt über ein SQL-Tool an den MSServer geschickt liefert in beiden Varianten blitzschnell das Ergebnis.

SQL-Code:
Select Distinct
  T.ID, T.Name,
  (Select Max(Testdatum) From Testreihen where Testid=T.ID) as LastTestDate
From Test T
Where T.Status=1
  and (Select Max(Testdatum) From Testreihen where Testid=T.ID) >= Conver(Dattime,'07.10.2014',104)
Woran kann das bei dem Zugriff mit Access liegen, dass es da in dem einem Fall so langsam ist? Hohl sich Access da erstmal alle Datensätze und rüdelt dann da selber rum?
Ralph
  Mit Zitat antworten Zitat