Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

La funzione di ricerca

Costruiamo l'interfaccia attraverso la quale ricercare nel database i nomi inseriti.
Costruiamo l'interfaccia attraverso la quale ricercare nel database i nomi inseriti.
Link copiato negli appunti

Dopo aver configurato il programma per consentire la navigazione nel database, in questa Lezione vediamo come aggiungere la funzione di ricerca. Per definire tale operazione (ma anche le altre che vedremo nelle Lezioni successive) ci serviremo dell'oggetto Recordset, accessibile a partire dal controllo Data; esso dispone di metodi e di proprietà che consentono di lavorare con i dati prelevati dal database.

figura

La prima funzione che vogliamo definire è la ricerca di un nominativo: quando si preme il pulsante trova, deve apparire una finestra che chiede di immettere il nome da cercare e, successivamente, deve essere eseguita la ricerca vera propria. Ecco il codice che svolge tale compito:

Private Sub Command1_Click()
'Ricerca un nome all'interno dell'agenda.
Dim NomeDaCercare As String
NomeDaCercare = InputBox$("Immettere il nome da ricercare:", "Ricerca nell'agenda")
If NomeDaCercare <> "" Then
'Esegue la ricerca solo se è stato immesso un nome.
Data1.Recordset.Index = "Nome"
Data1.Recordset.Seek "=", NomeDaCercare
If Data1.Recordset.NoMatch Then
Data1.Recordset.MoveFirst
Data1.Refresh
'Il nome cercato non è stato trovato.
MsgBox "Nome non trovato.", vbInformation, Me.Caption
End If
End If
End Sub

figura

Cerchiamo di capire la logica di funzionamento di questa routine. Innanzi tutto viene richiesto all'utente di immettere il nome da cercare; per fare questo si usa la funzione InputBox, che visualizza una finestra invitando ad immettere il valore richiesto; tale funzione accetta 7 parametri, ma di questi solo il primo è obbligatorio e rappresenta il messaggio visualizzato nella finestra stessa. Il secondo parametro consente di impostare il titolo della finestra; se non viene specificato, verrà utilizzato il titolo della finestra che richiama la funzione. Il terzo parametro indica il valore iniziale (predefinito) visualizzato nella casella di testo. Per ulteriori informazioni sulla funzione InputBox si consiglia di consultare la Guida in linea di Visual Basic. La chiamata della funzione InputBox nella nostra applicazione visualizzerà la finestra riprodotta a lato. Il valore immesso in tale finestra viene salvato nella variabile NomeDaCercare.

A questo punto, se è stato specificato un nome da ricercare, viene impostata la proprietà Index dell'oggetto Recordset, con la quale si stabilisce quale campo utilizzare per la ricerca. Subito dopo, il metodo Seek ricerca il nome all'interno del database: come primo parametro abbiamo utilizzato "=" perché vogliamo trovare esattamente il nome specificato.

Eseguita la ricerca, ci preoccupiamo di controllare se essa ha avuto esito positivo oppure no, ovvero se non è stato trovato nessun record che corrisponde ai criteri digitati; allo scopo, controlliamo il valore della proprietà NoMatch, che restituisce true se la ricerca ha avuto esito negativo: in questo caso ci spostiamo nel primo record utilizzando il metodo MoveFirst, poi visualizziamo una finestra di messaggio informando l'utente che il nome specificato non è stato trovato.
Potete notare che, in questo caso, per la funzione MsgBox utilizziamo nuovi argomenti, oltre al consueto testo del messaggio. Il secondo parametro (opzionale, come il terzo) è un'espressione numerica che indica il numero e il tipo di pulsanti da visualizzare, lo stile di icona da utilizzare, il pulsante predefinito e la modalità della finestra; se è omesso, il valore predefinito è 0. L'espressione numerica può essere sostituita, come nel nostro programma, da una costante definita da VB: in questo caso, vbInformation indica che nella finestra deve essere visualizzata l'icona che contraddistingue un messaggio di informazione. Il terzo parametro specifica il titolo della finestra. Per maggiori informazioni, come sempre potete fare riferimento alla Guida in linea.

Tornando al discorso precedente, se viene trovato un record che corrisponde ai criteri digitati esso diventa automaticamente il record corrente, quindi viene visualizzato nella finestra principale del programma.

Potete scaricare il programma con la nuova funzione facendo clic qui.

Ti consigliamo anche