Ciao, eccoti dunque accontentato.
Ti indico appresso come mi regolo nelle mie applicazioni quando gestisco un database di tipo Access (mdb).
Premetto che per ora conosco solo DAO e che prima o poi mi cimenterò a studiare l'ADO...
Quando lavoro sulla struttura del database, decido se il campo che sto creando debba essere indicizzato. In caso affermativo decido inoltre se l'indice può avere dati duplicati oppure no. La gestione degli indici la eseguo quindi sulla struttura del database Access denominando i vari indici con nomi a me più appropriati.
Nel programma in VB, come ti dicevo l'altra volta, utilizzo il metodo DAO; quindi nei riferimenti del progetto seleziono la voce "Microsoft DAO 3.6 Object Library".
Per connettermi al mio database uso un codice di questo tipo:
- in un modulo pubblico:
codice:
Public dbsTuoDatabase As Database ' Database
Public rstTuoRecordset As Recordset ' Recordset
Sempre nello stesso modulo, mi creo una routine che gestisce l'apertura del database:
codice:
Public Sub ApriDatabase() ' Apertura database e recordset
Set dbsTuoDatabase = OpenDatabase(App.Path & "\TuoDatabase.mdb")
Set rstTuoRecordset = dbsTuoDatabase.OpenRecordset("NomeRecordset")
End sub
Questa routine la chiamo ogni volta che devo aprire il database attraverso:
codice:
Call ApriDatabase
Quando dovrò quindi interrogare il database per la ricerca di un dato, utilizzo gli indici dello stesso in questa maniera; ciò velocizza di molto l'interrogazione:
codice:
With rstTuoRecordset
.Index = "NomeIndice"
.Seek "=", CosaCercare
If .NoMatch Then ' Dati non trovati
MsgBox "Dato non trovato!"
Exit Sub
Else ' Dati trovati
... ' Gestione del dato trovato
End If
End With
dove "CosaCercare" è il dato che tu stai cercando e che può essere rappresentato, per esempio, dal contenuto di una casella di testo.
Come capirai, ho semplificato di molto il codice.
Spero di esserti stato chiaro ed utile. Fammi sapere se hai bisogno di ulteriori chiarimenti.
AUGURI!