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

Refresh delle opzioni di una maschera Access

226 views
Skip to first unread message

Francesco S.

unread,
Aug 29, 2000, 3:00:00 AM8/29/00
to
Salve,
In Access 97 ho creato una maschera con due gruppi di opzioni.

Nel primo gruppo, composto da 5 opzioni, attivando ad esempio la prima mi
disattiva due opzioni particolari del secondo gruppo. Ho creato lo script e
l'ho attribuito all'evento "Prima di aggiornare" ... Funziona tutto alla
perfezione!
L'unico problema e che quando vado al record successivo mi visualizza le
opzioni precedenti senza avere un "refresh" aggiornato della maschera ...
cioč se ad esempio sul primo record mi compare un campo disattivato, andando
poi nel record successivo o precedente mi visualizza lo stesso campo sempre
disattivato!
Devo sempre cliccare sull'opzione per poterlo ri-aggiornare!! Arghh ..

Concludendo vorrei che nel momento in cui vado al record precedente o
successivo, si abbia un "refresh" delle opzioni, visualizzando il tutto in
maniera esatta, linda e pulita! ;D ...

Di seguito un semplice esempio di quanto menzionato:

Private Sub OpzioneTest_BeforeUpdate(Cancel As Integer)

With Me
If OpzioneTest = 1 Then
!OpzioneResult.Enabled = True
ElseIf OpzioneTest = 2 Then
!OpzioneResult.Enabled = False
End If
End With

End Sub

Mi date una mano? ;)

Grazie,
Frank
_________________________________________________________________________
Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com.

Share information about yourself, create your own public profile at
http://profiles.msn.com.


--
Posted from [204.90.182.2] by way of f16.law4.hotmail.com [216.33.149.16]
via Mailgate.ORG Server - http://www.Mailgate.ORG

Sib

unread,
Aug 29, 2000, 3:00:00 AM8/29/00
to

""Francesco S."" ebbe l'ardire di scrivere

> Salve,
> In Access 97 ho creato una maschera con due gruppi di opzioni.
>
> Nel primo gruppo, composto da 5 opzioni, attivando ad esempio la prima mi
> disattiva due opzioni particolari del secondo gruppo. Ho creato lo script
e
> l'ho attribuito all'evento "Prima di aggiornare" ... Funziona tutto alla
> perfezione!

e perche' PRIMA di aggiornare? semmai dopo.

> L'unico problema e che quando vado al record successivo mi visualizza le
> opzioni precedenti senza avere un "refresh" aggiornato della maschera ...
> cioč se ad esempio sul primo record mi compare un campo disattivato,
andando
> poi nel record successivo o precedente mi visualizza lo stesso campo
sempre
> disattivato!
> Devo sempre cliccare sull'opzione per poterlo ri-aggiornare!! Arghh ..

Ovvio che ci sia qualcosa che non va. l'evento PrimaDiAggiornare (che
peraltro non e' quello giusto per questo caso) si verifica solo quando
aggiorni il gruppo di opzioni, quindi, dato che cambiando record non
aggiorni un bel niente, l'evento non si verifica.
Se vuoi che succeda qualcosa quando cambi record devi usare l'evento
Corrente, il quale si verifica ogni volta che un qualsiasi record diventa
(appunto) il record corrente.

> Concludendo vorrei che nel momento in cui vado al record precedente o
> successivo, si abbia un "refresh" delle opzioni, visualizzando il tutto in
> maniera esatta, linda e pulita! ;D ...

Usa Dash, versane un po' nei fori del monitor e il resto dividilo tra la
fessura del floppy e il cassetto del CD, vedrai che risultati!!


> Di seguito un semplice esempio di quanto menzionato:
>
> Private Sub OpzioneTest_BeforeUpdate(Cancel As Integer)
>
> With Me
> If OpzioneTest = 1 Then

Manca il punto, ma forse nel codice vero non hai avuto questa svista.

> !OpzioneResult.Enabled = True
> ElseIf OpzioneTest = 2 Then
> !OpzioneResult.Enabled = False
> End If
> End With
>
> End Sub
>
>
>
> Mi date una mano? ;)

||||,

>
> Grazie,
> Frank

