Newsgroup: it.comp.appl.access
Titolo: Evitare duplicati

Ciao per evitare di inserire dati duplicati, ho utilizzato il
consiglio di Karl 
http://www.donkarl.com/it?FAQ4.25
 però dovrei fare
una piccola aggiunta e cioè oltre alla ricerca basata su una casella
di testo che nel mio caso si chiama "MeseComp", mi dovrebbe
confrontare anche l'anno della casella di testo "DataRicevuta" dove è
riportata una data, con l'anno attuale. Come si fa?
Grazie

 consiglio di Karlhttp://www.donkarl.com/it?FAQ4.25però dovrei fare



Siccome non hai rivelato il tuo codice lo dimostro con l'esempio
dall'articolo:
 
If Not IsNull(Dlookup("MioCampo", "MiaTabella", _
    "MioCampo = " & Chr$(34) & Me!MioControllo & Chr$(34))) _
    And Me!MioControllo <> nz(Me!MioControllo.OldValue) _
    And Year(Me!DataRicevuta)=Year(Date) Then
 
  MsgBox Me!MioControllo & " Già esiste.", vbOKOnly, "Duplicato!"
  Cancel = True
 
End If
 
Se non funziona incolla il tuo codice.
 
-- 
Ciao
Karl
*********
Access FAQ:  
http://www.donkarl.com/it
 
 

Ecco il mio codice:
If Not IsNull(DLookup("MeseComp", "DatiRicevuteEmesse", _
    "MeseComp = " & Chr$(34) & Me!MeseComp & Chr$(34))) _
    And Me!MeseComp <> Nz(Me!MeseComp.OldValue) _
    And Year([DataRicevuta]) = Year(Date) Then
 
  MsgBox Me!MeseComp & " Già esiste.", vbOKOnly, "Duplicato!"
  Cancel = True
 
End If
 
come vedi è uguale al tuo e funziona, ma non è quello che mi serve.
in pratica in base a questo controllo, mi dovrebbe evitare di
effettuare doppi pagamenti, per cui dovrebbe controllarmi i dati dei
campi "MeseComp" e l'anno del campo "DataRicevuta" della tabella
"DatiRicevuteEmesse" ; l'anno di "DataRicevuta" poi lo deve
confrontare con l'anno corrente e se esiste già un pagamento
effettuato a gennaio 2012 lo deve evidenziare con un mesaggio.
Esempio:
pagamento GENNAIO 2011 (nessun messaggio)
pagamento MARZO 2011 (nessun messaggio)
pagamento GENNAIO 2012 (messaggio)
pagamento MARZO 2012 (messaggio)
Spero di essermi espresso in maniera comprensibile
cmq grazie

Karl ci sei??
help me please

 help me please
 
No, ma forse si trova qualcuno che capisce meglio
cosa vuoi ottenere.


 Access FAQ:  
http://www.donkarl.com/it
 
 
Scusami, ma è sempre un pò difficile scrivere ciò che si ha in mente
e farsi capire! mi rendo conto che è altrettanto difficile per chi legge
interpretare il pensiero di chi scrive.
Provo a spiegarmi meglio (se ci riesco)
ho una tabella "DatiRicevuteEmesse" tra i vari campi che compongono
la tabella ci sono anche "DataRicevuta" che contiene la data della ricevuta
emessa e "MeseComp" che contiene il mese di competenza.
Poi ho una maschera "EmissioneRicevute" attraverso cui emetto le ricevute,
condominiali, l'origine record della maschera è la tabella 
"DatiRicevuteEmesse" .
Ora il primo campo che compilo è "MeseComp" per cui dopo l'aggiornamento
dovrebbe controllare nella tabella "DatiRicevuteEmesse" che per l'anno 
corrente
non siano state emesse altre ricevute riferite al mese scritto nella casella 
"MeseComp"
esempio se a gennaio 2012 ho già emesso una ricevuta, se imputo "gennaio"
nella casella "MeseComp" me lo deve segnalare diversamente prosegue.
Questo per evitare che si possano emettere due o più ricevute che si 
riferiscono
allo stesso mese e allo stesso anno.
Ho finito!! è più comprensibile??
Spero proprio di si.
Grazie