• Regolamento Macrocategoria DEV
    Prima di aprire un topic nella Macrocategoria DEV, è bene leggerne il suo regolamento. Sei un'azienda o un hosting/provider? Qui sono anche contenute informazioni per collaborare con Sciax2 ed ottenere l'accredito nella nostra community!

R3tr0s

Utente Guru
Autore del topic
User Legend
15 Giugno 2008
12.570
91
Miglior risposta
0
VB è nato principalmente per la creazione di potenti interfacce che permettono la gestione locale o via rete (NON Internet) di dati residenti su una fonte di dati quale un database. Essendo un prodotto di casa Microsoft, VB preferisce lavorare con prodotti (DBMS, ovvero gestori di database) Microsoft come Access e SQL Server, ma lavora correttamente anche con DBMS di case differenti come Oracle.

In questo capitolo ci baseremo sull'interazione con Access, preferibilmente versione 2000 e do per scontato che il lettore abbia almeno un'infarinatura di base di SQL.

Per la connessione con una fonte di dati e la gestione dei dati ivi residenti, VB utilizza l'oggetto ADO (ActiveX Data Object) per l'interfacciamento tra il programma e la fonte di dati stessa. ADO mette a disposizione, tra l'altro, due oggetti fantastici, ovvero Connection per la gestione della connessione ed altre utility, e Recordset per la gestione fisica dei dati.

Si crei un nuovo EXE standard e si acceda al menu
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!
per l'importazione dei riferimenti ad ADO, selezionando le voci come nell'immagine seguente:
6.gif
Si nomini la Form frmDatabase, si inseriscano due Label con Caption Nome e Cognome (non preoccupatevi di cambiare la proprietà Name) e due TextBox in cui svuotare la proprietà Text e modificare i nome come txtNome e txtCognome. Si aggiunga poi un CommandButton da nominare cmdInserisci e modificare la Caption in Inserisci. Questa Form ci consentirà di effettuare inserimenti nel database Access ce creeremo tra poco; l'immagine seguente mostra il risultato finela della Form:
7.gif
Si salvi il progetto dal menu

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!
nella cartella test da creare sotto il drive C:
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!
All'interno di questa cartella troverete fei file di progetto creati automaticamente da VB; aggiungete in questa cartella il file Access database.mdb al cui interno creare la tabella utenti in cui inserire i campi id (Contatore), nome (Testo) e cognome (Testo); appena espletata questa operazione tornare sulla Form in visualizzazione struttura, accedere al codice della Form ed inserire queste righe nella parte generale:
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!
I tipi di dato ADODB.Connection ed ADODB.Recordset sono stati aggiunti a VB per mezzo dell'importazione dei riferimenti come accennato in precedenza.

Doppio click sul CommandButto per accedere alla Sub in cui inserire il seguente codice:
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!
A prima vista questo codice potrebbe destare qualche perplessità al lettore più inesperto, quindi affrontiamo le singole fasi della Sub.

Controllo che i campi nome e cognome siano stati compilati correttamente, utilizzando l'espressione Exit Sub per uscire dalla Sub qualora le condizioni non siano state soddisfatte e non si vuol permettere la continuazione della routine:
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!
A condizioni soddisfatte creo la stringa di connessione al database e la memorizzo nella variabile stringa:
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

Con la clausola Set imposto le variabili cn ed rs come nuove istanze degli oggetti Connection e Recordset:
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

Apro la connessione al database ed il Recordset in modalità scrittura, passando al metodo Open il nome della tabella su cui voglio lavorare, il nome della connessione che sto utilizzando ed i cursori appropriati:

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

Utilizzo i metodi AddNew ed Update per aggiungere un nuovo record alla tabella e per aggiornarlo; passo poi al Recordset i campi della tabella e li valorizzo con le variabili contenenti i dati corrispondenti:
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!
Pulisco la memoria del buffer dalle variabili contenenti la connessione ed il recordset, settandole sul valore speciale di VB Nothing:

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!
In fine, ad operazioni espletate, lancio un messaggio di conferma:
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!
Vediamo adesso come leggere i dati dal database. Si aggiunga una nuova Form dal menu
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!
si scelga Form e si confermi. Si assegni alla Form il nome frmLettura e si aggiunga una Label di nome lblDati grande quanto tutta la Form.

Si acceda all'evento Form_Load() della Form con un doppio click in un punto qualsiasi della Form stessa e si inserisca nella parte generale il seguente codice:
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!
In Form_Load(), invece, inserire il seguente codice:
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

Gran parte del codice appena presentato non è molto differente da quello di esempio per l'inserimento: la stringa di connessione al database è la stessa, è necessario settare ed aprire, ed in fine svuotare, gli oggetti Connection e Recordset. Concentriamoci sulla lettura dei dati:
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

La logica seguita è la seguente: se non ci sono dati nella tabella, ovvero se la lettura del Recordset arriva alla fine della tabella (EOF - End Of File) lancio un messaggio che avvisa che non sono stati trovati dati; altrimenti effettuo un ciclo e stampo a video nella Label tutti i record tirati fuori dalla stringa SQL
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!
passata al Recordset impostato in lettura.

Fonte: mrwebmaster.it
Revisione e Formattazione Guida: R3tr0saction
 
Ultima modifica:
  • Like
Reactions: 1 person
bravo se vi interessa nella sezione vsual basic trovate altre guide su come interagire con un db in vb2008