|
Member
Beiträge: 17
| Guten Abend,
Also, ich habe ein Hauptformular [frmKUndenverwaltung] und ein Unterformular [uFrmTelefonPrivat].
Im Unterformular befindet sich unter anderem eine combobox [cboLändervorwahlPrivat]. Wenn ich hier einen neuen Wert eingeben,
Tritt das ereignis NoINList ein und es wird folgender code durchlaufen: Der Aufruf GetSqlStrg dient dazu sich den SQlstrg aus einer SUB zu holen.
Ich habe die Telefondaten vorher im Hauptformular erfasst. Dort funktioniert es. Im Unterformular jedoch nicht. Ich habe die Auführung zum
einem mit docmd und zum anderen mit db.execute probiert. Beides funtioniert nicht. Als Fehlermeldung bekomme ich aus dem db.execute
Fehler 3022,
Fehlermeldung Die von Ihnen vorgenommenen Änderungen an der Tabelle konnten nicht vorgenommen werden, da der Index,
Primärschlüssel oder die Beziehung mehrfach vorkommende Werte enthalten würde. Ändern Sie die Daten in den Feldern, die
gleiche Daten enthalten, entfernen Sie den Index, oder definieren Sie den Index neu, damit doppelte Einträge möglich sind, und versuchen Sie es erneut.
Meine SQL Abfrage:
"INSERT INTO tblLändervorwahl ([txtLändervorwahl]) VALUES ('" & NewValue & "');"
Nachdem alles im Hauptformular funktioniert ist die Funtion und SQL Anweisung richtig. Meine Frage ist warum funktioniert es nicht im
Unterformular?
______________________________________________________________________________________________________________
Private Sub cboLändervorwahlPrivat_NotInList(NewData As String, Response As Integer)
10 On Error Resume Next
20 Response = AddRecord("AddLändervorwahl", NewData, "Soll die Ländervorwahl '", " Unbekannte Ländervorwahl")
End Sub
______________________________________________________________________________________________________________
Public Function AddRecord(ByVal RefToSqlStrg As String, ByVal NewValue As String, ByVal msg as string, ByVal HeadMsg) as string)
20 If MsgBox(msg & NewValue & "'" & gCrLf2 & gCrLf1 & " in die Datenbank aufgenommen werden ?", vbQuestion Or vbYesNo, HeadMsg) = vbYes Then
'30 DoCmd.SetWarnings False 'Meldungen unterdrücken.
40 DoCmd.RunSQL (GetSqlStrg(RefToSqlStrg, NewValue)) 'SQL-Aausführen.
' CurrentDb.Execute GetSqlStrg(RefToSqlStrg, NewValue), dbFailOnError
50 DoCmd.SetWarnings True 'Meldungen aktivieren.
60 AddRecord = acDataErrAdded 'Rückgabe, keine Fehlermeldung, bewirkt eine REQUERY.
70 Else 'Nicht speichern.
80 ctrl.Undo 'Feldinhalt löschen.
90 ctrl.SetFocus 'Fokus auf Feld.
100 AddRecord = acDataErrContinue 'Rückgabe, keine Fehlermeldung.
110 End If
______________________________________________________________________________________________________________
| |
|