Newsgroup: it.comp.appl.access
Titolo: sottomaschere e codici duplicati

Ciao a tutti, ho il seguente problema.
ho realizzato una maschera con sottomaschera composta come segue.
Maschera viene realizzata da una tabella Ordini, mentre la sottomaschera
viene realizzata da una query prodotti.
Masch_Ordini                                   SottomQueryProdotti
-------------                                ------------------------
CodiceOrdine                                CodiceProdotto
DataOrdine                                    DescrizioneProdotto
Committente                                   Quantità
 Funzionava tutto alla perfezione fino a quando ho notato che inserendo i
codici dei vari prodotti la sottomaschera mi consente di inserire anche
codici duplicati (cioè inseriti poco prima nei campi precedenti).
Domande:
               Ci sarebbe il modo per inibire l'inserimento di codici
duplicati?
in alternativa:
Ci srebbe la possibilità, che subito dopo aver inserito un codice duplicato,
ricevere l'avviso del tipo:"codice già presente nella lista degli ordini in
compilazione".
Spero di essermi spiegato sufficientemente.
Grazie
Michele b.

 ha scritto nel messaggio
news:9flk7h$t12$1...@pegasus.tiscalinet.it...

La cosa più semplice è aprire la struttura della tabella che è origine
record della sottomaschera e ti crei un indice formato dall'insieme dei
campi CodiceOrdine e CodiceProdotto: per quell'indice ti dichiari la
proprietà Univoco a Si.
In alternativa, a fronte dell'evento "Prima di aggiornare" del controllo
CodiceProdotto, con una funzione DLookup vai a verificare che nella suddetta
tabella non esista già un record che abbia lo stesso CodiceOrdine e lo
stesso CodiceProdotto, nel qual caso mandi un messaggio di avviso, annulli
l'evento (Cancel = True) ed elimini le variazioni già impostate per il
record da inserire (Me.Undo); per maggiori inormazioni vedi help e thread
del NG dell'ultima settimana dove si è già parlato di ciò.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

Scusami Roberto ma non riesco a trovare "help e thread" per
l'approfondimento. mi potresti inviare l'oggetto del messaggio in modo che
possa cercarlo?


Già che ci siamo ti do le coordinate di un thread fresco, fresco di
giornata.
Il thread è stato aperto da Giorgio il 7/6/2001 alle ore 0:48 ed ha per
oggetto Ricerca record già esistente.
Un altro thread è stato aperto da Mic il 4/6/2001 alle ore 19:56 ed ha per
oggetto Eliminazione degli avvisi di access ee inserimento di Avvisi
personali.
Un altro ancora è stato aperto sempre da Mic il 1° giugno alle ore 8:44 ed
ha per oggetto Per cambiare avvisi.
Negli ultimi 10 giorni ce ne sono almeno altri 3 o 4; beh, cercali da solo.
Resta il fatto che mi sembra di capire che per molti il NG non è usato
sistematicamente come strumento di apprendimento, ma solo come un help desk
al quale si ricorre solo quando si ha una necessità ed al quale si pone il
proprio problema, convinti che prima o poi qualcuno scodellerà pronta su un
piatto d'argento la soluzione ad hoc (se poi la risposta tarda ad arrivare
c'è anche chi si incavola).
Scusami lo sfogo; ma per chi cerca di far funzionare al meglio il NG questo
è abbastanza frustrante.


Un ciao a tutti.
Riassumendo:
ho realizzato una maschera con sottomaschera composta come segue.
Maschera viene realizzata da una tabella Ordini, mentre la sottomaschera
viene realizzata da una query prodotti.
Masch_Report                                  SottomQueryProdotti
-------------                                ------------------------
Codice_Report                                Codice_Rivista
Data                                                Titolo Rivista
Committente
la tabella che compone la parte significativa della query ha due chiavi
primarie
Codice_rivista e Codice report. Così mi è possibile , ad gni report,
inserire nella sottomaschera i codici_rivista (non ripetuti).Quindi:
problema risolto Infatti, se nello stesso report ne inserisco uno uguale mi
compare il msg violazione della chiave ........... .
Il problema è che nell'evento PrimaDiAggiornare scrivendo il seguente
codice:
Private Sub Codice_rivista_BeforeUpdate(Cancel As Integer)
If Not IsNull(DLookup("[Codice_Rivista]", "Particolari_Report", _
"Codice_Rivista=" & Chr$(34) & Me!Codice_Rivista & Chr$(34))) Then
MsgBox "Il codice rivista immesso n°. " & Me!Codice_Rivista & " è già stato
inserito"
Cancel = True
Me.Undo
End If
End Sub
Mi controlla se nella query il codice_rivista è già presente. (infatti anche
se non lo ho inserito nel report Es. 10, potrei averlo messo precedentemente
nel report 09.
Domanda:
                    Come posso dire nel codice che nella query non deve
controllare il Codice_Rivista bensì il Codice_Rivista relativo al
Codice_Report in essere?
Infinitamente graze
Michele b.