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

Evento dopo aggiornamento non funziona su campo calcolato in sottomaschera

264 views
Skip to first unread message

.Bat

unread,
Oct 24, 2012, 10:10:02 AM10/24/12
to
Ciao a tutti,

Un argomento già discusso altre volte , ma su questo non trovo soluzione.

Ho una sottomaschera prodotti con un campo calcolato :
QuantitàInMagazzino = (Somma(nz([QuantitàResidua];0)))

Poi, in maschera principale prodotti ho un altro campo : StockMagazzino
=nz([Sottomaschera prodotti].[Form]![QuantitàInMagazzino];0)

Fin qui Ok.
Vorrei aggiungere un avviso quando lo StockMagazzino è = 0 (ultimo record)

Ho inserito dopo aggiornamento/prima di aggiornamento , il codice :

if me!StockMagazzino = 0 then
MsgBox "Ricorda codice materiale " & me!nomeprodotto & " da ordinare ",
vbExclamation, "Avviso di Materiale"

Docmd.RunCommand acCmdUndo

end if

ma niente non funziona.

help me , please

.Bat

Pablitomf

unread,
Oct 24, 2012, 10:33:24 AM10/24/12
to
> ma niente non funziona.

ma scusa, ti rispondi da solo quando dici che e' un campo calcolato... per
cui, gli eventi prima e dopo aggiornamento, quando li avresti se non
"mai"????... non e' che non funziona, e' semplicemente impossibile
applicare tali eventi a un campo calcolato... tutto qui. Devi fare
diversamente...

--
------------
Pablitomf
Napoli sempre nel "Q"uore!
"mammasantissima" si nasce, non si diventa.

TheSpaceCowboy :
Britos deve recuperare per arrivare in forma al prossimo
infortunio - 24/10/12

.Bat

unread,
Oct 24, 2012, 10:46:38 AM10/24/12
to
Il 24/10/2012 16:33, Pablitomf ha scritto:
>> ma niente non funziona.
>
> ma scusa, ti rispondi da solo quando dici che e' un campo calcolato... per
> cui, gli eventi prima e dopo aggiornamento, quando li avresti se non
> "mai"????... non e' che non funziona, e' semplicemente impossibile
> applicare tali eventi a un campo calcolato... tutto qui. Devi fare
> diversamente...
>
Si, mi rispondo da solo. Ho capito dopo che non puᅵ funzionare su un
campo calcolato.

Diversamente come ? ... dovrei gestire il controllo sulla tabella ?
Recordset

grazie

Pablitomf

unread,
Oct 24, 2012, 10:55:16 AM10/24/12
to
Bat <.b...@gmail.com> ha scritto:

> Il 24/10/2012 16:33, Pablitomf ha scritto:
> >> ma niente non funziona.
> >
> > ma scusa, ti rispondi da solo quando dici che e' un campo calcolato... per
> > cui, gli eventi prima e dopo aggiornamento, quando li avresti se non
> > "mai"????... non e' che non funziona, e' semplicemente impossibile
> > applicare tali eventi a un campo calcolato... tutto qui. Devi fare
> > diversamente...
> >
> Si, mi rispondo da solo. Ho capito dopo che non può funzionare su un
> campo calcolato.
>
> Diversamente come ? ... dovrei gestire il controllo sulla tabella ?
> Recordset

ma dipende...!!!! dipende cosa intendi tu per "AVVISO"... l'avviso puo'
essere qualsiasi cosa, un msgbox, una label colorata, ecc... magari metti un
altro campo calcolato e gli dici Iif(TuoValore=0;"ATTENTO";"A POSTO")

.Bat

