Newsgroup: it.comp.appl.access
Titolo: Verificare che nel database non vi sia lo stesso numero

Avrei bisogno del vostro aiuto: ho un programma che gestisce in modo molto 
semplice anche la fatturazione, fino ad ora non abbiamo mai avuto errori o 
problemi, ma vorrei fare una procedura per rendere più sicuro l'inserimento 
di dati corretti.
In pratica quando viene scritto un numero fattura nella maschera, vorrei che 
il programma controllasse se quel numero esiste già nel database.
Idem per la data, quando si inserisce la data fattura, vorrei controllare 
che non sia antecedente alle date già inserite nel database.
E' possibile farlo in modo semplice? Presumo sia da usare qualche comando in 
VB (che io purtroppo conosco molto poco, non vado molto oltre gli if then 
else :-) ).
Per il numero fattura avevo pensato di modificare l'indicizzazione, ma 
quando imposto che non deve accettare doppioni mi dice che ci sono già, e 
sicuramente ha ragione perchè in tanti record il numero fattura è "null"; 
quindi questa strada mi sembra non praticabile.
Saluti
Fabio 


 Evitare duplicati
 
http://www.donkarl.com/it?FAQ4.25
-- 
Ciao
Karl
*********
Access FAQ:  
http://www.donkarl.com/it
 

 ha scritto nel messaggio 
news:j3q0fn$5rk$1...@tdi.cu.mi.it...

a parte il fatto che trovo astruso l'inserimento del numero di fattura "a 
mano" invece di usare o dei contatori interni automatici o le solite 
procedure che prendono il numero più alto presente e sommano uno
a parte questo devi andare a studiare per bene sull'help le funzioni 
aggregate sui domini
in particolare dlookup (per il numero di fattura esistente) e dmax (per il 
problema della data)
ci sono anche ottimi esempi
Antonio 

 
http://www.donkarl.com/it?FAQ4.25
Grazie mille, sto provando, per ora senza successo ma probabilmente sbaglio 
qualche parametro:
If Not IsNull(DLookup("FatturaNro", "DatiCliente", "FatturaNro = " & 
Chr$(34) & Me!FatturaNro & Chr$(34))) And Me!FatturaNro <> 
Nz(Me!FatturaNro.OldValue) Then
  MsgBox Me!FatturaNro & " Già esiste.", vbOKOnly, "Duplicato!"
  Cancel = True
End If
DatiCliente è il nome del database, FatturaNro è il campo e lo stesso nome 
lo ha anche la casella di testo (ho provato a dare un nome diverso ma mi da 
sempre errore).
L'errore è il 438 "proprietà o metodo non supportati dall'oggetto"
Ciao e grazie ancora
Fabio 

 L'errore ï¿œ il 438 "proprietï¿œ o metodo non supportati dall'oggetto"
In quale evento di quale oggetto hai inserito il codice?
Posta tutta la procedura per vedere le sue dicchiarazioni.
L'errore potrebbe riferirsi alla proprietï¿œ OldValue che solo
funziona con controlli associati.
Ho solo aggiunto il paragone con OldValue per evitare
il messaggio in caso di un'inserimento sbagliato.
Puoi provarlo anche senza questa prova, cioï¿œ:
If Not IsNull(DLookup("FatturaNro", "DatiCliente", "FatturaNro = " &
Chr$(34) & Me!FatturaNro & Chr$(34))) Then
  MsgBox Me!FatturaNro & " giï¿œ esiste.", vbOKOnly, "Duplicato!"
  Cancel = True
End If
Stai attento che hai scelto la versione per il tipo testo, come
descritto nell'articolo.


 descritto nell'articolo.
Ok
Ciao
Fabio 

 ci sono anche ottimi esempi
Ok, grazie, per il numero sono a posto, mi studio il manuale per la data.
Ciao
Fabio