Newsgroup: it.comp.appl.access
Titolo: problemi passaggio da una maschera a un'altra per mezzo pulsante

Ciao.
Il problema che mi affligge è il seguente:
Nel mio DB ho una tabella (TipoRicerca) con due colonne; nella prima
memorizzo nomi di maschere, nella seconda una descrizione (il tipo di
ricerca possibile).
Ho creato una maschera (MascheraRicerca) con all'interno una casella
combinata (TipoRicerca) ed un pulsante (btnContinua).
L'origine dati della casella combinata è la tabella TipoRicerca di cui
ho nascosto la prima colonna (larghezza 0).
Ora, io voglio che, una volta selezionata una voce dalla casella, la
pressione sul pulsante mi apra un'altra maschera e chiuda quella
attuale, per questo ho associato la seguente routine:
Private Sub btnContinue_Click()
    If Not IsNull(Me!TipoRicerca) Then
        DoCmd.OpenForm Me!TipoRicerca.Column(0)
        DoCmd.Close acForm, "MascheraRicerca"
    End If
End Sub
Tutto funziona come desidero, se non fosse che, non capisco perchè,
quando riapro MascheraRicerca mi accorgo che, al posto della
descrizione del tipo di ricerca corrispondente alla maschera che avevo
aperto (tramite il pulsante) mi compare il nome della maschera che ad
essa è associata, in pratica viene duplicato il contenuto della
colonna nascosta anche nella seconda e perdo la descrizione perchè la
cosa viene memorizzata anche nella mia tabella di origine...
Qualcuno mi può spiegare perchè questo succede e come porvi rimedio?
Grazie!
Daniele.

 ha scritto nel messaggio 
news:1167910988.6...@51g2000cwl.googlegroups.com...
Ciao.








Grazie!
Daniele.
[risposta]
Spero di aver capito.
Forse hai associato la casella combinata a qualche campo di tabella?
Ciao.
-- 
Sergio MAZZA 

 Sergio MAZZA
