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.