Newsgroup: it.comp.appl.access
Titolo: duplicato parole casella di testo

ho un campo testo (testo) risultato dell'unione di più campi testo (testo1 , testo 2 , testo3 )
 
esempio 
testo1 = 1 2 3
testo2 = 2 4 5
testo3 = 1 4 6
quindi testo = 1 2 3 2 4 5 1 4 6  come vedete i numeri 1 2 4 sono ripetuti
vorrei che testo mi dia come risultato
testo = 1 2 3 4 5 6 
 
ovviamente ho semplificato i valori... quelli reali sono composti da numeri e lettere tipo IT001E123456789 ..... eccc...
 
spero sia di semplice risoluzione.....
 
GRAZIE!!!!


se sai l'abc del vba
creati una variabile stringa vuota esempio newtesto
fai un ciclo per leggere un carattere alla volta il tuo testo...
se il carattere non è presente in newtesto (usa la funzione instr per 
verificarlo) aggiungi tale carattere alla stringa newtesto
alla fine del ciclo avrai in newtesto  testo senza caratteri duplicati
 
ciao
BFS

...NON SO SCRIVERE IN VBA.... SO FARE POCHISSIME COSE...QUESTA NO!!!!
se hai un minuto di tempo puoi scrivermela tu... io poi modificherò i campi con il loro veri nomi e ti farò sapere se funziona


>
 
Public Function TogliDoppi(testo As String)
Dim i As Integer
Dim newtesto As String
newtesto = ""
For i = 1 To Len(testo)
     If InStr(1, newtesto, Left(testo, 1)) = 0 Then
         newtesto = newtesto & Left(testo, 1)
     End If
     testo = Right(testo, Len(testo) - 1)
 
Next i
 
TogliDoppi = newtesto
End Function
 
 
richiama la funzione passandogli il tuo testo da "depurare" esempio:
toglidoppi "afjdshfhfjdyhfuyfuuuuuu4545454"
la funzione ti restituisce: "afjdshyu45"
 
ciao
BFS
 
 
 
 
 

 > se hai un minuto di tempo puoi scrivermela tu... io poi modificherò i campi con il loro veri nomi e ti farò sapere se funziona



 
 
aggiungi quelle due righe al codice e dimmi cosa ti visualizzano le due 
msgbox..
il codice che ti ho scritto � corretto e testato
 
ciao
BFS
 

 BFS

 non mi dice niente
 
allora vuol dire che neppure avvii la funzione
 
devi inserire il codice nell'evento dopo aggiornamento e passargli come 
parametro il valore iniziale
 
ecco cosa restituisce a me
43057196
625130
7632948
430578
etc etc
 
 
ciao
BFS
 

" devi inserire il codice nell'evento dopo aggiornamento e passargli come 
parametro il valore iniziale  "
mi dici il codice che devo scrivere per far avviare la funzione? lo metto dopo aggiornamento nella casella di testo da modificare?, come gli faccio a passare il codice iniziale? 



 
 
sulla proprietą "dopo aggiornamento" della casella seleziona "routine 
evento" clicca sui tre puntini per aprire il codice vba
 
e incollaci dentro
 
me.tuacaselladitesto=TogliDoppi(me.nometuacaselladitesto)
 
 
ciao
 
 
 

 sulla proprietà "dopo aggiornamento" della casella seleziona "routine 



 
Me.riepilogo_n_cliente = TogliDoppi(me.riepilogo_n_cliente)
 
hai perso un pezzo per strada
BFS

 Prevista variabile o runtime  e non modulo
 
http://it.tinypic.com/r/90of8j/8
 
 
bfs
 

NO NO... HO PROVATO IN TUTTI E DUE MODI CON LO STESSO RISULTATO


tutto identico al tuo ma l'errore rimane!!!!
 
https://www.dropbox.com/s/0urei9lj9cd0v62/errore.pdf?m=
 



hai chiamato il modulo vba "toglidoppi"...e ovviamente non va bene
non può avere lo stesso nome della funzione.
rinominalo
ciao
 
 

ora funziona.... ma garda il risultato
era... 
430507001196 - 625616301 - 763294889 - 430507000845 - 938158428     00882609354277   IT001E76329488  938158428   938158428 00882609354277  938158428 999114921   999114921   999114921 IT001E76329488  763294889 IT001E763294889  999114921  
ora...
43057196 -28ITE


praticamente non cerca i duplicati tra due spazi o tra due " - " ma tra tutti i numeri!!!! questo non va bene!!!!infatti provando su un altro utente modifica 790771575
in
79015


 praticamente non cerca i duplicati tra due spazi o tra due " - " ma tra tutti i numeri!!!!
 
non hai mai scritto questa cosa
 
la tua domanda era "ho un campo testo (testo) risultato dell'unione di 
pių campi testo (testo1 , testo 2 , testo3 )
 
esempio
testo1 = 1 2 3
testo2 = 2 4 5
testo3 = 1 4 6
quindi testo = 1 2 3 2 4 5 1 4 6  come vedete i numeri 1 2 4 sono ripetuti
vorrei che testo mi dia come risultato
testo = 1 2 3 4 5 6
 
ovviamente ho semplificato i valori... quelli reali sono composti da 
numeri e lettere tipo IT001E123456789 ..... eccc...
 
spero sia di semplice risoluzione.....
 
GRAZIE!!!!"
 
 
non hai mai parlato di spazi e trattini
ciao
 

 più campi testo (testo1 , testo 2 , testo3 )



 
 
certo che si può fare...si fanno software per andare su marte, 
figuriamoci per fare quello che chiedi.
I strumenti per arrivarci li hai tutti ora.
ciao
BFS
 

Ti ringrazio per l'aiuto che mi hai dato, per la disponibilità e velocità con la quale hai risposto sempre e mi spiace per il disguido che ovviamente scrivendo e non vedendo le cose è molto probabile che ci siano questi disguidi... non so da dove iniziare... se puoi continuare ad aiutarmi ti ringrazio altrimenti grazie lo stesso per il tempo che mi hai dedicato. Ciao


>
 
non voglio fare il saputello...e non voglio insegnare niente a nessuno
 
ma su quelle poche righe di codice che ti ho scritto hai a disposizione 
il modo per scorrere carattere per carattere una stringa
hai una funzione instr che ti permette di controllare in che punto č un 
certo carattere (usala per capire dove sono - e spazzi)
hai la funzione left e la funzione right che ti permette di leggere 
parte della stringa da destra o da sinistra (e quindi troncarla per 
ottenere sottostringhe)
hai len per sapere quanto una stringa č lunga...
hai tutto!
 
prova a pensare a come risolveresti il problema senza conoscere il 
codice vba
traduci la tua soluzione con quello che sai fare ora in vba
 
ad avere la cosi detta "pappa pronta", tu non capisci neppure cosa stai 
facendo se non un copia incolla e non imparerai mai niente e avrai 
sempre bisogno di qualcuno per ogni minima modifica.
 
per dubbi o domande precise poi qui c'č sempre chi da una mano
ciao
BFS