Una famiglia di sistemi di gestione per database relazionali di Microsoft progettati per semplificare l'uso.
ciao Abitante,
visto che hai due controlli uguali, o meglio quasi uguali, la cui unica differenza è la tabella di riferimento, non vedrei male una soluzione come quella che segue.
Imposta l'origina riga della combo CboCfAutori : SELECT TblAutori.IdAutore, TblAutori.CodiceFiscale FROM TblAutori;
due colonne la prima con larghezza 0 la seconda 5.
crea un modulo standard con questa funzione :
Option Compare Database
Option Explicit
Public Function enterNewData(ByVal NewData As String, ByVal strSql As String) As Long
Dim lngResponse As Long
lngResponse = 7 ' vbno
If VBA.MsgBox(prompt:=NewData & " non è in elenco, vuoi aggiungerlo ?", _
buttons:=vbYesNo + vbCritical, _
title:="Attenzione") = vbYes Then
DBEngine(0)(0).Execute Query:=strSql & NewData & "');", _
options:=&H80
lngResponse = 6 ' vbyes
End If
enterNewData = lngResponse
End Function
-
che invocherai dai due eventi non in list :
Option Compare Database
Option Explicit
Private Sub CboCfEditori_NotInList(NewData As String, Response As Integer)
Const strSql As String = "insert into TblEditori (codiceFiscale) values ('"
If enterNewData(NewData:=NewData, strSql:=strSql) = 6 Then
Response = acDataErrAdded
Else
Response = acDataErrContinue
Me.CboCfEditori = Null
End If
End Sub
Option Compare Database
Option Explicit
Private Sub CboCfAutori_NotInList(NewData As String, Response As Integer)
Const strSql As String = "insert into TblAutori (codiceFiscale) values ('"
If enterNewData(NewData:=NewData, strSql:=strSql) = 6 Then
Response = acDataErrAdded
Else
Response = acDataErrContinue
Me.CboCfAutori = Null
End If
End Sub
ciao, Sandro.