Eh già... (origine di controllo era impostato su TipoRicerca...)
una piccola distrazione di cui mi ero scordato completamente!
Grazie Sergio!
---
Un'altra domanda connessa a questo argomento...
A seconda del tipo di ricerca scelto ho bisogno di caselle di testo
diverse, ecc.
per questo ho pensato che il modo più semplice di gestire tutto questo
fosse quello di prevedere una maschera per ogni opzione...
ma... nel caso io volessi usare una sola maschera qualunque sia la
scelta da casella combinata, come passo le informazioni relative alla
scelta effettuata (la voce selezionata dall'elenco) e come posso
gestire diversamente ciascuna di esse utilizzando una maschera comune?
Se qualcuno sa come fare tutto con una sola maschera mi può fare
qualche esempio o anche indirizzarmi verso qualche esempio (forse non
ho cercato con i termini adatti ma con Google nn trovo...) in cui una
maschera si apre visualizzando controlli differenti a seconda della
scelta precedentemente fatta?
Qualche idea?
Grazie, Daniele.

 ha scritto nel messaggio 
news:1167927417.7...@42g2000cwt.googlegroups.com...
Un'altra domanda connessa a questo argomento...
A seconda del tipo di ricerca scelto ho bisogno di caselle di testo
diverse, ecc.
per questo ho pensato che il modo più semplice di gestire tutto questo
fosse quello di prevedere una maschera per ogni opzione...
ma... nel caso io volessi usare una sola maschera qualunque sia la
scelta da casella combinata, come passo le informazioni relative alla
scelta effettuata (la voce selezionata dall'elenco) e come posso
gestire diversamente ciascuna di esse utilizzando una maschera comune?
Se qualcuno sa come fare tutto con una sola maschera mi può fare
qualche esempio o anche indirizzarmi verso qualche esempio (forse non
ho cercato con i termini adatti ma con Google nn trovo...) in cui una
maschera si apre visualizzando controlli differenti a seconda della
scelta precedentemente fatta?
Qualche idea?
Grazie, Daniele.
[risposta]
Non capisco; se la ricerca deve essere fatta su una maschera associata 
sempre alla stessa base dati, non hai bisogno di fare più maschere per più 
tipi di ricerche.
Casomai crearti una maschera che ti permetta la scrittura di un filtro più 
complesso, con l'indicazione di più campi, più operatori e valori da 
cercare.
Se non è questo che ti serve fammi un esempio più dettagliato...
Ciao.
-- 
Sergio MAZZA 

 Sergio MAZZA
Te lo faccio subito:
alcuni esempi delle voci presenti nella casella combinata sono:
* ricerca per età (e per questa sto cercando di creare una query con
una colonna apposita dove calcolo l'età e poi la confronto... ma
questo e un altro discorso...)
* ricerca per luogo di residenza
* ecc. ecc.
ovviamente, una volta selezionata una voce, per come funziona
attualmente, si apre una maschera nuova appositamente disegnata per
poter definire i criteri di ricerca specifici...
Ad esempio, nel caso dell'età, ho previsto due caselle di testo in cui
posso inseirire il limite inferiore e superiore...
Ora è chiaro che, per ogni tipo di ricerca, i controlli presenti nel
form non saranno gli stessi perhcè i criteri specifici (chiamiamoli
così) che io intendo prevedere cambiano!
Attualmente ho una maschera per ogni tipologia di ricerca ma ... a
questo punto riscrivo la domanda cercando di spiegarmi meglio...
nel caso io volessi usare una sola (nuova) maschera (quella dove andro'
ad inserire i miei controlli per definire i criteri specifici... forse
questo non l'avevo chiarito) qualunque sia la
scelta da casella combinata, come passo le informazioni relative alla
scelta effettuata (la voce selezionata dall'elenco) - in modo che
"arrivino" alla nuova maschera - e come posso gestire diversamente
ciascuna scelta utilizzando una maschera comune (la stessa per ogni
scelta)?
Potete farmi vedere qualche esempio (o se potete indirizzarmi verso
qualche esempio...) in cui una maschera si apre visualizzando controlli
differenti a seconda della scelta precedentemente fatta (nella maschera
precedente)?
Ciao, grazie.
Daniele.

 ha scritto nel messaggio 
news:1167930313.0...@s80g2000cwa.googlegroups.com...
Te lo faccio subito:





Ciao, grazie.
Daniele.
[risposta]
Fermo restando le possibili alternative.
Potresti discriminare tra i controlli impostando dei diversi tag 
raggruppandoli.
Per esempio la "ricerca per età" potrebbe avere il tag "ricEta"; e potresti 
passare, alla maschera di ricerca, il tag scelto tramite il parametro 
OpenArgs del metodo OpenForm;
es.
DoCmd.OpenForm "MascheraDiRicerca",,,,,,me!nomeCasellaCombinata
Nell'evento "su apertura" della form MascheraDiRicerca inserisci il codice 
che legge il parametro OpenArgs e attiva la visualizzazione per tutti i 
controlli che hanno il tag = a quello passato nell'OpenArgs;
es.
if Me.OpenArgs <> "" then
    dim oCtrl as Control
    for each oCtrl in Me.Controls
        if oCtrl.tag = Me.OpenArgs then
            oCtrl.Visible = true
        end if
    next
    set oCtrl = nothing
end if
Poi sul sito comune (
www.sitocomune.com
 - Sezione Forms) trovi degli 
esempi...
Ciao.
-- 
Sergio MAZZA 

 Sergio MAZZA
Scusa se ti tartasso di domande ma... sai com'è...
Aspetto di sentirti di nuovo!
 CIAO, grazie.
Daniele.
P.S.
Se pensi che qualche delucidazione fra quelle che ti ho chiesto ormai
esuli troppo dal topic e sia il caso di aprire un altro thread apposta
dimmelo...  non è un problema...
Di nuovo ciao.

 ha scritto nel messaggio 
news:1167935927.7...@q40g2000cwq.googlegroups.com...
Ecco, vedi, questo mi mancava... non sapevo come passare dei dati da
maschera a maschera!
Immagino esista qualcosa di simile anche nel caso di query o report...
saresti cosi' gentile da farmi qualche esempio (o anche qualche
riferimento al sito comune se vuoi... io non saprei con quali termini
cercare...)?
[risposta]
Il parametro OpenArgs, per il metodo OpenForm, c'è in tutte le versioni; 
mentre per il metodo OpenReport ha il parametro dalla versione XP in poi. 
Quindi in caso di versioni precedenti alla XP devi utilizzare un altro 
metodo; una volta aperto il report o scrivi sul controllo: 
Reports!nomeReport!nomeControllo, oppure, tramite evento "su apertura", 
leggi il valore scritto nel controllo della form: 
Forms!nomeForm!nomeControllo.
Ancora intuitivamente...
*) Immagino che nessuno mi vieta di invertire la logica del tuo ciclo e
far scomparire tutti i controlli che non hanno il tag desiderato
(anziche' far comparire quelli che ce l'hanno)... vero?
[risposta]
Certo.
Pero' forse e' il caso perche', all'apertura della maschera, si vedrebbero 
tutti i
controlli, desiderati e non, pochi secondi prima della scomparisa di
questi ultimi perciò mi conviene disegnare bene la maschera e poi
rendere tutti i controlli invisibili... cosa ne pensi, mi sbaglio?
[risposta]
Dovresti, per default, rendere invisibili tutti i controlli; il tuo codice 
li rende visibili.
*) Sempre utilizzando la tecnica di memorizzare le informazioni nei
tag, potrei far comparire i controlli magicamente sotto la casella
combinata al cambio della voce selezionata senza chiudere/aprire altre
maschere... vero?
In caso, l'evento della casella combinata in cui è preferibile
inserire la routine è "su modifica" o un altro?
[risposta]
L'evento che ritengo sia pi adatto è "dopo aggiornamento"; ossia dopo che 
hai scelto il valore nella casella combinata.
Avevo già provato a guardare ma non ne avevo visti... avevo cercato
"casella combinata" nella pagina... ma non mi ricordo di aver notato
nulla che potesse fare al caso mio, quali devo guardare?
[risposta]
Sbagli a cercare le informazioni; devi cercare il tema (ricerca) non il nome 
del controllo.
3.122  [NEW]  Database di esempio delle due FAQ relative a Come creare un 
controllo di ricerca
3.114  [UPD]  Come creare un controllo di ricerca (3)
3.71 Form che ricerca in tutti i controlli di un'altra form a maschere 
continue
3.68 Come creare un controllo di ricerca (2)
3.49 Maschera di ricerca record.
3.29  [UPD]  Come creare un controllo di ricerca.
Scusa se ti tartasso di domande ma... sai com'è...
[risposta]
No; com'é?
Aspetto di sentirti di nuovo!
 CIAO, grazie.
Daniele.
P.S.
Se pensi che qualche delucidazione fra quelle che ti ho chiesto ormai
esuli troppo dal topic e sia il caso di aprire un altro thread apposta
dimmelo...  non è un problema...
Di nuovo ciao.
[risposta]
Beh! Fermiamoci qui.
Fai mente locale su quanto ti ho scritto e poi, se ti servono di altre 
informazioni, scrivi un nuovo messaggio...
Ciao.
-- 
Sergio MAZZA 

 Sergio MAZZA
Ciao e grazie ancora.
Daniele.

 ha scritto nel messaggio news:1168014762.3...@51g2000cwl.googlegroups.com...
Semplice: per lo sviluppo di applicazioni sono abituato ad avere a che
fare con altri database (in cui l'interfaccia la creo io di sana pianta
mediante forms html) quindi non sono totalmente digiuno (in piu' ho
masticato un po di vb in passato... poco ma l'ho fatto)... vorrei fare
subito tante cose ma il non conoscere tante funzioni mi blocca e mi
rende impaziente... tutto qui!
No, grazie, va bene così, sei stato gentilissimo!
Se avrò bisogno di qualche altra dritta mi farò sentire con un altro
thread...
Dopo l'ultimo messagio che ti ho scritto, mi sono messo a sperimentare
e rivoluzionare quello che avevo già creato... sto iniziando a capire
e sto riuscendo ad ottenere quello che desidero (a efficacia ci
siamo)... certo l'ardente curiosià di sapere se ci sono modi migliori
(+eleganti +efficienti) per ottenere lo stesso effetto mi accompagna
sempre ma penso che, più capisco come funzionano le cose, più sarò
in grado di snellire le mie applicazioni o renderle più potenti...
[risposta]
Daniele scusa ma la mia era solo una battuta ironica, humor di bassa lega; ma ho apprezzato la tua voglia di imparare...
Ciao e grazie ancora.
Daniele.
[risposta]
Non farti scrupoli a chiedere...
Ciao.
-- 
Sergio MAZZA