PROGRAMMIAMO
VB - DATA BASE: Data Control

Controllo Data

Visual Basic è in grado di interfacciarsi con DB creati per mezzo di numerosi DBMS, fra i quali naturalmente Access (che è l’applicazione di default per VB). In questa lezione supponiamo di aver già realizzato un DB usando Access e di volerlo quindi utilizzare all'interno di un programma in VB.

La gestione dei database in Visual Basic è realizzata per mezzo di uno speciale controllo: l’oggetto data. Tutte le operazioni che devono essere effettuate sul DB devono far riferimento al controllo data ad esso associato.

La prima operazione da compiere, per realizzare un programma VB in grado di accedere a un DB creato con Access, consiste nell’inserire sul Form un controllo di tipo “data”:

L’aspetto del controllo “data” inserito in un form è il seguente (in fase di progettazione):


Proprietà DatabaseName e RecordSource

Dopo aver inserito un controllo data sul form, bisogna collegarlo a un database. Ciò avviene mediante la proprietà DatabaseName che possiamo impostare col nome di un DB precedentemente creato con Access (es. biblioteca.mdb).

A questo punto per terminare il collegamento fra il controllo data e il nostro DB realizzato con Access, dobbiamo ancora specificare quale tabella all’interno del DB costituisce la sorgente dei nostri dati. Per fare questo usiamo la proprietà RecordSource del controllo data. Osserviamo che, dopo aver effettuato correttamente il collegamento con il DB biblioteca.mdb, la proprietà RecordSource ci permette automaticamente di scegliere fra le 3 tabelle presenti nel DB:

Scegliamo per esempio la tabella “libri”.

Terminate queste operazioni preliminari, il controllo “data” è stato correttamente inserito nel programma, collegato con il DB e con una tabella specifica all’interno del DB. Tuttavia non è ancora in grado di fare nulla: infatti il Data Control si occupa di dirigere e di filtrare il flusso di dati fra il programma in VB e il DB e viceversa, ma non visualizza nulla.

 

Data-binding con una text box

Inseriamo adesso sul nostro form una normale casella di testo. Fra le sue proprietà ne troviamo una che non abbiamo mai usato e che normalmente non è “attiva”: DataSource. Osserviamo che, fra le opzioni di scelta, troviamo proprio il nome del nostro controllo “data” precedentemente inserito nel form (bisogna seguire l’ordine corretto, altrimenti non funziona: prima si inserisce il controllo data e poi la text box):

Scegliamo il controllo “data1” (l’unico disponibile nel nostro esempio).  In questo modo la casella di testo risulta “collegata” con il controllo “data1” (si parla a questo proposito di data binding della text box).

Impostiamo adesso la proprietà DataField della casella di testo. Osserviamo che, come opzioni, ci vengono proposti tutti i campi della tabella “libri”:


Scegliamo per esempio Autore. Ora proviamo a eseguire il programma. Osserviamo che la casella di testo visualizza il nome di un Autore alla volta e che è possibile spostarsi da un record all’altro all’interno della nostra tabella “libri” usando le frecce del controllo “data1”. Il significato delle frecce è lo stesso visto a suo tempo nelle tabelle in Access: primo record, record precedente, record successivo, ultimo record.


Per cercare di capire meglio il funzionamento del programma, facciamo riferimento al seguente schema a blocchi:

Sul nostro form abbiamo due controlli: la text box e il data control. Di questi, data1 funge da collegamento con la tabella libri del DB. La text box invece si interfaccia al DB passando attraverso data1. In pratica una casella di testo non è in grado di collegarsi direttamente con un DB, ma ha bisogno di un controllo data. D’altra parte un controllo data non è in grado di visualizzare direttamente il contenuto di una tabella di un DB, ma ha bisogno di una casella di testo (o di un altro controllo di visualizzazione) per poterlo fare.

La situazione potrebbe anche essere più complessa, poiché nello stesso form potremmo avere più controlli data collegati con tabelle diverse all'interno dello stesso DB oppure anche con DB diversi. Si osservi a questo proposito l’esempio schematizzato nella figura seguente:

 

 

precedente - successiva

Sito realizzato in base al template offerto da

http://www.graphixmania.it