unread,
Oct 25, 2012, 3:29:36 AM10/25/12
to
Il 24/10/2012 16:55, Pablitomf ha scritto:
> Bat <.b...@gmail.com> ha scritto:
>
>> Il 24/10/2012 16:33, Pablitomf ha scritto:
>>>> ma niente non funziona.
>>>
>>> ma scusa, ti rispondi da solo quando dici che e' un campo calcolato... per
>>> cui, gli eventi prima e dopo aggiornamento, quando li avresti se non
>>> "mai"????... non e' che non funziona, e' semplicemente impossibile
>>> applicare tali eventi a un campo calcolato... tutto qui. Devi fare
>>> diversamente...
>>>
>> Si, mi rispondo da solo. Ho capito dopo che non puᅵ funzionare su un
>> campo calcolato.
>>
>> Diversamente come ? ... dovrei gestire il controllo sulla tabella ?
>> Recordset
>
> ma dipende...!!!! dipende cosa intendi tu per "AVVISO"... l'avviso puo'
> essere qualsiasi cosa, un msgbox, una label colorata, ecc... magari metti un
> altro campo calcolato e gli dici Iif(TuoValore=0;"ATTENTO";"A POSTO")
>
>
Vorrei un messaggio MsgBox .
Il tuo ultimo suggerimento l'ho giᅵ provato (iif) ᅵ stata la prima cosa
venuta in mente visto che la prima non funzionava. pensavo che in un
campo calcolato potevo inserire dopo aggiornamento un messaggio MsgBox .

Sono impedito.

sigh

Pablitomf