Ciao, Sib

Roberto dal portatile

unread,
Aug 29, 2000, 3:00:00 AM8/29/00
to

""Francesco S."" <taka...@hotmail.com> ha scritto nel messaggio
news:F16T3TGJ2TUSz...@hotmail.com...

> Salve,
> In Access 97 ho creato una maschera con due gruppi di opzioni.
>
> Nel primo gruppo, composto da 5 opzioni, attivando ad esempio la prima mi
> disattiva due opzioni particolari del secondo gruppo. Ho creato lo script
e
> l'ho attribuito all'evento "Prima di aggiornare" ... Funziona tutto alla
> perfezione!
> L'unico problema e che quando vado al record successivo mi visualizza le
> opzioni precedenti senza avere un "refresh" aggiornato della maschera ...
> cioč se ad esempio sul primo record mi compare un campo disattivato,
andando
> poi nel record successivo o precedente mi visualizza lo stesso campo
sempre
> disattivato!
> Devo sempre cliccare sull'opzione per poterlo ri-aggiornare!! Arghh ..
>
> Concludendo vorrei che nel momento in cui vado al record precedente o
> successivo, si abbia un "refresh" delle opzioni, visualizzando il tutto in
> maniera esatta, linda e pulita! ;D ...
>
> Di seguito un semplice esempio di quanto menzionato:
>
> Private Sub OpzioneTest_BeforeUpdate(Cancel As Integer)
>
> With Me
> If OpzioneTest = 1 Then
> !OpzioneResult.Enabled = True
> ElseIf OpzioneTest = 2 Then
> !OpzioneResult.Enabled = False
> End If
> End With
>
> End Sub
>
>
>
> Mi date una mano? ;)
>
> Grazie,
> Frank

Credimi, ho letto per mezz'ora di seguito il tuo messaggio, ma non sono
riuscito ha capirlo (sicuramente per colpa mia). Ti chiedo pertanto
chiarimenti:

1) Io ho capito che il primo gruppo di opzioni si chiama OpzioneTest e che
il secondo gruppo di opzioni si chiama OpzioneResult; č giusto?
2) I due gruppi di opzioni sono controlli associati oppure non associati e
si trovano nel corpo o nell'intestazione della maschera?
3) Io so che in un gruppo di opzioni si puň attivare SOLO un'opzione alla
volta, visto che per definizione attivandone una tutte le altre vengono
disattivate: come fai ad attivare o disattivare contemporaneamente "due
opzioni particolari del secondo gruppo"?
4) Ho dato uno sguardo al tuo codice VBA, e mi sembra di capire che alla
fine non attivi nulla, ma abiliti o disabiliti l'intero secondo gruppo di
opzioni e non solamente due opzioni di questo gruppo: mi servirebbe di
capire cosa di preciso ti serve fare.
5) Per i due gruppi di opzioni hai assegnato un valore predefinito?
6) Cosa intendi quando parli di "refresh" delle opzioni? Forse debbono
assumere un valore predefinito? Se si quale?

Le osservazioni di Sib le ritengo comunque pertinenti.

Ciao

--

Roberto

---------------------------------------------
il sito comune di it.comp.appl.access:
http://members.xoom.it/it_db_access/
---------------------------------------------


Sib

unread,
Aug 30, 2000, 3:00:00 AM8/30/00
to

"Roberto dal portatile" risponde
[stracut]

> Le osservazioni di Sib le ritengo comunque pertinenti.

Sono commosso :,,)

Comunque hai ragione tu. Io ho cercato di interpretare cosa voleva dire per
fare prima, ma a volte si puo' sbagliare facendo come me.

> Ciao
>
> --
>
> Roberto
>

Ciao, Sib

Francesco S.

unread,
Aug 30, 2000, 3:00:00 AM8/30/00
to
Per ovviare a qualsiasi altro dubbio ho preferito allegarvi il database
Access relativo via e-mail. Un esempio concreto vale più di mille parole!

Nota per Roberto: sono spiacente di aver usato una sintassi descrittiva poco
chiara, ma ciò è dovuto al fatto che sono un neofita sia di Access che di
VBA ... è da circa un paio di settimane che smanetto sul primo e da due
giorni che smanetto sul secondo! E tanti meccanismi e termini che per voi
sono assodati per me sono del tutto nuovi ... perdonatemi!

