Guten Morgen alle zusammen,
mir stellt sich ein kleines Problem, das ich offenbar nicht so ganz in den Griff bekomme. Ich wäre sehr dankbar, falls mir jemand etwas weiterhelfen könnte :)
Ich habe eine Liste in Access in der ich nach jeweils einem bestimmten Datensatz suchen muss und das in möglichst kurzer Zeit.
Beschreibung:
- Ich lade eine Liste aus einer Datenbank (SQL-Server) und sortiere sie wie folgt:
TicketNo; Status; Responsible // SELECT * FROM Ticket_M1 WHERE (((Ticket_M1.TicketNo) Is Not Null)) ORDER BY Ticket_M1.Status DESC , Ticket_M1.ID;
- Nun bekomme ich eine TicketNo übergeben, suche nach dem Datensatz und makiere ihn in der Liste:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | int2 = CDbl (Assign_To_TicketNo) // Übergabe der gesuchten TicketNo
ticket_list_quan = Ticket_list.ListCount // Anzahl der Listeneinträge
If ticket_list_quan <> 0 Then
Ticket_list.Selected(1) = True
int3 = ticket_list_quan
For i1 = 0 To (ticket_list_quan - 1) // Start der Suche
If boo1 = False Then
int1 = int1 + 1
chk_int1 = chk_int1 + 1
Else
int1 = int1 + 1
End If
dbg_cnt1 = dbg_cnt1 + 1
Ticket_list.Selected(int1) = True
If CDbl (Ticket_list.Column(2)) = int2 Then // Überprüfen der TicketNo
Exit For
End If
If chk_int1 >= 100 Then
chk_str1 = Ticket_list.Column(3)
If chk_str1 = "Closed" And int2 > 0 Then // Auf "Closed" prüfen und Suche verkürzen
int1 = ticket_list_quan
boo1 = True
int1 = (int2 - chk_int1) // TicketNo - durchlaufene Suche = Nahe gesuchter Stelle
End If // Aber nur bei Closed verwendbar!
chk_int1 = 0
End If
Next
|
- Vorgehensweise: Listenbereich mit Status "Open" & "Ongoing" wird schrittweise durchsucht. Ab Status "Closed" ist das Ticket einfach zu finden
durch (int2-chk_int1).
Problem:
Meistens sind die gesuchten Tickets Open oder Ongoing. Daher benötigt die For-Schleife recht lange (2-3s, je nach SQL-Serververbindung) um das jeweilige Ticket zu finden (ca 25000 Tickets vorhanden; davon 1/5 Ongoing oder Open).
Gerne würde ich die Suche in den Bereichen Open und Ongoing verbessern... jegliche Versuche sind bisher leider schief gelaufen...
Vielen Dank schon einmal im Voraus für eventuelle Lösungsvorschläge!!!
|