Dopo due ore di imprecazioni varie mi vedo costretto a chiedere ancora il vostro aiuto.
Il problema è il seguente: ho una maschera di ricerca con 3 campi, due caselle di testo e una casella combinata. La query verifica che i valori inseriti siano validi contemporaneamente.
Se ad esempio inserisco mario come nome e cuba come nazione, se non viene trovato nessun record mi appare il messaggio inserito nel msgbox. Il problema è che i valori del form non vengono cancellati. Credo che il contenuto non ci sia più perchè pur essendo ancora presenti in fase di visualizzazione mi appare il messaggio di inserire almeno un criterio di ricerca. Immagino quindi che sia una sorta di problema di refresh o qualcosa del genere ma non so come risolvere. Spero di essere stato chiaro. Sono abbastanza fuso.
codice:
Private Sub btnRicerca2_Click()
Dim sql As String
sql = "SELECT utenti.id_utente,utenti.cognome, utenti.nome,utenti.centro,utenti.data_nascita,utenti.telef_cellul_1 FROM [utenti] WHERE true "
If ((txtCognome = "" Or IsNull(txtCognome)) And (txtNome = "" Or IsNull(txtNome)) And (nazione.Column(1) = "" Or IsNull(nazione.Column(1)))) Then
MsgBox "Inserire almeno una chiave di ricerca"
Exit Sub
End If
If txtCognome <> "" And Not IsNull(txtCognome) Then
sql = sql & "and utenti.cognome= Forms![cercaUtente2]!txtCognome "
End If
If txtNome <> "" And Not IsNull(txtNome) Then
sql = sql & "and utenti.nome = Forms![cercaUtente2]!txtNome "
End If
If nazione.Column(1) <> "" Then
sql = sql & "and utenti.nazione = Forms![cercaUtente2]!nazione.value "
End If
sql = sql & "order by cognome,nome;"
Me.RecordSource = sql
If Me.RecordsetClone.RecordCount = 0 Then
Me.txtNome.Value = ""
Me.txtCognome.Value = ""
Me.nazione = ""
MsgBox "Nessun utente trovato. Eseguire una nuova ricerca."
Exit Sub
Else
Me.FilterOn = False
Me!intCognome.Visible = True
Me!intNome.Visible = True
Me!intCentro.Visible = True
Me!intNascita.Visible = True
Me!intCellulare.Visible = True
End If
Me.txtNome.Value = ""
Me.txtCognome.Value = ""
Me.nazione = ""
End Sub