Newsgroup: it.comp.appl.access
Titolo: Casella riepilogo: come aprire le maschere

Ciao, ho un altro post. Scusate.
Ho creato - manualmente - una casella di riepilogo che presenta quattro
voci:
Scheda 1
Scheda 2
Scheda 3
Scheda 4
quando l'utente seleziona la voce vorrei che andasse alla maschera
corripsondente. Ma non so a quale evento associare tale cosa e con quale
routine vb.
Inoltre voi come suggerite di fare:
1. selezionata la voce, andare alla maschera corrispondente cliccando su
un pulsante VAI
2. andare direttamente alla voce corrispondente con la sola selezione
della voce dalla casella di riepilogo?
Grazie.
P.S. Se è contro la netiquette postare così spesso fatemelo notare. Non
voglio sembrare un rompiscatole!
-- 
Non lo capiscono, i grandi, che il mondo dei giovani è un mondo fragile.
E' come un paese in guerra permanente, in cui tutti vogliono avere
ragione. E nel quale veniamo spesso lasciati da soli.
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 della voce dalla casella di riepilogo?
Lo standard nel Windows design include tutti e due metodi
ovvero 3 per eseguire un'azione in questa situazione:
- doppioclick su una riga
- scelta di una riga + premere il tasto invio
- scelta di una riga + cliccare su un pulsante
Per essere abbastanza nello standard IMO devi almeno impostare
due di questi tre metodi insieme.
Dev'essere consistente con il resto del tuo design nell'applicazione
e dipende anche delle consequenze dell'azione lanciato.
Se ti capisco bene "Scheda 1" ecc. sono nomi di maschere.
Allora p.e. al evento "su doppioclick" della casella puoi usare
il codice seguente:
If Not IsNull(Me!NomeDellaTuaCasella) Then
    DoCmd.OpenForm Me!NomeDellaTuaCasella.Value
End If
Poi puoi chiamare questa routine evento anche nei altri eventi
menzionato. p.e. nel codice dell'evento click del pulsante scrivi:
NomeDellaTuaCasella_DblClick False
o nel codice evento "Su tasto giù" della casella:
If KeyCode = vbKeyReturn Then NomeDellaTuaCasella_DblClick False
-- 
HTH
Karl
*********
Access FAQ: 
www.donkarl.com/it
 + iscriviti alla prima Conferenza
Italiana per Sviluppatori di Access (CISA 1), Arezzo, 4+5/6/2005

Private sub CasellaDiRiepilogo_Afterupdate()
Docmd.Openform Me.caselladiriepilogo.column(2)
End sub
Avvertenza: la sorgente dei dati della casella combinata deve avere due
colonne, una con la descrizione, la seconda con i nomi delle maschere
da aprire.
Suggerimento:
Tutto quello che ti ho detto oggi si trova nell' help in linea, non ci
sono cose turche.
Ti suggerisco di studiarti per bene gli help degli oggetti, dei metodi
e degli eventi. Io ho cominciato cosi' (prima conoscevo solo C++ e il
basic del C64), non ho mai toccato libri di access e ora riesco a fare
praticamente di tutto. 
cia'
Max

 End sub
Ciao Max, ho ricreato la casella combinata con le due colonne -
manualmente ne avevo inserita una sola.
Adesso ho appunto due colonne:
col1 con i numeri da 1 a 4
col2 con i nomi delle maschere scheda1, scheda2 ecc....
Quando apro l0'elenco però mi appaiono sia i numeri, che occupano molto
spazio, sia i nomi delle maschere. Io vorrei che in runtime la prima
colonna non fosse visibile.
Inoltre con il codice di cui sopra, quando seleziono una voce dall'elenco
ottengo un errore di runtime, in cui mi viene detto che devo fornire
l'argomento Nome Maschera.
Ecco i dettagli della casella:
Nome Casella: ccVaiA
Numero Colonne: 2
Tipo Origine Riga: Elenco Valori
Origine riga: 1;"Scheda1";2;"Scheda2";3;"Scheda3";4;"Scheda4"
Colonna associata: 2
Ed ecco il codice:
Private Sub ccVaiA_AfterUpdate()
     DoCmd.OpenForm Me.ccVaiA.Column(2)
End Sub
Dove sbaglio?
Grazie!


Colonna associata: 2
Il problema e' che tu stai passando alla docmd.openform un numero,
mentre lui si aspetta un testo.
Metti i numeri tra virgolette, in modo da qualificarli come testo.
Inoltre: ho sbagliato a darti la riga di comando. La colonna che ti
interessa e' la 0 (Mi aspettavo che tu inserissi i dati al contrario,
ovvero descrizione - nome maschera. Avrei comunque sbagliato, perche'
il conteggio delle colonne inizia da 0 e non da 1)
cia'
Max
(che oggi in ufficio non ha un granche' da fare...)

Scusa, non ho letto bene il tuo messaggio.
Allora, io generalmente faccio cosi':
le mie maschere hanno nomi abbastanza astrusi, tipo frm_update_chkUSR,
che non sono mica tanto belli da far vedere all'utente. QUindi preparo
una tabell del tipo:
Descrizione                            FormName
-----------------------------------------------------------------------
Gestione estensioni in uscita   frm_ext_out_R
Gestione patenti                     frm_pat
Poi faccio una combobox che ha come rowsource la mia tabella, e faccio
nascondere la seconda colonna, cosi' l'utente vede solo la descrizione.
Poi in afterupdate metto il codice che ti ho gia' passato, che va a
leggere la seconda colonna, che contiene il nome della form da aprire.
Se a te va bene invece che l'utente veda il nome della form, puoi
risparmiarti il caos e fare la tabella a una colonna sola per la
combobox, e poi aprire la form semplicemente con
docmd.openform me.ccVaiA
Altra osservazione: il valore della casella combinata e' quello
contenuto nella colonna indicata dalla proprieta' colonna associata,
quindi in realta' a me basterebbe fare la solita tabella, associare la
seconda colonna e poi aprire con openform me.casellacombinata
Poi in realta' uso column per maggior flessibilita' (ad esempio, lo
stesso descrittivo apre due maschere diverse a seconda del livello di
accesso dell'utente)
Cia'
Max