Newsgroup: it.comp.appl.access
Titolo: Controllo Records prima di salvare nuova immissione

Salve a tutti e grazie dell'attenzione
Ho una Tabella Articoli, aggiornabile tramite una Maschera immissione dati.
IDArt          ( Cont)
Articolo       (testo)
Modello        (testo)
Oggetto        (testo)
Colore         (testo)
TagliaIT       (testo)
TagliaAM       (testo)
PrezzoUnitario (Valuta)
Giacenza       (Numerico)
Premetto che adopero il 'Duplica Record'per comodità, poichè spesso dei
campi
suddetti si deve variare solo il Campo 'Taglia', permanendo i valori
dei Campi precedenti.
Come è possibile "Ciclare" i record per evitare l'immissione errata del
solito record ?
(Sull'evento BeforeUpdate , immagino)
Ho provato con gli indici multicampo , ma non ne vengo a capo.
Grazie dell'aiuto.
G.B.

 G.B.
Solitamente un record si distingue dagli altri solo se esiste
un Campo chiamato PrimaryKey in cui non sono ammessi Duplicati.
Di solito il tentativo di Duplicare una ChiavePrimaria genera
errore e la conseguente impossibilità di Salvare il Record.
Ne consegue che Access fa già quello che dici, senza dover aggiungere
righe di codice o CICLI di controllo.
L'unica cosa da fare eventualmente è Intercettare l'errore e dirottare
il tutto su Routine dedicate se necessario.
E' sempre preferibile appoggiarsi ai controlli nativi di ACCESS
perchè sicuramente più ErrorFree che una tua Routine.
C'è però da vedere se tu hai strutturato le tabelle Correttamente,
e, vedendo il tuo esempio sono quasi sicuro che la tua Chiave Primaria
sia ID(Contatore), quando secondo mè dovrebbe essere il CodiceArticolo,
perchè è proprio lui che devi controllare.....!!!
Id Contatore è comodo, ma non ti serve a nulla.
@Alex.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 --
Ciao Alex, innanzi tutto grazie di aver risposto.
Volevo dirti che CodiceArticolo è infatti la mia PrimaryKey (Erroneamente
avevo scritto i vecchi campi)
ed è un Contatore.
Per quanto riguarda i campi
Articolo,Modello,Oggetto,Colore,TagliaIT,TagliaAM, come ti dicevo
sono ripetuti per molte volte , con il solo campo Taglia che varia, poichè
sono ordini del solito
articolo di abbigliamento in diverse taglie.
Quando inserisco il nuovo record, quindi con il campo IDArticolo
incrementato , e tutti gli altri
uguali al precedente, non ricevo nessun avviso di errore, ciò che invece
sarebbe desiderabile.
Spero di essere stato chiaro ( e di aver capito la tua precedente
osservazione)
Ciao e grazie G.B.


 Ciao e grazie G.B.
Non credo ci siamo capiti bene....!
Ti dicevo che il comportamento del tuo prodotto è dovuto all'errato
utilizzo della PrimaryKey come Contatore.
Ovvio che non ti genera errore, ad ogni inserimento ti incrementa il
valore, di conseguenza non avrai mai un duplicato....!
Ripeto quale campo deve essere la fonte del controllo...???
Articolo, Modello ..... COSA.....???
E' su quello/i che devi impostare la PrimaryKey, sul contatore
proprio non ti serve a nulla.
Se modifichi come ti ho suggerito la tabella vedrai che
l'errore lo genera eccome....!
C'è da stabilire poi se quello che vuoi è solo un'avviso
oppure un IMPEDIMENTO all'inserimento....!
Se vuoi solo un Warning allora lascia tutto com'è e
sfrutta la Funzione Dlookup(HELP) per verificare la presenza
di un DUPLICATO sull'evento BeforeUpdate di Maschera, se vuoi
il messaggio inserisci un MSGBOX, se invece quello che vuoi
è l'impossibilità all'inserimento di Duplicati ripeto
la mia prima versione.
@Alex.
-- 


 wrote in message
jEJ_a.84076$cl3.2...@news2.tin.it...

Se il tuo problema è quello, per i nuovi record in immissione, che per
alcuni campi ti venga riproposto automaticamente il valore che avevano nel
record precedentemente registrato, a mio avviso non devi duplicare l'ultimo
record per poi modificarlo solo in certi campi; una soluzione la trovi sul
Sito Comune (link qui sotto), nella Sezione Forms, nella FAQ di Federico
Luciani intitolata "Ripetere un valore del record precedente in una form".
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------