Newsgroup: it.comp.lang.visual-basic
Titolo: Relazioni traTabelle

Innanzitutto ho Vb 4.0 Edizione Professional.
Mi trovo in questa condizione: ho creato un file *.mdb con Data Manager, con
due tabelle distinte (es.: A e B),
con 5 campi ciascuna; il secondo campo dell tab. B è lo stesso del primo
della tab. A. Come avrete immaginato, con l'applicazione che devo creare,
voglio visualizzare nelle varie textbox il contenuto dei campi di A e di B,
ma riesco a visualizzare solo quelli di A, perchè non riesco a mettere in
relazione le due tabelle.
Può essere che il campo n. 1 di A è una chiave primaria, così come il campo
n. 1 di B? Il campo n. 2 di B (che ,come detto sopra, è uguale al campo n. 1
di A) deve essere una chiave esterna per potere mettere in relazione le due
tabelle? Sbaglio? Se così fosse, come si fa? Da Data Manager non riesco a
farlo. E poi quando metto il campo n.1 come chiave primaria questo da tipo
"testo" si trasforma in "long integer"...!E questo mi comporta molti
problemi.
Se qualcuno se la sente di spiegarmi tutto ciò gli sarei molto grato! Lascio
la mia e-mail: 
pbar...@tin.it
 .
Forse in un'unica volta è troppo complesso...! (L'applicazione gestisce il
database con gli oggetti DAO, e nn da Data Control.)
Ciao a tutti.

Io ti consiglio molto di riguardare meglio la tua applicazione. Innanzitutto
se dici che trasformare la tua chiave primaria da testo a long-integer ti
crea problemi, effettivamente c'è qualcosa che non va. La chiave primaria di
una tabella DEVE essere sempre un numero, per poter fare l'auto-incremento.
Poi, per mettere in relazione le due tabelle devi usare Access, visto che
Data Manager non credo che supporti una cosa del genere. Spero di averti
dato una mano nel tuo lavoro....
Buon lavoro.....
Damiani Igor



...


...


 una tabella DEVE essere sempre un numero, per poter fare
l'auto-incremento.
Non è esatto. La "chiave primaria" non è necessariamente un counter, può
essere un campo di qualsiasi tipo, nonché un insieme di campi (chiave
multipla). Per chiave primaria si intende semplicemente un insieme di campi
che è superchiave minimale della tabella, ovvero l'insieme più piccolo di
campi che identificano univocamente un record della tabella. Se ad esempio
hai una tabella di nomi e indirizzi con codice fiscale, il codice fiscale
(campo di tipo text, NON intero) può essere preso come chiave per la
tabella; in una tabella di partite di calcio giocate fra squadre, l'insieme
dei campi [squadra che ha giocato in casa] + [squadra in trasferta] + [data
giocata] è un ottimo candidato a chiave primaria (sempre che due stesse
squadre non giochino più partite nello stesso giorno :-) ). Spesso viene
usato un counter per mancanza di chiavi nella tabella, ovvero perché non
esiste alcun insieme di records che non possa contenere duplicati, oppure
per semplicità, o ancora per non portarsi indietro nelle relazioni con
altre tabelle dei valori come stringhe o addirittura "vettori" di valori;
allora si usa semplicemente un long integer, meglio ancora se
auto-incrementante (per quei dbms come Access che forniscono questo
strumento); ma dire che la chiave primaria di una tabella DEVE essere un
numero significa dire una cosa inesatta!
Bye
-- 
Ale...@tiscalinet.it