Nota per Sib: Ho provato a versare il Dash (liquido) come da tuo consiglio
sulla mia postazione di lavoro! Wow!!! :D ... i risultati sono stati i
seguenti:

1) Versandolo sul monitor, le immagini da che erano a colori sono sbiancate
di un bianco che più bianco non si può! Finalmente sono riuscito, grazie al
tuo consiglio, a fare una pulizia interna efficace senza perdere troppo
tempo! Peccato per le immagini che sono diventate tutte in bianco (quando è
accesso) e nero (quando è spento) ;)

2) Versandolo nelle feritoie dell'alimentatore ho avuto la stanza inondata
da un gradevolissimo odore di detersivo ... dopo c'è stato qualche "squiz"
misto a scintille con scoppiettii vari ... ma è un'aspetto secondario, su
cui possiamo sorvolare!

3) Nel lettore cd invece, dove avevo un CD dei Simply Reds, le canzoni sono
tramutate magicamente in quelle di Barry White ... wow! A saperlo prima ...
;D ... hehehehe

4) Versandone un pò sull'hard disk, ho avuto come risultato un disco "soft"
... soffice e candido al tocco! Sarà dovuto alla formula "ammorbidente"
contenuta nel Dash? Boh! ;D ....

Ciao,


Frank
_________________________________________________________________________
Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com.

Share information about yourself, create your own public profile at
http://profiles.msn.com.


--
Posted from [204.90.182.2] by way of f248.law4.hotmail.com [216.33.149.248]

Roberto dal portatile

unread,
Aug 30, 2000, 3:00:00 AM8/30/00
to

>
> Sono commosso :,,)
>

Accidenti!! Questa faccina non la conosco, cosa vuol dire?
Vedi quante lacune si accumulano nion partecipando alle chat!!

Roberto

Roberto dal portatile

unread,
Aug 30, 2000, 3:00:00 AM8/30/00
to

""Francesco S."" <taka...@hotmail.com> ha scritto nel messaggio
news:F248VjCRGryWt...@hotmail.com...

> Per ovviare a qualsiasi altro dubbio ho preferito allegarvi il database
> Access relativo via e-mail. Un esempio concreto vale più di mille parole!
>
> Nota per Roberto: sono spiacente di aver usato una sintassi descrittiva
poco
> chiara, ma ciò è dovuto al fatto che sono un neofita sia di Access che di
> VBA ... è da circa un paio di settimane che smanetto sul primo e da due
> giorni che smanetto sul secondo! E tanti meccanismi e termini che per voi
> sono assodati per me sono del tutto nuovi ... perdonatemi!
>

Ho ricevuto al mio indirizzo e-mail il DB di esempio di Francesco e gli
risposto così:

