Probleme mit editierbarem Kombinationsfeld

Hallo,

ich hoffe einer von euch schlauen Köpfen kann mir bei meinem Problem helfen.

Ich habe eine Tabelle „Begleitmedi2“ in welcher Daten zu Medikamenten abgespeichert werden (Medikamentenname („Medi“), Dosis, Einheit, Startdatum der Verabreichung usw.). Zugehörig habe ich ein Formular gebastelt, in welchem der Benutzer die Medikamente eingeben sollen. Aus dem Textfeld „Medi“ habe ich ein Kombifeld gemacht. Ich möchte dort, falls ein Medikament (z. B. ASS) beireits verabreicht wurde, dieses auswählbar ist und nicht jedesmal händisch eingetippt werden muss. Wenn das Medikament noch nicht in der Liste ist, soll es der Auswahlliste hinzugefügt werden. Ich habe schon alle möglichen Codes aus dem I-Net ausprobiert. Bei den meisten sind viele Fehlermeldungen aufgetreten. Ich habe mich schlussendlich für folgenden Code entschieden:

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

Response = acDataErrAdded
Dim db As DAO.Database
Dim rs As DAO.Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset(„Begleitmedi2“, dbOpenDynaset)

rs.AddNew
rs!Medi = NewData
rs.Update

rs.Close: Set rs = Nothing
Set db = Nothing

End Sub

Keine Fehlermeldung, jedoch wird der neue Eintrag 2x in der Tabelle Begleitmedi2 abgespeichert. Woran kann das liegen???

Mein 2. Problem: Habe ich einen neuen Wert der Liste zugefügt und möchte zum nächsten Feld gehen und die Eintragung sofort fortsetzen, ist das Feld „Medi“ leer, der DS abgespeichert und ich muss erst wieder das Medikament auswählen und kann dann meine Eintragungen fortsetzen… Natürlich existiert dann ein „leerer“ DS, wo nur das Feld Medi abgespeichert wurde. Kann mir da jemand weiterhelfen?

Vielen Dank im Voraus! und viele Grüße, L.

Hallo Lischu,

ich versteh nicht ganz warum du der Sub erst Response als Argument/Parameter übergibst um es dann in der Sub sofort mit einem anderen Wert zu beglücken.

Es geht scheinbar um Access-Vba!?

Lade mal bitte eine mdb-datei hoch mit file-upload o.ä., s. FAQ:2606

Aber ohne daß ich Hoffnung wecken möchte, von Access weiß ich nix.

Gruß
Reinhard

Hallo,

ich denke auch es handelt sich um Access.

Wenn ich das Problem richtig verstanden habe würde ich es vielleicht wie folgt machen und damit auf VBA verzichten:

Erfasse die Medikamente in einer extra Tabelle (ID, Medi) und verbinde das Feld „Medi“ dieser Tabelle mit dem Feld „Medi“ Deiner bestehenden Tabelle „Begleitmedi2“.
In Deinem Formular zur Tabelle „Begleitmedi2“ baust Du ein Kombifeld ein, welches an die extra Tabelle geknüpft ist.
In deiner Tabelle Begleidmedi2 werden dann nur die ID’s der Medikamente gespeichert - spart Speicherplatz und Du kannst ganz genau festlegen, welche Medikamente ausgewählt werden können.
Mittels einer Abfrage, die Du an ein weiteres Kombifeld knüpfst, kannst Du Dir nur die Medikamente anzeigen lassen, die bereits zu der betroffenen Person zugeordnet worden.

Gruß
Ronny