Hallo,
ik zit met het volgende. Ik heb een simpele database met een tabel "Klanten" en een formulier gebaseerd op deze tabel genaamd "frmZoekKlanten". Op dit formulier heb ik drie "Keuzelijsten met invoervak", waarbij gezocht kan worden op adres ("cboStraatNummer"), op Achternaam ("cboAchternaam") en op telefoonnummer ("cboTelefoonnummer"). Deze keuzelijsten werken prima en doen wat ik wil. Echter, ik wil dat als bijvoorbeeld het adres (cboStraatNummer) niet gevonden wordt, er gevraagd wordt om een nieuwe klant aan te maken. Deze nieuwe klant moet dan in de tabel "Klanten" worden toegevoegd, waar dus het huidige formulier ook op is gebaseerd. Kan dat?
Tot dusver heb ik de NotInList code als volgt:
Er komt wel een scherm tevoorschijn met "xxxx niet gevonden, wilt u xxxx toevoegen?" maar als ik dan op "Ja" klik krijg ik de foutmelding "Fout 2118, de actie QueryOpnieuwUitvoeren kan pas worden uitgevoerd nadat u het huidige veld hebt opgeslagen".
Foutopsporing leidt tot: Me.cboStraatNummer.Requery
Klopt de roodgemaakte tekst? Dit is immers het huidige formulier, ik weet niet of dat juist is.
Moet ik dan een nieuw formulier maken? Dat zou dan betekenen dat ik een extra tabel moet maken toch?
ik zit met het volgende. Ik heb een simpele database met een tabel "Klanten" en een formulier gebaseerd op deze tabel genaamd "frmZoekKlanten". Op dit formulier heb ik drie "Keuzelijsten met invoervak", waarbij gezocht kan worden op adres ("cboStraatNummer"), op Achternaam ("cboAchternaam") en op telefoonnummer ("cboTelefoonnummer"). Deze keuzelijsten werken prima en doen wat ik wil. Echter, ik wil dat als bijvoorbeeld het adres (cboStraatNummer) niet gevonden wordt, er gevraagd wordt om een nieuwe klant aan te maken. Deze nieuwe klant moet dan in de tabel "Klanten" worden toegevoegd, waar dus het huidige formulier ook op is gebaseerd. Kan dat?
Tot dusver heb ik de NotInList code als volgt:
Code:
Private Sub cboStraatNummer_NotInList(NewData As String, Response As Integer)
Dim Result
Dim Msg As String
If NewData = "" Then Exit Sub
Msg = "'" & NewData & "' staat niet in de lijst." & vbCrLf & vbCrLf
Msg = Msg & "Wil je " & NewData & " toevoegen?"
If MsgBox(Msg, vbQuestion + vbYesNo) = vbYes Then
DoCmd.OpenForm "[COLOR="#FF0000"][B]frmZoekKlanten[/B][/COLOR]", , , , acAdd, acDialog, NewData
End If
Me.cboStraatNummer.Requery
' Zoek het nieuwe klantnr op in de tabel Klanten.
Result = DLookup("[klantnr]", "Klanten", "[adres]='" & NewData & "'")
If IsNull(Result) Then
' Als de functie niet is gemaakt, Response argument op Error message zetten en herstellen.
Response = acDataErrContinue
MsgBox "Nog een keer proberen...", vbOKOnly
Else
' Als het artikel is gemaakt, het Response argument Added zetten.
Response = acDataErrAdded
Me.cboStraatNummer = Result
End If
End Sub
Er komt wel een scherm tevoorschijn met "xxxx niet gevonden, wilt u xxxx toevoegen?" maar als ik dan op "Ja" klik krijg ik de foutmelding "Fout 2118, de actie QueryOpnieuwUitvoeren kan pas worden uitgevoerd nadat u het huidige veld hebt opgeslagen".
Foutopsporing leidt tot: Me.cboStraatNummer.Requery
Klopt de roodgemaakte tekst? Dit is immers het huidige formulier, ik weet niet of dat juist is.
Moet ik dan een nieuw formulier maken? Dat zou dan betekenen dat ik een extra tabel moet maken toch?
Laatst bewerkt: