Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Campo "Duplicati non ammessi" solo ad una condizione

136 views
Skip to first unread message

Dino

unread,
Nov 24, 2009, 3:52:44 AM11/24/09
to
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

Karl Donaubauer

unread,
Nov 24, 2009, 4:18:55 AM11/24/09
to

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

Dino

unread,
Nov 24, 2009, 5:11:35 AM11/24/09
to
On 24 Nov, 10:18, "Karl Donaubauer" <NoS...@donkarl.com> wrote:
> Dino wrote:
> > 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)
>
> 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=CH10...

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

Karl Donaubauer

unread,
Nov 24, 2009, 6:21:56 AM11/24/09
to
Dino wrote:

> Karl Donaubauer wrote:
>>> 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)
>>
>> 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=CH10...
>> <= A03: http://office.microsoft.com/it-it/access/HP051875621040.aspx
>
> 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???

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

Dino

unread,
Nov 24, 2009, 1:48:09 PM11/24/09
to
> 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
> Karl
> *********
> Access FAQ:www.donkarl.com/it- Nascondi testo citato
>
> - Mostra testo citato -

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

Dino

unread,
Nov 25, 2009, 4:10:09 AM11/25/09
to
> > Access FAQ:www.donkarl.com/it-Nascondi testo citato

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

>
> - 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

Karl Donaubauer

unread,
Nov 25, 2009, 8:48:33 AM11/25/09
to
Dino wrote:
>> Karl Donaubauer wrote:
>>
>>>>> 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=CH10...
>>>>> <=
>>>>> A03:http://office.microsoft.com/it-it/access/HP051875621040.aspx
>> ...

> 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.
> ...

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

Dino

unread,
Nov 25, 2009, 9:18:30 AM11/25/09
to
On 25 Nov, 14:48, "Karl Donaubauer" <NoS...@donkarl.com> wrote:
> Dino wrote:
> >> Karl Donaubauer wrote:
>
> >>>>> Puoi creare un indicemulticampoe 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=CH10...
> >>>>> <=
> >>>>> A03:http://office.microsoft.com/it-it/access/HP051875621040.aspx
> >> ...
> > Ciao Karl,ho provato ma con scarsi risultati.Vediamo se riusciamo
> > insieme a trovare l'errore.
>
> > I campi in questione per creare ilmulticamposono:
> > 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.
> > ...
>
> 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
> Karl
> *********
> Access FAQ:www.donkarl.com/it- Nascondi testo citato

>
> - 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

Karl Donaubauer

unread,
Nov 25, 2009, 9:42:54 AM11/25/09
to
Dino wrote:
>> ...
>> Cancella i due indici
> ...

> 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.

Sei sicuro di aver cancellato il tuo indice univoco al campo "art1"?

> 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.

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

Dino

unread,
Nov 25, 2009, 11:40:17 AM11/25/09
to

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

Dino

unread,
Nov 25, 2009, 1:05:32 PM11/25/09
to
> Dino- Nascondi testo citato

>
> - 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

Karl Donaubauer

unread,
Nov 25, 2009, 1:35:49 PM11/25/09
to
Dino wrote:
> ...

> 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

Nell'articolo scrivo
> ...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.

Dino

unread,
Nov 25, 2009, 2:05:19 PM11/25/09
to
On 25 Nov, 19:35, "Karl Donaubauer" <NoS...@donkarl.com> wrote:
> Dino wrote:
> > ...
> > 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
>
> Nell'articolo scrivo
>
> > ...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.
>
> --
> HTH
> Karl
> *********
> Access FAQ:www.donkarl.com/it- Nascondi testo citato

>
> - 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

0 new messages