W Accessie istnieje metoda dynamicznego dopisywania nowych pozycji na liście kombi oparta na zdarzeniu NotInList (Wykrywamy, że nie ma jeszcze takiego wpisu, otwieramy ekran do edycji nowych rekordow i odświeżamy listę kombi - dokładny opis w bazie Metody). Niestety nie jet to sposób wygodny w użyciu.
W wielu prostych przypadkach można ten sam efekt osiągnąć znacznie prościej, w sposób całkowicie automatyczny,
który nie wymaga żadnych nakładów pracy. Cała tajemnica tkwi w słowie DISTINCT
,
które użyte w kwerendzie, jako źródło wierszy dla pola kombi, wybiera tylko unikalne wartości.
Cala metoda wygląda tak:
SELECT DISTINCT Pole1 FROM Tabela1;
Uzupełnienie:
Warto wiedzieć o tej prostej metodzie, niemniej jednak
jej możliwości są rownież 'proste'. Do bardziej zaawansowanych celów
służy zdarzenie NotInList oprogramowane np.
tak, jak proponuje Paweł P. Baran:
Private Sub Kombi2_NotInList(NewData As String, Response As Integer) Dim rec As Recordset If MsgBox("Dodać nową wartość?", vbOKCancel) = vbOK Then Response = acDataErrAdded Set rec = CurrentDb.OpenRecordset("Wykształcenie") With rec .AddNew !Wykształcenie = NewData 'klucz Access sam doda .Update End With Else Response = acDataErrContinue Kombi2.Undo End If End Sub