unread,
Oct 25, 2012, 4:14:38 AM10/25/12
to
sei impedito e vuoi fare la cosa piu' complessa? :D se i dati da cui deve
dipendere questo MsgBox, dipendono da altre Form (che dipendono a loro volta da
altre tabelle), devi aprirti (ma a questo punto la domanda e' "QUANDO???") il
recordset di queste, filtrarlo per i dati che ti interessano, verificare il
valore del campo incriminato e allertarti se questo assume zero... non e'
difficile, basta solo saperlo fare! :D

Ovviamente se vuoi una mano, no problem, ma deve pero' esserti chiaro il "COSA"
vuoi fare, e soprattutto il "QUANDO", altrimenti vai alla cieca.

.Bat

unread,
Oct 25, 2012, 6:15:55 AM10/25/12
to
E' difficile per me.
vediamo se riesco a dire COSA/QUANDO voglio fare
mi trovo in sottomaschera prodotti eseguo operazioni di carico e
scarico. Proprio quest'ultimo quando mi trovo ad eseguire l'ultimo
scarico del prodotto X e per tanto assume valore zero (quindi record
vuoto senza valore in quantitᅵresidua) un messaggio dovrebbe dirmi
"Attenzione il tuo codice materiale ᅵ a zero" .....

Quindi, non si tratta piᅵ di inserire codice in campo calcolato ma
occore del codice VBA che al momento non so fare.

Se puoi darmi una mano, grazie .

Pablitomf

unread,
Oct 25, 2012, 6:25:50 AM10/25/12
to
> E' difficile per me.
> vediamo se riesco a dire COSA/QUANDO voglio fare
> mi trovo in sottomaschera prodotti eseguo operazioni di carico e
> scarico. Proprio quest'ultimo quando mi trovo ad eseguire l'ultimo
> scarico del prodotto X e per tanto assume valore zero (quindi record
> vuoto senza valore in quantitàresidua) un messaggio dovrebbe dirmi
> "Attenzione il tuo codice materiale è a zero" .....
>
> Quindi, non si tratta più di inserire codice in campo calcolato ma
> occore del codice VBA che al momento non so fare.
>
> Se puoi darmi una mano, grazie .

ma scusa, non era cio' che avevi detto inizialmente!!!! (o almeno non era cio'
che avevo capito)... il "QUANDO" a questo punto c'e', ed e' quando fai lo
scarico!!!! fare lo scarico per te cosa vuol dire? inserire un record in
sottomaschera? ovviamente il campo che influenzera' la rimanenza sara' il campo
QUANTITA' del tuo scarico inserito vero?... se cosi' fosse (ma a sto punto credo
sia questa la verita'), il momento in cui devi fare i tuoi conti sono quello in
cui metti il valore "QUANTITA" nel tuo record, preoccupandoti prima di SALVARE
il record (che altrimenti non verrebbe contabilizzato). A questo punto, il
risultato "0" in quale campo della Form padre (e' li' che si trova vero?) si
trova per poterlo interrogare da VBA?

.Bat

unread,
Oct 25, 2012, 7:07:55 AM10/25/12
to
Il 25/10/2012 12:25, Pablitomf ha scritto:
>> E' difficile per me.
>> vediamo se riesco a dire COSA/QUANDO voglio fare
>> mi trovo in sottomaschera prodotti eseguo operazioni di carico e
>> scarico. Proprio quest'ultimo quando mi trovo ad eseguire l'ultimo
>> scarico del prodotto X e per tanto assume valore zero (quindi record
>> vuoto senza valore in quantitàresidua) un messaggio dovrebbe dirmi
>> "Attenzione il tuo codice materiale è a zero" .....
>>
>> Quindi, non si tratta più di inserire codice in campo calcolato ma
>> occore del codice VBA che al momento non so fare.
>>
>> Se puoi darmi una mano, grazie .
>
> ma scusa, non era cio' che avevi detto inizialmente!!!! (o almeno non era cio'
> che avevo capito)... il "QUANDO" a questo punto c'e', ed e' quando fai lo
> scarico!!!! fare lo scarico per te cosa vuol dire? inserire un record in
> sottomaschera? ovviamente il campo che influenzera' la rimanenza sara' il campo
> QUANTITA' del tuo scarico inserito vero?... se cosi' fosse (ma a sto punto credo
> sia questa la verita'), il momento in cui devi fare i tuoi conti sono quello in
> cui metti il valore "QUANTITA" nel tuo record, preoccupandoti prima di SALVARE
> il record (che altrimenti non verrebbe contabilizzato). A questo punto, il
> risultato "0" in quale campo della Form padre (e' li' che si trova vero?) si
> trova per poterlo interrogare da VBA?
>

Mah, mi son spiegato male ho detto che ho una
maschera principale prodotti con campo : StockMagazzino
=nz([Sottomaschera prodotti].[Form]![QuantitàInMagazzino];0)

il calcolo arriva da :
sottomaschera prodotti con un campo calcolato : QuantitàInMagazzino =
(Somma(nz([QuantitàResidua];0)))

Vorrei intercettare il valore "0" in Form principale , per avvisarmi con
una MsgBox

grazie ancora per la pazienza

Pablitomf

unread,
Oct 25, 2012, 7:18:18 AM10/25/12
to
> Mah, mi son spiegato male ho detto che ho una
> maschera principale prodotti con campo : StockMagazzino
> =nz([Sottomaschera prodotti].[Form]![QuantitàInMagazzino];0)
>
> il calcolo arriva da :
> sottomaschera prodotti con un campo calcolato : QuantitàInMagazzino =
> (Somma(nz([QuantitàResidua];0)))
>
> Vorrei intercettare il valore "0" in Form principale , per avvisarmi con
> una MsgBox
>
> grazie ancora per la pazienza

ancora con sta storia? :D vedo che non mi segui...
ho capito che hai QuantitaInMagazzino che e' una somma di QuantitaRedisua... ma
QuantitaResidua che campo e'? un campo che valorizzi tu a mano in ogni record?
ovvero e' un campo della tabella?

.Bat

unread,
Oct 25, 2012, 8:48:21 AM10/25/12
to
Il 25/10/2012 13:18, Pablitomf ha scritto:
>> Mah, mi son spiegato male ho detto che ho una
>> maschera principale prodotti con campo : StockMagazzino
>> =nz([Sottomaschera prodotti].[Form]![QuantitàInMagazzino];0)
>>
>> il calcolo arriva da :
>> sottomaschera prodotti con un campo calcolato : QuantitàInMagazzino =
>> (Somma(nz([QuantitàResidua];0)))
>>
>> Vorrei intercettare il valore "0" in Form principale , per avvisarmi con
>> una MsgBox
>>
>> grazie ancora per la pazienza
>
> ancora con sta storia? :D vedo che non mi segui...
> ho capito che hai QuantitaInMagazzino che e' una somma di QuantitaRedisua... ma
> QuantitaResidua che campo e'? un campo che valorizzi tu a mano in ogni record?
> ovvero e' un campo della tabella?
>
Ahhh chiedo scusa, non ti seguo.. (per fortuna) :P
QuantitàResidua è un campo della tabella, non valorizzato a mano. Ma da
macro (Azione di query)
su pulsante carico e pulsante scarico
fiuuuù

Pablitomf

unread,
Oct 25, 2012, 9:27:06 AM10/25/12
to
> fiuuuù

Io sono pazientissimo pero' e' complicato se continuiamo cosi'... per cui, per
farla breve, dobbiamo (DEVI) individuare il momento in cui si registra (non so
dove e non so quando, questo e' cio' che cerco di chiederti da 1 giorno :D) la
quantita' del carico/scarico... perche' e' quello il momento (quello in cui si
compie l'azione - in verita' subito dopo averla compiuta - ) di interrogare la
quantita' in magazzino e vedere se si e' azzerata rispetto all'attivita' appena
svolta per cosi' darti un Msgbox... mo' e' chiaro?

