Newsgroup: it.comp.appl.access
Titolo: Prelevare elementi da una combo e sommarli in un campo testo.

Salve!
Scusate, ma nella descrizione dell'oggetto non mi è venuto in mente nulla di
più esplicativo.
In pratica ho creato un campo testo, poi tramite due combo collegate tra
loro prelevo tutte le diciture possibili e le immetto con un tasto di
comando nel campo testo creato dove l'utente può aggiungere o modificare ciò
che gli pare.
Il codice del tasto di comando è il seguente:
intervgenerico = Me!Cercatipo1.Column(1) & " " & Me!cercatipo2.Column(0)
Pensavo di avere terminato il lavoro! E invece no...
L'utente desidera che nel campo testo siano incluse tutte le selezioni senza
che vengano cancellate le precedenti.
Con il codice da me usato viene inclusa la prima selezione, accodata la
seconda, poi se nella prima combo seleziono di nuovo un'altra cosa e
nell'altra un'altra cosa ancora nel campo testo viene cancellato il
contenuto di prima e viene reimmesso il nuovo.
Come faccio ad evitare che nel campo testo non venga cancellato nulla?
Vorrei poter accodare qualsiasi cosa senza che le stringhe precedenti
vengano ripulite.
   Grazie ciao
      Rita

 
intervgenerico = " " & intervgenerico & Me!Cercatipo1.Column(1) & " " & 
Me!cercatipo2.Column(0)
se ho capito quello che chiedi e se intervgenerico e' il controllo su 
cui vuoi mettere il risultato
Ciao e prego
--
a.cara

 ha scritto nel messaggio
news:stOee.4986$%I2....@tornado.fastwebnet.it...

Ciao Alessandro,
sì scusami non ho specificato bene, è esatto, 'intergenerico' è il campo
testo in cui devono essere spostate, con un tasto di comando, tutte le
parole selezionate nelle due combo, senza cancellare le precedenti parole
spostate nel campo testo.
Funziona così: durante un intervento chirurgico possono essere effettuati
più interventi di vario genere ed il chirurgo deve poter selezionare tutte
le voci possibili nelle combo per poterle spostare nel campo testo,
ovviamente potrà aggiungere o modificare ciò che verrà spostato in modo da
personalizzare l'intero intervento.
Insomma, il tutto per risparmiare tempo.
                   Ciao grazie
                       Rita

 Me!cercatipo2.Column(0)
No, cosi' succede un casino che non finisce piu'... perche' seleziona la 
prima combo e accoda A, poi la seconda combo e accoda di nuova A! 
Quello corretto: 
intervgenerico=nz(intervgenerico) & iif(len(Intervgenerico)>0," ","") & 
Me.cercatipo1.column(1)
nell'afterupdate di cercatipo1, identica ma ovviamente con cercatipo2 
nell'afterupdate di cercatipo2.
cia'
MAx


perdonami ma quello che scrivi mi sembra la complicazione di un affare 
semplice.
Ovviamente dipende da dove mette l'istruzione.
Mi sembra di aver capito che lo fa attraverso un bottone o qualcosa di 
simile e quindi quello che ho scritto va bene ( e da come lo ha scritto 
Rita, peraltro)
Questa ["" & blablabla] serve proprio per gestire correttamente il Null 
iniziale senza scomodare ne Nz ne iif
se proprio vogliamo essre grezzi
1) " " & intervgenerico & Me!Cercatipo1.Column(1) & " " & 
me!cercatipo2.Column(0)
  questa lascia uno spazio iniziale
2)"" & intervgenerico & Me!Cercatipo1.Column(1) & " " & 
me!cercatipo2.Column(0) & " "
  questa lascia uno spazio finale che non si vede
3)"" & intervgenerico & Me!Cercatipo1.Column(1) & ": " & 
me!cercatipo2.Column(0) & " - "
questa fa un editing tenendo conto delle dipendenze
Tra l'altro con un po' di accortezza forse si puo' fare con listboxes a 
scelta multipla (se fosse come dici tu)
--
a.cara

                        Rita
