Samstag, 4. Februar 2012

Home
Tipps
Bücher
Software
News / Links
Hilfe
Impressum

Sponsored by
QualityHosting

Tipp/Trick
Datensätze per Kombinationsfeld anlegen
Ändern Sie die Datensatzherkunft des Kombinationsfelds.

Kombinationsfelder sind in erster Linie dazu gedacht, vorhandene Datensätze aus der Liste auszuwählen. Von Haus aus bietet Access keine Möglichkeit, der vorhandenen Liste neue Einträge hinzuzufügen.

Es gibt allerdings Situationen, wo genau diese Möglichkeit sinnvoll und auch komfortabel wäre.
Angenommen, Sie erfassen in einer Datenbank Bücher und wählen den dazugehörigen Autor aus einem Kombinationsfeld aus, das auf einer Tabelle. Dann kann passieren, dass Sie ein Buch erfassen wollen, dessen Autor noch nicht in der Datenbank vorhanden ist.

Ändern Sie einfach die Datensatzherkunft des Kombinationsfelds, indem Sie in der zugrunde liegenden Tabelle einen neuen Datensatz anlegen

Dazu ist lediglich eine kleine Ereignisprozedur notwendig, die beim Ereignis Bei Nicht in Liste des Kombinationsfelds aufgerufen wird. In dieser Ereignisprozedur sollte noch eine Benutzerabfrage vorhanden sein, ob denn auch tatsächlich ein neuer Autor angelegt werden soll.

Private Sub CboAutor_NotInList(NewData As String, Response As Integer)

    If MsgBox("Dieser Autor ist neu. Möchten Sie ihn anlegen?", vbYesNo) = vbYes Then

        Dim db As DAO.Database
        Dim rs As DAO.Recordset 
        Set db = CurrentDb 
        Set rs = db.OpenRecordset("tblAutoren", DB_OPEN_DYNASET) 
        rs.AddNew 
        rs!txtAutor = NewData 
        rs.Update 
        Response = acDataErrAdded 
        rs.Close 
        Set rs = Nothing 
        Set db = Nothing 
    Else

            'Hier kann beispielsweise ein Tippfehler abgefangen werden
         Response = acDataErrContinue CboAutor.Undo

    End If

End Sub

Dieser Code verwendet das DAO-Objektmodell. Für das ADO-Objektmodell verwenden Sie in der Prozedur zwischen If und Else den folgenden Code:

If...

    Dim cn As ADODB.Connection 
    Dim rs As New ADODB.Recordset 
    Set cn = CurrentProject.Connection 
    rs.Open "tblAutoren", cn, adOpenDynamic, adLockOptimistic 
    rs.AddNew rs!txtAutor = NewData 
    rs.Update 
    Response = acDataErrAdded 
    rs.Close 
    Set rs = Nothing 
    Set cn = Nothing

Else ...


Ein Service der TriniDat Software-Entwicklung GmbH - Am Wehrhahn 45 - 40211 Düsseldorf

  Suche
Suche starten
  Service
Leserbrief / Frage zu Access
Kontakt
  NewsLetter
NewLetter bestellen
NewsLetter abbestellen
  Partner-Seiten
HyperLink

www.trinidat.de


HyperLink

www.fulldotnet.de