Newsgroup: it.comp.appl.access
Titolo: Re: casella combinata  con più valori

 grazie
La scelta multipla č possibile solo nelle caselle di riepologo e i valori
li salvi come ti ha detto Sergio, a meno che tu non intenda lo scegliere
piů valori uno dopo l'altro da una casella combinata nel qual caso ti
basta leggere il valore della casella nell'evento dopo aggiornamento ed
accodarlo ad una variabile globale o static.
Namor
-- 
namor at inwind punto it
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 wrote in message
news:chrj12$g7h$1...@news.newsland.it...

Quello che intendevo io era:
se la lista č composta da es 5 "valori" rosso, verde, giallo, blu, arancio
poter salvare nel campo di un'altra tabella o il singolo valore es rosso (
facile) o una stringa  separata da virgola o altro simbolo es verde, blu
oppure giallo, arancio, verde, rosso, blu ...
ciao

 ciao
Non hai ancora chiarito se usi una casella combinata (elenco a discesa) o
di riepilogo che visualizza sempre l'elenco aperto.
Penso che sia una listbox (casella di riepilogo), allora fai come ti ha
detto Sergio. Puoi usare l'evento before_update (prima di aggiornare)
della maschera se vuoi salvare la stringa nel campo della tabella, o il
click di un pulsante.


 wrote in message
news:chrsj1$vhu$1...@news.newsland.it...

Quello che desideravo č poterlo fare con una casella combinata.
ciao
grazie

 grazie
Allora ti avevo già risposto nel mio primo msg.
Ti faccio un esempio da mettere su dopoaggiornamento della combo.
  static output as string
  output=output & me.casellacombinata & ", "
  msgbox output
Devi anche trovare un evento per svuotare la variabile output. Non so
com'è strutturato il tuo db, ma forse ti va bene su form_current.



Le tue spegazioni sono ottime ma il mio livello con il codice è molto basso.
Nel database la tabella ha diverse relazioni molti a uno  ed è diviso in be
fe.
 La machera si chiama mascera1 , su corrente sono visibili o non visibili
delle foto e ho aggiunto (non so se va bene per svuotare la variabile  o se
per variabile intendi il msgbox )
 Dim mascera1 As Form
 Set mascera1= Nothing
la casella si chiama casellacombinata1 e dopo aggionamento ho inserito il
codice
   static output as string
  output=output & me.casellacombinata1 & ", "
  msgbox output
il campo tabella è campo1.
Ora, quando chicco sul nenù a discesa compare un popup microsoft office
access con il testo da me scelto seguito da  "," e chiccando su ok viene
salvato nel campo1. Problema : se ripeto l'operazione  più volte nel popup
vedo la frase esatta che vorrei salvare ma nel campo1 tabella viene salvato
solo l'ultimo valore. Chiedo si deve sempre passare per il popup, funziona
nel modo descritto  o io non ho capito un accidenti ?
La stringa che compare ripetendo i passsaggi è cio che desideravo.
Ringrazio per la disponibilità e pazienza.
ciao


Se ho capito bene, vuoi salvare dei valori (uno o piů) scelti da una casella di riepilogo (da una combinata non č possibile)?ů
Se č cosě riadatta questo codice:
If Me!nomeCasella.ItemsSelected.Count > 0 Then
    Dim a, datiScelti as string
    For Each a In Me!nomeCasella.ItemsSelected
        datiScelti = Me!nomeCasella.ItemData(a) & " " & datiScelti
    Next
    MsgBox datiScelti
Else
    MsgBox "Nessun elemento selezionato."
End If
in sostanza si tratta di leggere tutti i valori della casella di riepilogo e vedere quali sono selezionati...
Ciao.
-- 
Sergio MAZZA

 ciao
Il msgbox era solo per mostrarti come funziona, perchè non sapevo dove
volevi salvare i valori.
Se li salvi in un campo non ti serve neanche la variabile. Puoi sostituire
il tutto con un'unica istruzione:
me.campo1 = me.campo1 & iif(len(me.campo1)=0;"";", ") & _
            me.casellacombinata1 


 wrote in message
news:chuai6$1ks$1...@news.newsland.it...

I cambiamenti proposti sono:
me.campo1 = me.campo1 & iif(len(me.campo1)=0,"",", ") & _
            me.casellacombinata1
Come si usa  ?, nel senso che l'ho provata negli eventi della casella
combinata e o salva solo la scelta fatta o salva due copie della stessa
scelta senza comporre più la frase come era possibile con il msgbox output.
Serve un requery ?
ciao grazie

 ciao grazie
Lo metti nell'afterupdate della casella combinata.
Devi aggiungere anche un pulsante per azzerare il campo: me.campo1=null
sennò non hai modo di svuotarlo per sostituirne il contenuto.
Namor


Salva un doppio valore ma non costruisce una "frase".
tabella2
id campo2
1 giallo
2 rosso
3 blu
tabella 1
id campo1    campo...
1
2
3
maschera1 su tabella 1
id campo1 campo.. pulsante1 casellacombinata1
pulsante1 on click  me.campo1 = null
casellacombinata1  origine dati tabella2
AfterUpdate()
Me.campo1  = Me.campo1  & IIf(Len(Me.campo1  = 0, "", ", ") & _
Me.CasellaCombinata1
valori salvati
blu, blu
giallo, giallo
rosso, rosso
su click pulsante1 nessun valore  ovvero campo nullo e su scelta blu, blu
etc
valori da salvare in tabella1
id campo1
1 blu
2 giallo, rosso, blu
3 rosso, blu
 Desidero costruire  una stringa senza doverla scivere poichè le
conbinazioni sono infinite e la scelta viene fatta su un centinaio di
record, non devo sostituire il contenuto ma aggiungere all'esistente
qualcosa d'altro.
grazie
ps in bocca al lupo per il tuo piede.

[cut]
Risolto.
Si può usare anche un'istruzione tipo:
Me.Campo1 = IIf(Not IsNull(Me.Campo1), Me.Campo1 & ",  " & _
Me.CasellaCombinata1, Me.CasellaCombinata1)
grazie
ciao