FAQ Access – Kombinationsfelder schneller füllen
Access Formulare – Kombinationsfelder schneller füllen
Problem :
Im Formular einer gemeinsam genutzten Datenbank verwende ich verschiedene Kombinationsfelder für die einfachere Auswahl zum Beispiel für die Daten „Anrede“, „Land“ oder „Region“. Das Öffnen des Formulars zieht sich mitunter einige Minuten hin. Entferne ich die Kombinationsfelder, lädt das Formular ohne Verzögerungen. Kann man das Füllen der Kombinationsfelder beschleunigen?
Lösung :
Bezüglich der Datenbasis für Kombinationsfelder ist wie bei Abfragen, Formularen oder Berichten zu beachten, dass Access zunächst alle Datensätze lokal auf dem Rechner speichert und erst dann gemäß den gesetzten Kriterien die tatsächlich benötigten Datensätze herausfiltert. Wenn dann noch mehrere Kombinationsfelder in einem Formular verwendet werden, kann das im Netzwerk durchaus einige Minuten dauern.
Unter Umständen ist es ratsam, die Datenbasis auf eine Tabelle umzustellen und diese direkt dem Kombinationsfeld zuzuordnen. Beispiel: Ein Kombinationsfeld wird mit „select Land from Kunden group by Land order by Land“ gefüllt, um die Auswahl des Landes zu ermöglichen. Alternativ können Sie als Datenbasis für das Kombinationsfeld direkt eine Tabelle „Kunden_Land“ verwenden, die Sie nach Änderungen im dazugehörigen Formular mit einer Tabellenerstellung dynamisch aufbauen:
Sub UpdateKundenLand()
On Error Resume Next
DoCmd.SetWarnings False
DoCmd.RunSQL "DROP TABLE Kunden_Land;"
DoCmd.RunSQL "SELECT Kunden.Land INTO Kunden_Land " & _
"FROM Kunden " & _
"GROUP BY Kunden.Land " & _
"HAVING (((Kunden.Land) Is Not Null)) " & _
"ORDER BY Kunden.Land;"
DoCmd.SetWarnings True
End Sub
Es werden dann nur die im Kombinationsfeld tatsächlich anzuzeigenden Datensätze übertragen, der Aufbau des Formulars beschleunigt sich entsprechend