Salve ragazzi,
mi sto avvicinando al linguaggio visual basic!
Ho creato direttamente in access una maschera con un campo di input (nome_comune) ed un bottone.
Al bottone ho associato questo codice:
codice:
Private Sub Comando57_Click()
If IsNull(Me.nome_comune) Then
' il campo 'nome_comune' deve essere pieno
messaggio = MsgBox("Devi inserire una città!", vbCritical)
' focus sul campo di input
nome_comune.SetFocus
End If
' crea un nuovo recordset
Dim rs As New ADODB.Recordset
Dim sql As String
' inserisce il comune
sql = "INSERT INTO comuni (nome) VALUES ('" & Me.nome_comune & "')"
' apre il recordset
rs.Open sql, CurrentProject.Connection, adOpenDynamic, adLockOptimistic
' distrugge il recorset
Set rs = Nothing
' messagio di inserimento riuscito
messaggio = MsgBox("Inserimento città riuscito!", vbInformation)
' campo di input vuoto
nome_comune.Value = ""
' focus sul campo di input
nome_comune.SetFocus
End Sub
Il codice funziona ma non del tutto!
Infatti dopo aver inserito con successo una città se clicco sul bottone con il campo di input vuoto, viene dato un errore di run time in cui mi viene detto che il campo del db non accetta stringhe nulle!
Perchè mi viene dato l'errore se io all'inizio dello script faccio un controllo proprio sul campo di input? Non dovrebbe comparire la finestra vbCritical?
Naturalmente l'errore è su questa riga: rs.Open sql, CurrentProject.Connection, adOpenDynamic, adLockOptimistic.
Grazie a chi saprà dirmi qualcosa.