Innanzi tutto, se questo ti consola, circa otto mesi fa ero nelle tue stesse
condizioni; ho usato però un approccio ad Access diverso dal tuo; per due
mesi ho solo studiato: sui libri, sull'help, sui database di esempio
(Northwind, Ordini, Soluzioni ecc.) e sui DB creati con l'autocomposizione.
Ho realizzato il mio primo database solo dopo due mesi di studio.
Rispetto la tua scelta di adoperare per l'apprendimento il metodo induttivo
anzichè quello deduttivo, però devi studiare almeno quel minimo che serve
per avere una buona proprietà di linguaggio, altrimenti non riuscirai a
formulare i quesiti in maniera comprensibile e quindi non riceverai risposte
pertinenti, ma solo qualche battuta scherzosa.
Come immaginavo, il tuo db non è fatto proprio come tu ci hai raccontato con
il tuo post sul NG.
E' questo il motivo di tutte quelle mie domande: speravo che rispondendo
alle mie domande ti saresti, tu per primo, chiarito le idee: lo farò io per
te (ma non prenderci l'abbitudine ;-) )
1) Ho visto come si chiamano i due gruppi di opazioni.
2) I due gruppi di opzioni sono controlli ASSOCIATI a due campi della
tabella Output_Form e sono collocati nel corpo della maschera. Visto che
così stanno le cose, lo stato dei due gruppi di opzioni viene memorizzato
nei relativi record, ed è pertanto normale che, a seconda del record che è
corrente, tu veda le opzioni in un certo stato, è quello che tu hai
impostato al momento della memorizzzione del record visualizzato: non vedo
come puoi aspettarti una cosa diversa. Se invece vuoi svincolare lo stato
delle opzioni dal record che è corrente nella maschera, occorre che ti
dichiari i gruppi di opzioni come NON associati, e sarebbe bene collocarli
nell'intestazione della maschera; naturalmente devi tirare fuori dalle
cornici dei gruppi di opzioni le due caselle di testo associate Part_Other e
Problem_Other che lascerai nel corpo della maschera. Così facendo, come ti
ha detto Sib, scrivendo del codice VBA a fronte dell'evento "Su corrente"
della maschera, ad ogni cambio di record puoi decidere lo stato che vuoi che
assumano le tue opzioni.
5) Ai due gruppi di opzioni hai assegnato il valore predefinito 1, infatti
quando inserisci un nuovo record, trovi selezionate le prime opzioni di ogni
gruppo: agendo sul valore predefinito, puoi cambiare il comportamento di
Access all'inserimento di un nuovo record.
6) A questa domanda puoi rispondere solo tu; dal DB di esempio non emerge
cosa intendi per "refresh", prova a spiegarlo in "parole povere"; mi auguro
che quanto ho scritto al punto 2 e 5 ti aiuti comunque a risolvere il
problema.

Poichè il codice VBA che hai usato ha tanto l'aria di essere copiato da un
esempio (difficilmente un neofita adopera With e i commenti in inglese),
cerca di capire in che contesto veniva usato e valuta se c'è identità con il
tuo caso.

Roberto


Sib

unread,
Aug 30, 2000, 3:00:00 AM8/30/00
to

""Francesco S."" <taka...@hotmail.com> ha scritto nel messaggio
news:F248VjCRGryWt...@hotmail.com...
> Per ovviare a qualsiasi altro dubbio ho preferito allegarvi il database
> Access relativo via e-mail. Un esempio concreto vale piů di mille parole!

Anch'io, come Roberto ho ricevuto il db, e prima di tutto č bene precisare
che questo non č un buon comportamento.
Senza voler apparire scortese voglio specificare che cestinero' qualsiasi
allegato che mi pervenga senza esclusioni.
Per questo specifico caso, dato che per questa volta e' andata cosi',
(premesso che per fortuna di Francesco avevo cinque minuti in piu' da
perdere) ho scritto a Francesco quanto segue:

Rivediti il db (revisionato e corretto).
Noterai che ho fatto quello che ti avevo suggerito di fare sul ng:
1 usare gli eventi AfterUpdate (DOPO aggiornamento e non prima)
2 Copiare tutte le istruzioni nell'evento current della form par fargli
ricontrollare tutti gli enable quando cambi record.

Infine io, in casi simili, uso Select Case invece di tutti quegli If, č piů
veloce e meglio comprensibile

Ciao, Sib

PS No more database in e-mail please.


Sib

unread,
Aug 30, 2000, 3:00:00 AM8/30/00
to

"Roberto dal portatile" dice
> a Sib che disse
Solo per precisare che non ho mai partecipato a una chat in tutta la mia
vita.
Non per cosa, ma non mi entusiasmano.

Ciao, Sib


Francesco S.

unread,
Aug 31, 2000, 3:00:00 AM8/31/00
to
Ringrazio pubblicamente entrambi (Sib & Roberto) per il preziosissimo aiuto
concessomi! Mi ritengo davvero fortunato nell'aver trovato delle persone
tanto gentili, che andando contro le "regole" (divieto di invio file), mi
hanno saputo dare una mano nel momento del bisogno! Grazie davvero, (anche a
nome di tutti i "neofiti" di Access!) ;D ...

Ciao,
Francesco


_________________________________________________________________________
Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com.

Share information about yourself, create your own public profile at
http://profiles.msn.com.


--
Posted from [204.90.182.2] by way of f227.law4.hotmail.com [216.33.149.227]

0 new messages