Newsgroup: it.comp.appl.access
Titolo: Individuare dati già inseriti e attivare msgbox

Ho una tabella con i seguenti campi
ID                  contatore chiave primaria
Libro
Argomento
Devo, in una maschera, all'inserimento dei dati Libro e Argomento del
recoord N, fare
un controllo sui record già presenti ed essere avvisato quando entrambi
sono già
presenti.
Sicuramente da codice, non so se è possibile tramite la proprietà Valido
Se (sempre con opportuno codice) dei campi della tabella.
Quindi record
Libro:       Argomento:
Pippo        Pluto
solo una volta.
N.B. l'univocità del record è data da ID, Libro, Argomento; essendo ID
un contatore univoco
il metodo deve per forza controllare che Libro e Arg. non siano già
presenti e non controllare
tutto il record
Cioè:
ID        Libro        Argomento
100      Pippo       Pluto           record esistente
150      Pippo       Pluto           record che inserisco
i 2 record sono diversi (solo per l'ID) ma hanno Libr. e Arg. uguali e
quindi non
va bene.Il 2° record non deve essere accettato e quindi msgbox di
avviso.
N.b. soluzione con chiave multipla su Libro e Argomento, non è
possibile, perché
i campi sono di tipo memo, quindi non indicizzabili.
By By and Thank You

"rr12rr" <rr1...@NOSPAMusa.net> ha scritto nel messaggio
news:3A0539BE...@NOSPAMusa.net...

Perdonami, ma a parte il fatto che per catalogare un libro normalmente si
usa il suo codice ISBN di 10 caratteri (univoco a livello internazionale) e
non direttamente il suo titolo, ma pensi che esista un titolo di più di 250
caratteri al punto da usare un campo memo?
E' buona norma anche codificare l'Argomento, in caso contrario al momento
che farai una selezione sull'argomento ti troverai ad avere qualche dolore
di pancia di troppo (dovresti almeno usare più di una parola chiave da
ricercare in AND e OR con la funzione Like all'interno del campo memo:
auguri).
Quindi io eliminerei i campi memo e mi creerei una chiave multipla (vedi mio
messaggio precedente), almeno se tenterò di registrare due volte lo stesso
libro la sveglia me la dà Access senza altri impazzimenti.

 i campi sono di tipo memo, quindi non indicizzabili.
Sono perfettamente daccordo con Roberto.
I libri dovevi catalogarli con l'ISBN e titolo e argomento dovevi gestirli
con campi testo (Pensi esistano titoli con 65000 caratteri?), ce lo riporti
per intero un libro in un campo memo.
Qualunque cosa tu scelga di fare (correggere radicalmente l'impostazione del
tuo db o proseguire con la tua scelta) per trovare se un record esiste devi
usare FindFirst sul recordsetClone della maschera e sfruttare la proprieta'
NoMatch per vedere se l'ha trovato oppure no.
Ciao, Sib
--
------------------------------------------------------
il sito comune di it.comp.database.access:
http://members.xoom.it/it_db_access
------------------------------------------------------
4000 anni fa', il saggio egizio Ptahhotep scrisse:
"... perche' non esistono saggi per nascita."
------------------------------------------------------
Saturiamo ECHELON:
bomba saddam attentato medio oriente

Giusto.
Solo che purtroppo (per me) devo usare i campi memo poichè ho dei titoli che
superano i
250 caratteri, al max arrivo sui 500 caratteri (sulla voce libri ho sia testi
libro che dispense).
Riguardo alla soluzione, però non ho la più pallida idea di come vada usato nel
caso specifico il recordsetclone e il nomatch (suggeriti da sib); tra l'altro,
usati poi, per confrontare due campi di un record simultaneamente e con
l'aggiunta finale di una msgbox.
Come si impiegano tali proprietà?
C'è qualcosa di similare già postato? Ho dato un'occhiata ma non ho trovato
nulla.
ciao e grazie

 l'aggiunta finale di una msgbox.
    Me.RecordsetClone.FindFirst "Titolo ='"& Me.Titolo.text &"' and
Argomento='" & Me.Argomento.text & "'"
    If Me.RecordsetClone.NoMatch then
        Exit Sub
    Else
        MsgBox "E' terribile!! Questo titolo esiste gia'!!"
        Cancel=True
    End If
Ciao, Sib