Newsgroup: it.comp.appl.access
Titolo: 2 campi univoci oltre l'ID

Ho una tabella con i seguenti 4 campi:
ID     contatore    chiave primaria
Libro
Argomento
Note
Devo fare in modo che:
Libro e Argomento, insieme, siano univoci: cioè duplicati non ammessi.
Quindi, un record, non può avere entrambi i campi libro e argomento
uguali.
n.b. mi serve, non tanto per l'univocità del record, che ho dall'ID,
ma per evitare di riscrivere due record uguali e quindi essere
avvisato dalla msgbox di Access dell'errore.
(L'Id  chiave primaria mi serve perché e relazionata in uno a molti con
un'altra tabella).
Nel caso di un solo campo si utilizza la proprietà indicizzato della
tabella
impostata a SI duplicati non ammessi; nel caso di due campi come si
supera il problema
Ho provato con chiave multipla su tre campi,
con dalla tabella indici della tabella:
Nome indice           Nome campo
PrimariKey             Id
                               Libro
                               Argomento
Non va bene, perché  quando aggiungo un record,
anche se Libro e Argomento sono uguali ad un record esistente
l' univocità gli viene comunque data dall'ID che è sempre diverso.
Ringrazio in anticipo per chiarimenti e suggerimenti in merito.


...è chiaro che non va bene...viene a mancare una delle condizioni...cioè
l'id (che magari è un campo contatore...) cambia a meno che non sia un campo
numerico che possa essere ripetuto !!!


Ho provato, penso che vada tutto bene, piccolo problema (personale), solo nello
stabilire le relazioni 1 a molti, (bastava collegare sia Libro che Argomento
della tabellabase con la
tabella secondaria. Nella finestra relazioni vedendo 2 simboli di relazione 1 a
molti
pensavo che vi fosse qualcosa di errato; però in realtà, correggimi se sbaglio,
la relazione
1 a molti è comunque 1 sola; n.b. è la prima volta che uso una chiave doppia per
le
relazioni uno a molti).
A questo punto, ipotizzo che a livello di chiavi primarie, si possa agire solo
così, se non si vuole che due record abbiano simili il campo Libro e Argomento.
Però, mi interessava, avere una chiave identificativa unica, cioè l'ID (nota *)
e superare a questo punto, credo, il problema della immissione di due record
ripetuti per quanto riguarda il campo Libro e Argomento, tramite codice; Oppure
si può risolvere tramite la proprietà  del campo Valido se dalla tabella (con
opportuno codice)?
* n.b
(sono obbligato ad usare un unico ID, non tanto per semplicità di lettura delle
relazioni ad esempio nel caso in cui ho piu relazioni su più tabelle, ma perché
nel campo libro e/o argomento dovrò usare il tipo dati memo: non più
indicizzabile)
Mi sembra che non avevo sottolineato questo particolare nel post iniziale.
Chiedo scusa per la distrazione (l'ho scoperto ora).
Grazie per  i suggerimenti;
very very interessante anche la personalizzazione della msgbox di errore.
riposto anche risemplificando il post e risottolineando tute le problematiche
come: Individuare dati già inseriti e attivare msgbox


Come chiave primaria adopera solo Id, poi dichiara un altro indice (Chiave2)
composto solo dai campi Libro e Argomento:
Nome indice           Nome campo
PrimariKey             Id
Chiave2                  Libro
                                Argomento
Quindi a Chiave2 setta la Proprietà indice "Univoco" a SI.
--
Roberto
---------------------------------------------
il sito comune di it.comp.appl.access:
http://members.xoom.it/it_db_access/
---------------------------------------------

Nuovamente grazie per il suggerimento.
Con i campi testo funziona perfettamente.
Finalmente ho capito, con le sei righe postatomi,
come si deve utilizzare la tabella degli indici.
Sicuramente mi servirà per altre applicazioni
Solo che nel caso specifico devo usare dei campo memo poichè
ho del testo superiore ai 255 caratteri
Giusta la puntualizzazione inerente l'uso dei codici ISBN;
(nel mio caso però nella voce Libri, catalogo il testo di libri che delle
dispense,
e in alcuni casi ho dei titolo superiori a 255 caratteri, quindi devo usare
la ricerca sul record)