.Bat

unread,
Oct 25, 2012, 10:03:23 AM10/25/12
to
Il 25/10/2012 15:27, Pablitomf ha scritto:
>> fiuuuù
>
> Io sono pazientissimo pero' e' complicato se continuiamo cosi'... per cui, per
> farla breve, dobbiamo (DEVI) individuare il momento in cui si registra (non so
> dove e non so quando, questo e' cio' che cerco di chiederti da 1 giorno :D) la
> quantita' del carico/scarico... perche' e' quello il momento (quello in cui si
> compie l'azione - in verita' subito dopo averla compiuta - ) di interrogare la
> quantita' in magazzino e vedere se si e' azzerata rispetto all'attivita' appena
> svolta per cosi' darti un Msgbox... mo' e' chiaro?
>
Si, porta pazienza.
mannaggia, a me sembra di averti risposto alle domande.
la registrazione quantità del carico/scarico avviene nel momento in cui
l'azione sul pulsante carico/scarico compie il calcolo. (con diverse
query (somma / sottrazione))
Quindi verificare dopo aver scritto in tabella se la quantità è zero.

non ne usciamo, spero che non soffri di mal di testa.

Pablitomf

unread,
Oct 25, 2012, 10:52:49 AM10/25/12
to
> non ne usciamo, spero che non soffri di mal di testa.

No, non ne usciamo solo perche' mi dici di tutto tranne che rispondere alle mie
domande... piu' di chiederti "DOVE CAVOLO INSERISCI LE QUANTITA' DI CARICO E
SCARICO" (DOVE, ripeto " D O V E ! ! ! ! ! ! ! ! " ) non so' piu' come fare :D
Mi parli di pulsante, di calcolo, e di risultato, ma io ti chiedevo
semplicemente dove inserisci i dati su cui "POI" fai le somme.

Pablitomf

unread,
Oct 25, 2012, 11:02:16 AM10/25/12
to
Pablitomf <pabl...@hotmail.it> ha scritto:

> > non ne usciamo, spero che non soffri di mal di testa.
>
> No, non ne usciamo solo perche' mi dici di tutto tranne che rispondere alle mie
> domande... piu' di chiederti "DOVE CAVOLO INSERISCI LE QUANTITA' DI CARICO E
> SCARICO" (DOVE, ripeto " D O V E ! ! ! ! ! ! ! ! " ) non so' piu' come fare :D
> Mi parli di pulsante, di calcolo, e di risultato, ma io ti chiedevo
> semplicemente dove inserisci i dati su cui "POI" fai le somme.

