Newsgroup: it.comp.appl.access
Titolo: Campo "Duplicati non ammessi" solo ad una condizione

Ciao a tutti,ho questa esigenza.Ho un campo testo "Cod fornitore",in
questo campo voglio impostare la proprieta' "duplicati non
ammessi".Questa prorpieta' deve essere valida solo se il fornitore e'
lo stesso.Esempio:
Nel campo "Fornitore" io scrivo  Pippo. nel campo "cod Fornitore"
scrivo articolo 1.
Se quest oarticolo e' gia' stato inserito mi deve dare la segnalazione
"Impossibile ecc".
Lo stesso articolo invece per un altro fornitore dee essere accettato
(solo una volta)
Grazie in anticipo
Dino


Puoi creare un indice multicampo e univoco con i due
campi nella tabella.
Il procedimento dipende un po' dalla versione di Access.
A07:
http://office.microsoft.com/it-it/access/HA102103471040.aspx?pid=CH100645691040
<= A03:
http://office.microsoft.com/it-it/access/HP051875621040.aspx
Vedi anche 
www.donkarl.com/it?FAQ4.25
.
-- 
HTH
Karl
*********
Access FAQ: 
www.donkarl.com/it
 

 Access FAQ:
www.donkarl.com/it
Ho access 2000.Nella stessa tab.Nella stessa tab. ho impostato due
chiavi primarie:
La prima univoca "Fronitore",mentre la seconda no "Descrizione".E'
questo che intendi per multicampo???
Grazie
Dino

 questo che intendi per multicampo???
No, vedi i link che ti ho segnalato. Tutti e due spiegono cos'�
e come si crea un indice "multicampo" o indice "a pi� campi".
-- 
cu


 - Mostra testo citato -
Ciao Karl grazie per la risposta.Domani in mat.ho tempo pewr
provare ,poi ti faccio sapere

 - Mostra testo citato -
Ciao Karl,ho provato ma con scarsi risultati.Vediamo se riusciamo
insieme a trovare l'errore.
I campi in questione per creare il multicampo sono:
il "codice articolo" e il campo "fornitore".
Nella finestra crea indici ho creato l'indice "codice fornit" e come
nome campo le ho dato
Codice fornitore e nelle proprieta' dell'indice ho messo ad univoco
sì.
Poi ho creato un altro indice "suo fornit" e come nome campo le ho
dato "IDfornitore"
nella pror. dell'indice ho messo univoco no.
Lasciando così se inserisco due recors con lo stesso codice art mi
dice che e' impossibile duplicare il campo codice art.E fino qua' va
bene.
Il problema che mi deve dare la segnalazione solo per lo stesso
fornitore.
Così invece me lo fa' per ogni fornitore.
Se vado a mettere nella prop.univoco dell'indice "suofornit"mi
permette di inserire il fornitore solo una volta.
Dove sbaglio???
Grazie ancora
Dino

 ...
Hai creato due indici diversi invece di un solo indice con due campi.
Cancella i due indici e fai cos�:
Nella finestra dei indici digita un nome per l'indice nella
colonna "Nome indice". Diciamo che scrivi "ArtFor".
Nella colonna "Nome campo" seleziona il primo campo per l'indice,
cio� "codice articolo" e imposta la sua propriet� "Univoco" a S�.
Nella riga successiva della colonna "Nome campo" seleziona
il secondo campo per l'indice, cio� "fornitore", _lasciando vuota_
la colonna "Nome indice".
Gioco fatto.
-- 
HTH


 - Mostra testo citato -
Ciao Karl grazie per la risp.Ho fatto come hai detto.Ho provato ma non
funziona correttamente.Mi spiego meglio.
Inserisco fornitore Rossi e codice art "art1" e salvo il mio record.
Se provo ad inserire un altro record con Rossi e articolo art1 si
blocca e fin qua' va bene.
Se pero' vado ad inserire Fornitore Gialli e articolo "Art1" lui si
blocca ugialmente,invece con il fornitore Gialli non dovrebbe
bloccarsi.
Io posso avere lo stesso articolo con lo stesso codice ma acquista da
diversi fornitori.
Mi piacerebbe anche che il messaggio di errore mi venisse segnalato
subito dopo l'inserimento del codice e non qaundo sto' per salvare li
record.
Grazie ancora Dino

 record.
Allora ritorna al terzo link nella mia prima risposta -
e veramente leggi l'articolo segnalato.



Karl sono io.Grazie per la risposta e per la pazienza.Ho
risolto,Incredibile!!!!Ero convinto di non aver messo l'univocita' nel
campo Cod articolo e invece "Duplicati non ammessi" = Sì.Adesso
funziona correttamente.
Ad ogni modo adesso provo ad utilizzare anche il link  del tuo sito
per avere la segnalazione della duplicazione prima del salvataggio
record ed eventualmente ti faccio sapere.
Scusa ancora (si poteva evitare un post)
Grazie Karl alla prossima
Dino

 - Mostra testo citato -
Ciao Karl.Ho provato ad utilizzare il tuo codice per avere la
segnalazione che il record esiste dopo aver inserito i dati nel
campo,ma non funziona come dovrebbe.Infatti
dopo aver inserito il dato nel campo "Cod art fornitore" invece di
dare la segnalazione mi fa proseguire con l'inserimento negli altri
campi.Solo quando salvo il record mi da la segnalazione che gia'
esiste.D iseguito ti podto il codice che ho inserito:
Private Sub Form_BeforeUpdate(Cancel As Integer)
If Not IsNull(DLookup("[Codice art fornitore]", "Qr_articoli", _
    "[Codice art fornitore] = " & Chr$(34) & Me.Codice_art_fornitore &
Chr$(34))) _
    And Me.Codice_art_fornitore <> Nz
(Me.Codice_art_fornitore.OldValue) Then
  MsgBox Me.Codice_art_fornitore & " Già esiste.", vbOKOnly,
"Duplicato!"
  Cancel = True
End if
Grazie ancora Dino

 ...usare l'evento Prima di aggiornare del controllo
Tu invece usi "Prima di aggiornare" della maschera che solo
succede quando Access tenta di salvare il record.
Non capisco cosa sarebbe "Codice art fornitore".
Dipende dalla tua maschera ma di solito devi chiamare
il codice due volte: prima di aggiornare del controllo per il
codice articolo e per il fornitore.
Inoltre nel DLookUp devi controllare tutti e due campi
della tabella.


 - Mostra testo citato -
Ciao Karl. Codice art fornitore e' il nome del campo e anche del
controllo (casella di testo).Ho provato e funziona benissimo.Oggi
proprio con la testa non ci sono.Inserendo il codice sull'evento del
controllo va tutto Ok.
Menomale C'e' Karl
Grazie ancora
Per pazienza e disponibilita'
Dino