Sei sulla pagina 1di 4

Premessa

Per leggere i dati di una tabella bisogna eseguire le seguenti operazioni in questa sequenza:
1. Collegarsi al db che contiene la tabella (il db può essere un db esterno al progetto o il progetto
stesso)
2. Aprire la tabella (o le tabelle) per accedere hai dati
3. Muoversi nei dati della tabella (tramite una ricerca o spostandosi da un record all'altro)
4. estrarre/o modifcare il dato scelto
5. Chiudere la tabella
6. Chiudere la connessione

Apertura di un collegamento db e della tabella


Per effettuare una connessione al db e inseguito aprire la tabella desiderata bisogna dichiarare 2 variabili
una di tipo Database (rappresenta il collegamento DB) e una di tipo recordset (Rappresenta la tabella)

Dim DBCorrente as DAO.Database


Dim Tabella as DAO.Recordset

Apertura DB

set dbcorrente=currentdb 'per aprire un collegamento sul dbcorrente


oppure
set dbcorrente=opendatabase("C:\Prova.mdb") 'per Aprire un DB esterno

Apertura Tabella

Una volta aperto il collegamento al db bisogna aprire la tabella (o query)

Set Tabella=DBCOrrente.openrecordset("TAbella1",dbopendynaset)

oppure utilizzando codice SQL

Set Tabella=DBCOrrente.openrecordset("Select *.* from Tabella1",dbopendynaset)

Spostarsi nei record di una tabella


una volta volta aperto la tabella access si posiziona sul primo record della tabella.

Codici

utilizzate i seguenti codici per spostarvi tra i record:

nomerecordset.movenext =vai al record successivo


nomerecordset.moveprevious =vai al record Precedente
nomerecordset.movefirst =vai al primo record
nomerecordset.movelast =vai all'untimo record

variabili

nomerecordset.BOF ha un valore true se il record corrente è preceddente al primo record


nomerecordset.EOF ha un valore true se il record corrente è Successivo all'ultimo

Queste 2 variabili sono utili quando si utilizzano i codici


nomerecordset.movenext =vai al record successivo
nomerecordset.moveprevious =vai al record Precedente

poichè una volta raggiunto l'ultimo record ed eseguento il codice nomerecordset.movenext access si
porta su un record vuoto e setta la variabile nomerecordset.EOF a true se si esegue ulteriormente il
codice nomerecordset.movenext access restituirà un errore.
(Idem per il codice nomerecordset.moveprevious)

Ricerca di un dato nella tabella


Per eseguire una ricerca nella tabella utilizzare i seguenti codici

nomerecordset.findnext "Criteri" =ricerca il record successivo


nomerecordset.findprevious "Criteri" =ricerca il record Precedente
nomerecordset.findfirst "Criteri" =ricerca il primo record
nomerecordset.findlast "Criteri" =ricerca l'untimo record

Es: tabella1findfirst "ID=3" Cerca il primo dato con con il campo ID=3

Se l'esito della ricerca è negativo access imposta la seguente variabile a true


nomerecordset.NoMatch

Lettura e modifica dati


Una volta reso corrente il dato di cui si vuole modificare e /o leggere eseguire una delle seguenti ozioni

Lettura Dati

variabile=nomerecodset.Fields("NomeCampo")

Modifica Dati

nomerecodset.edit 'Abilita la modifica del record


nomerecodset.Fields("NomeCampo")=variabile 'imposta il nuovo valore del campo
....
nomerecodset.upDate 'Salva La modifica

Creazione Dato

(molto simile alla modifca dati)

nomerecodset.addnew 'crea ilnuovo record


nomerecodset.Fields("NomeCampo")=variabile 'imposta il valore del campo
....
nomerecodset.upDate 'Salva il record

Eliminazione dati

nomerecodset.delete

Chiusura Tabelle e collegamento


Si utilizza il codice Close (prima si chiude la tabella inseguito il collegamento)

ESEMPIO

Tabella1.close
DBCorrente.close
Esempio Pratico
Esempio1

Apertura di un db e leggere tutti i dati

Dim DBCOrrente as DAO.Database


Dim Tabella AS DAO.recordset

'Apertura DB
SEt Dbcorrente=CurrentDB

'Apertura tabella
Set Tabella=DBCorrente.openrecordset("Tabella1",DBopendynaset)

'Lettura dati
Do until tabella.eof
msgbox tabella.fields("Campo")

'vai al dato successivo


tabella.movenext
loop

'Chiusura tabella
tabella.close
'Chiusura DB

DBCorrente.close

Esempio2

Apertura di un db e ricercadi dati

Dim DBCOrrente as DAO.Database


Dim Tabella AS DAO.recordset

'Apertura DB
SEt Dbcorrente=CurrentDB

'Apertura tabella
Set Tabella=DBCorrente.openrecordset("Tabella1",DBopendynaset)

'Ricerca primo Dato


Tabella.findFist "Campo1='Pippo'"

Do until tabella.NoMatch
msgbox tabella.Fields("Campo")

'Ricerca il dato successivo


tabella.FindNext "Campo1='Pippo'"
loop
'Chiusura tabella
tabella.Close
'Chiusura DB

DBCorrente.close

Potrebbero piacerti anche