vabbe' passiamo oltre, tanto ho capito, non me lo dirai mai... sul pulsante da
codice devi ad occhio e croce:

Docmd.RunMacro "NomeTuaMacro"
Doevents
If PercorsoFormNomeTuoCampoControllo=0 then
Msgbox "AAAATTTTTENZIONE!!!!! STAI A ZEEEEEEROOOOOOOOOOOOOO!!!"
End If

.Bat

unread,
Oct 25, 2012, 12:15:45 PM10/25/12
to
Il 25/10/2012 17:02, Pablitomf ha scritto:
> Pablitomf <pabl...@hotmail.it> ha scritto:
>
>>> non ne usciamo, spero che non soffri di mal di testa.
>>
>> No, non ne usciamo solo perche' mi dici di tutto tranne che rispondere alle mie
>> domande... piu' di chiederti "DOVE CAVOLO INSERISCI LE QUANTITA' DI CARICO E
>> SCARICO" (DOVE, ripeto " D O V E ! ! ! ! ! ! ! ! " ) non so' piu' come fare :D
>> Mi parli di pulsante, di calcolo, e di risultato, ma io ti chiedevo
>> semplicemente dove inserisci i dati su cui "POI" fai le somme.
>
> vabbe' passiamo oltre, tanto ho capito, non me lo dirai mai... sul pulsante da
> codice devi ad occhio e croce:
>
> Docmd.RunMacro "NomeTuaMacro"
> Doevents
> If PercorsoFormNomeTuoCampoControllo=0 then
> Msgbox "AAAATTTTTENZIONE!!!!! STAI A ZEEEEEEROOOOOOOOOOOOOO!!!"
> End If
>
Sono proprio tonto.
le quantità di carico li inserisco nel record con campo [carico_p] e
quello di scarico nel campo [scarico_p] in sotto maschera prodotti.
In questo modo x singolo prodotto ho tanti posizioni - record sotto
maschera -
se eseguo lo scarico di tutto - i record - mi troverò ad avere zero
in quel momento mi serve questo benedetto avviso.....
mannaggia dove mi son filato. Mi dimmi che questa volta è chiaro.
senno' lo brucio questo DB. :D

Pablitomf

unread,
Oct 25, 2012, 6:04:22 PM10/25/12
to
> Sono proprio tonto.
> le quantità di carico li inserisco nel record con campo [carico_p] e
> quello di scarico nel campo [scarico_p] in sotto maschera prodotti.
> In questo modo x singolo prodotto ho tanti posizioni - record sotto
> maschera -
> se eseguo lo scarico di tutto - i record - mi troverò ad avere zero
> in quel momento mi serve questo benedetto avviso.....
> mannaggia dove mi son filato.

2 campi per carico e scarico? :D

> Mi dimmi che questa volta è chiaro.
> senno' lo brucio questo DB. :D

si, brucialo.

.Bat

unread,
Oct 26, 2012, 5:05:05 AM10/26/12
to
Il giorno venerdì 26 ottobre 2012 00:04:30 UTC+2, Pablitomf ha scritto:
> > Sono proprio tonto.
>
> > le quantitᅵ di carico li inserisco nel record con campo [carico_p] e
>
> > quello di scarico nel campo [scarico_p] in sotto maschera prodotti.
>
> > In questo modo x singolo prodotto ho tanti posizioni - record sotto
>
> > maschera -
>
> > se eseguo lo scarico di tutto - i record - mi troverᅵ ad avere zero
>
> > in quel momento mi serve questo benedetto avviso.....
>
> > mannaggia dove mi son filato.
>
>
>
> 2 campi per carico e scarico? :D
>
>
>
> > Mi dimmi che questa volta ᅵ chiaro.
>
> > senno' lo brucio questo DB. :D
>
>
>
> si, brucialo.
>
>
>
> --
>
> ------------
>
> Pablitomf
>
> Napoli sempre nel "Q"uore!
>
> "mammasantissima" si nasce, non si diventa.
>
>
>
> TheSpaceCowboy :
>
> Britos deve recuperare per arrivare in forma al prossimo
>
> infortunio - 24/10/12

