Devo risolvere un piccolo probleba legato all'evento NotInList. Quando si verifica l'evento perche viene digitato un cognome ed un nome separati da virgola nella combobox di ricerca gestico l'evento NotInList aprendo la form per l'aggiunta del nuovo nome passandolo tramite OpenArgs. Nella form di aggiunta del nuovo nome il dato passato potrebbe essere modificato rispetto al NewData dell'evento NotInList per una serie di motivi ( es. nome digitato errato o diminituivo etc...). Anche se il nuovo dato viene correttamente registrato in anagrafica la combo non lo riconosce perche non corrisponde al NewData originario che non riesco a modificare mentre l'evento NotInList è in corso. Ringrazio chi vorrà darmi indicazioni.
Private Sub cboRifIdAnagrafica_NotInList(NewData As String, Response As Integer)
Dim strName As String
Dim intI As Integer
Response = acDataErrContinue
' analisi ed estazione del cognome e del nome se presente
strName = NewData
' Cerca la virgola che separa il cognome dal nome
intI = InStr(strName, ",")
If intI = 0 Then
' Assumere solo il cognome - impostare il predicato di prova
strWhere = "[Cognome] = '" & strName & "'"
Else
' Estrarre l'ultimo e il primo - costruire il predicato
strWhere = "[Cognome] = '" & Left(strName, intI - 1) & "'"
strWhere = strWhere & " AND [Nome] = '" & Trim(Mid(strName, intI + 1)) & "'"
End If
' fine analisi ed estazione del cognome e nome
' Verificare che si voglia aggiungere il nuovo contatto.
If MsgBox("Il nuovo nome " & StrConv(NewData, 3) & " che stai tentado di registrare" & vbCrLf & _
"non è presente in Anagrafica! " & vbCrLf & _
"Lo vorresti aggiungere?", vbYesNo + vbQuestion + vbDefaultButton1, _
gstrAppTitle) = vbYes Then ' se utente sceglie di aggiungere il nuovo dato in anagrafica
selTipo = 1 'seleziona il tipo di contatto come ricorrente
DoCmd.OpenForm "frmAnagraficaDettPvt", DataMode:=acFormAdd, WindowMode:=acDialog, OpenArgs:=strName
' Il codice aspetterà fino alla chiusura della form anagrafica che aggiunge il nuovo nome e poi verifica che sia stato aggiunto
' verifica esistenza nuovo nome
If IsNull(DLookup("idanagrafica", "qryanagrafica", strWhere)) Then
' se non trova il nuovo nome avverte con un messaggio ed esce
MsgBox "Attenzione, qualcosa non ha funzionato." & vbCrLf & _
"Non è stato possibile aggiungere il nome >> " & StrConv(NewData, 3) & " <<" & vbCrLf & "Potresti riprovare.", 48, gstrAppTitle
' fine verifica esistenza nuovo nome
Else ' se la registrazione del nuovo nome è riuscita conferma l'aggiunta
Response = acDataErrAdded
End If
Else
MsgBox "Il nome >> " & StrConv(NewData, 3) & " << non sarà aggiunto." & vbCrLf & _
"Il dato sarà cancellato.", vbInformation, gstrAppTitle
Me!cboRifIdAnagrafica.Undo ' correggere errore cancellazione nome
Me!cboRifIdAnagrafica.Dropdown
Exit Sub
End If
End Sub