ciao, potresti provavare in questo sistema, non è bellissimo ma funziona
perfettamente:
Private Sub CasellaCombinata10_AfterUpdate()
'Sposta il fuoco sulla casella con il dato da copiare
Me!CasellaCombinata10.SetFocus
'Copia alias CTRL+C
    DoCmd.RunCommand acCmdCopy
 
    ' Posizionati nella casella in cui vuoi incollare il dato
    '                  dopo avervi aggiunto un eventuale spazio
       If Nz(Me!utente, "") <> "" Then
            Me!utente = Me!utente & " " & vbCrLf
        End If
        Me!utente.SetFocus
        Me!utente.SelStart = Nz(Len(Me!utente), 0)
    ' Incolla, alias Ctrl+V
        DoCmd.RunCommand acCmdPaste
End Sub
con questo fa la funzione di copia incolla mettendo un a capo dopo ogni
stringa incollata. Devi naturalmente cambiare i dati con i tuoi e farlo per
tutte e due le caselle compinate. 
Fammi sapere.
Ciao
Sthepan

"Roccia Max De Poli" <rocc...@CIPPA.com> ha scritto nel messaggio
news:MPG.1ce5e0294...@nntpserver.tele2.it...

 Ciao Max, ho immesso il tuo codice e funziona tutto perfettamente, a dire
la verità ho provato tutte le soluzioni che mi avete scritto e vanno tutte
bene.
   Grazie mille
     Ciao Rita

 ha scritto nel messaggio
news:mZ%ee.138211$%I2.8...@tornado.fastwebnet.it...

Ciao Alessandro, come ho scritto a Max ho provato anche il tuo codice e
funziona tutto benissimo. Mi siete tutti di grande aiuto anche perchè le
soluzioni multiple aiutano a capire e ad imparare.
     Grazie mille
       Ciao Rita

 Sthepan
Ciao Stephan,
sono entrata per rispondere a Max e ad Alessandro e per dire loro il
risultato delle prove.
Ho trovato ora la tua email, per cui innanzitutto ti ringrazio per l'aiuto e
senz'altro proverň anche la tua soluzione.
     Di nuovo grazie
        Ciao Rita

 Sthepan
Ok Stephan, funziona tutto benissimo anche con il tuo codice, conserverň
anche il tuo codice per esigenze future.
  Grazie
   Ciao Rita

 scelta multipla (se fosse come dici tu)
Con un po' di accortezza si puo' fare tutto... siamo qui apposta, no? 
cia'
Max

"Roccia Max De Poli" <rocc...@CIPPA.com> ha scritto nel messaggio
news:MPG.1ce6d405a...@nntpserver.tele2.it...

Sì Max hai capito bene cosa voglio fare ed infatti posso farlo col tuo
codice così come posso farlo con gli altri.
Non ho problemi, ho risolto.
L'unica differenza che sussite tra le tre soluzioni che mi avete dato è che
ad esempio il codice di Stephan mi immette la parola scelta dalle combo ad
ogni inizio riga, cioè non accoda le parole l'una di fianco all'altra, però
certo ho conservato anche il suo codice perchè potrebbe nascere la
necessità, in seguito, di accodare i dati proprio ad inizio riga.


 necessità, in seguito, di accodare i dati proprio ad inizio riga.
quindi attestare ;<)
if lovoglioiniziale then
	intervgenerico = "" & Me!Cercatipo1.Column(1) & " " &
  	Me!cercatipo2.Column(0) & " " & intervgenerico
else
	intervgenerico = ""  & intervgenerico & Me!Cercatipo1.Column(1)
	 & " " & me!cercatipo2.Column(0) & " "
endif
li voglio una volta all'inizio e uno alla fine
aggiungere
lovoglioiniziale = not lovoglioiniziale
prima o dopo la if, la sostanza non cambia
;<)
e di questa che ne dici?
LIFO per cercatipo1
e FIFO per cercatipo2
intervgenerico = ""   & Me!Cercatipo1.Column(1) & intervgenerico
	 & " " & me!cercatipo2.Column(0) & " "
ari ;<)
--
a.cara

 a.cara
Accidenti ! Qui le soluzioni pullulano!
Proverņ anche questa Alessandro, grazie di nuovo.
  Ciao Rita