... ich kann mir kaum vorstellen, dass es für die Fakturnummer keinen Index geben soll, gehört da vielleicht noch eine Firmennummer, oder ähnliches dazu?

Sollte das allerdings wirklich fachlich richtig sei und da nicht ein wesentlicher Teil des Schlüssels fehlen, hilft da ein create index durch den Datenban Verantwortlichen (keinesfalls by the fly im Anwendungsprogramm.

D*B

Zitat Zitat von gerhardsw Beitrag anzeigen
Hallo zusammen,

ich muss gleich vorweg sagen, dass ich noch neu auf dem Gebiet der Abfragen in VBA auf den AS/400 bin.

Habe dazu folgende Frage:

Wenn ich direkt aus VBA heraus auf eine AS/400 zugreife und das Selektionskriterium kein Indexiertes Feld auf der AS/400 ist, dann dauert die Abfrage ewig lange (ca. 6 Minuten bei einer Datei mit ca. 16 Mio Datensätzen).

Diese Abfrage sieht dann folgendermaßen aus:

__________________

Public Sub as400_Connect()

Dim MyConn As New ADODB.Connection
Dim rs As ADODB.Recordset
Dim sql As String
Dim DB As DAO.Database
Dim STR As String
Dim strFakturnummer as String

strFakturnummer = inputbox("Bitte geben Sie die Fakturnummer ein:")



Set DB = CurrentDb

Set MyConn = New ADODB.Connection
MyConn.Open "Provider=IBMDA400;Data Source=xxxx;", "xxxx", "xxxx"


Set rs = New ADODB.Recordset
Set rs.ActiveConnection = MyConn
Set DB = CurrentDb
With MyConn


sql = "SELECT * from FPRDDTA.LFSVHD13 where HDNFAK = "
& strFakturnummer

rs.Open sql

Do Until rs.EOF
Debug.Print rs.Fields("hdnauf")
rs.MoveNext
Loop
End With
rs.Close

End Sub

__________________

Gibt es eine oder mehrere Möglichkeiten, diese Abfrage in Access deutlich zu beschleunigen - vielleicht indem man das Feld über SQL irgendwie indexiert? Sicher haben Sie diverse Lösungsansätze parat.

Vielen Dank im voraus!

Grüße,
Wilfried