Ohh po*c miseria.
Ho sotto mano il libro programmare Access, vedo se riesco....
grazie per l'aiuto... a bruciarlo :P

Pablitomf

unread,
Oct 26, 2012, 10:03:13 AM10/26/12
to
> Ohh po*c miseria.
> Ho sotto mano il libro programmare Access, vedo se riesco....
> grazie per l'aiuto... a bruciarlo :P

consiglio... la tabella carico e scarico va ASSOLUTAMENTE
normalizzata... non e'
possibile (nel senso che e' illogico) avere 2 campi per 2 eventi simili
anche se
opposti (carico e scarico). Una quantita' e' lo scarico, una quantita' e' il
carico... ora basta semplicemente avere un solo campo quantita' (quindi
non 2) e
un campo Tipologia che specifica se quella specifica quantita' e' un
carico o
uno scarico (mettendo magari 1 per il carico e 2 per lo scarico)...
questa si
chiama normalizzazione, e serve a non farti aggiungere un terzo campo se ti
inventi una nuova tipologia... bastera' aggiungere nel campo Tipologia,
3 Terza
tipologia... spero ti sia chiaro almeno questo.

.Bat

unread,
Oct 26, 2012, 10:56:48 AM10/26/12
to
Si grazie.
Intanto il DB è ancora vivo :D
con :
If (Form![sottomaschera prodotti]!QuantitàResidua) = 0
ho il controllo sul singolo record.

Quindi per avere il controllo di tutti i record
mi occorre una select count(*) from tabella_sottoprodotti where ....
sto studiando,
penso di farcela. :D

.Bat

unread,
Oct 27, 2012, 10:09:49 AM10/27/12
to


".Bat" ha scritto nel messaggio
news:d8c3dc0b-0ff1-4161...@googlegroups.com...
Fatto !
era proprio quello che mi serviva.

Pablitomf

unread,
Oct 28, 2012, 4:17:53 AM10/28/12
to
> Fatto !
> era proprio quello che mi serviva.

di solito in un NG quando si trova una soluzione, o quando qualcuno la trova per
te, la si condivide... ma siccome nessuno in 50 3d ha capito cosa e come la
volevi, per questa volta, passi ;)

.Bat

unread,
Oct 29, 2012, 12:30:18 PM10/29/12
to
Il 28/10/2012 09:17, Pablitomf ha scritto:
>> Fatto !
>> era proprio quello che mi serviva.
>
> di solito in un NG quando si trova una soluzione, o quando qualcuno la trova per
> te, la si condivide... ma siccome nessuno in 50 3d ha capito cosa e come la
> volevi, per questa volta, passi ;)
>

cattivo !!
ho fatto cosᅵ :
Dim conn As ADODB.Connection
dim rst As ADODB.Recordset

Set conn = CurrentProject.Connection
Set rst = New ADODB.Recordset
SQL = "SELECT COUNT (*) AS Conta FROM transazioni WHERE nomeprodotto='"
& Me.NomeProdotto & "'"
rst.Open SQL, conn
if rst("conta") = 1 then
MsgBox "Attenzione, ultima quantitᅵ prelevata :" &
Forms!prodotti!QuantitᅵInMagazzino & "", vbExclamation
end if

piᅵ o meno ᅵ cosi. Non ho il codice davanti.
Ma funziona.

Mi dispiace per non essere stato chiaro.

grazie


0 new messages