Newsgroup: it.comp.appl.access
Titolo: Dividere il testo di un casella per popolare due caselle

Salve a tutti:
Ho 3 caselle di testo, una chiamata "Testo0" un'altra "Barre" e un'altra
ancora "Quantità"
In questo momento, io sparo su "Testo0" con il lettore codici a barre e
all'evento dopo aggiornamento, con imposta valore, vado a popolare la
casella di testo chiamata "Barre";
vorrei ottenere la seguente:
se digito su Testo0 per esempio il valore 2 seguito dal * e sparo con il
lettore sempre su Testo0, (dovrei ottenere qualcosa del genere
2*80000532111), il valore a sinistra dell'asterisco (ovvero2), sempre con
imposta valore, dovrebbe copiarsi su "Quantità", mentre il valore a destra
dell'asterisco (ovvero il codice a barre) dovrebbe copiarsi su "Barre"
Spero di essermi espresso correttamente. Grazie anticipatamente.
Giuseppe

<Giuseppe> ha scritto nel messaggio 
news:4957ca1a$0$1115$4faf...@reader4.news.tin.it...

Prova così:
dim I as byte
I = instr (Testo0,"*")
if I > 0 then
   Quantità = left$ (Testo0,I)
   Barre = mid$ (Testo0,I + 1)
else
   Barre = Testo0
end if
Ciao
Antonio

 ha scritto nel messaggio
news:4957ce68$0$11368$5fc...@news.tiscali.it...

ti ringrazio per il codice. Funziona tutto tranne "Quantità = left$
(Testo0,I)"  che mi restituisce Errore di run-time 2113. E' stato immesso un
valore non valido per il campo. Scusa se ti chiedo troppo, ma puoi aiutarmi?
Grazie. Ciao
Giuseppe

Salve a tutti:
Ho 3 caselle di testo, una chiamata "Testo0" un'altra "Barre" e un'altra
ancora "Quantità"
In questo momento, io sparo su "Testo0" con il lettore codici a barre e
all'evento dopo aggiornamento, con imposta valore, vado a popolare la
casella di testo chiamata "Barre";
vorrei ottenere la seguente:
se digito su Testo0 per esempio il valore 2 seguito dal * e sparo con il
lettore sempre su Testo0, (dovrei ottenere qualcosa del genere
2*80000532111), il valore a sinistra dell'asterisco (ovvero2), sempre con
imposta valore, dovrebbe copiarsi su "Quantità", mentre il valore a destra
dell'asterisco (ovvero il codice a barre) dovrebbe copiarsi su "Barre"
Ho provato così:
dim I as byte
I = instr (Testo0,"*")
if I > 0 then
   Quantità = left$ (Testo0,I)
   Barre = mid$ (Testo0,I + 1)
else
   Barre = Testo0
end if
Funziona tutto tranne "Quantità = left$
(Testo0,I)"  che mi restituisce Errore di run-time 2113. E' stato immesso un
valore non valido per il campo.
Sapete darmi indicazioni. Grazie anticipatamente.
Giuseppe

 Giuseppe
-- 
Ciao
Geppo 

"geppo" <c...@tin.it.invalid> ha scritto nel messaggio
news:2x86l.136349$Ca.2...@twister2.libero.it...

Grazie Geppo, adesso funziona e scusami per il doppio post.
Ciao
giuseppe

<Giuseppe> ha scritto nel messaggio
news:49590f16$0$845$4faf...@reader5.news.tin.it...

(alternativa)
dim myArray(2) as string
if instr(Testo0,"*") then
    myArray=Split(Me!Testo0,"*")
    Quantita = myArray(0)
    Barre = myArray(1)
else
    Barre = Me!Testo0
end if
Ciao.
-- 
Sergio MAZZA

<Giuseppe> ha scritto nel messaggio 
news:49589a12$0$1116$4faf...@reader1.news.tin.it...

Hai ragione. Deve essere left$ (Testo0,I-1) altrimenti porta dentro anche 
l'asterisco. Comunque, se sei alle prime armi, questa piccola routine 
potrebbe essere l'occasione per capire cosa avviene man mano che vengono 
eseguite le singole istruzioni. Metti all'inizio della routine un'istruzione 
"stop" e poi, in fase di esecuzione, vai avanti passo passo pigiando il 
tasto F8. Se ti posizioni col mouse sulla parola Quantità = ... vedrai che, 
prima di eseguire l'istruzione, forse ti dice che il campo è vuoto, mentre 
dopo averla eseguita avrà il valore 2 del tuo esempio.
Ciao
Antonio