Newsgroup: it.comp.appl.access
Titolo: Codice a barre parziale

Salve a tutti. Avrei un problemino che non riesco a inquadrare. In una
maschera ho un campo associato, che compilo leggendo un codice a barre
con il lettore, a cui ho impostato nelle proprietï¿œ la maschera di input
a ########\S# dove i primi 8 caratteri sono la lettura del codebar e
l'ultimo, quello dopo la "S", lo aggiungo io manualmente. Tutto funziona
se non che da ieri mi hanno cambiato la codifica del codebar aggiungendo
5 caratteri in testa. Questi caratteri non mi interessano e vorrei
leggere solamente gli ultimi 8 ma non ho capito come fare ...
Grazie in anticipo a chi mi vorrï¿œ suggerire una soluzione
 
 
-- 
Raido(R) (aka Odarg)
------------------------
immeritatamente_pll
 

 Grazie in anticipo a chi mi vorrï¿œ suggerire una soluzione
 
Guardati le funzione RIGHT(), LEFT(), MID() nell'Help.
 
Nel tuo caso:
RIGHT(<il campo che contiene la stringa>, 8)
 
Bruno
 
 

 
 
Grazie, fino a lï¿œ ci ero arrivato ma non so dove mettere la funzione right
nelle proprieta' del campo (non so nemmeno se ï¿œ una cosa logica...). Ho
provato quindi a creare un campo non associato nel quale metto il barcode
intero e poi con un tasto una macro aggiorna il campo che mi interessa
applicando la funzione right(). Cosï¿œ e' macchinoso ma funziona. Non e'
possibile evitare il campo non associato ?


 -- 
La funzione va usata al momento della lettura (dal lettore) o della 
scrittura nel controllo.
Ciao, Carlo 
 
 

 
Ehm, scusa la niubbaggine galattica ma in quale delle proprietï¿œ del campo devo
metterla ? Avendo il campo nel quale finisce la lettura del barcode CodeSAC e
l'origine dati CODE_S nella tabella, ho provato a mettere Right([CodeSAC];8)
sia nel "formato" che nel "valore predefinito" ma senza risultato e non mi
viene in mente un altro modo per intercettare la lettura in modo diretto. Devo
scrivere un evento "su modifica"  del campo ? In questo caso come posso
mantenere il formato ########\S# con l'ultimo carattere libero ?
Grazie


 possibile evitare il campo non associato ?
 
Non avevo capito.
Supponiamo che il campo che porta la stringa da accorciare si chiami 
XXX.
Crea una query che riporti i campi di tabella che ti servono, ivi 
incluso XXX, e alla medesima query aggiungi un campo YYY:RIGHT(XXX,8).
Userai poi quest'ultimo (YYY) nella tua form.
 
Bruno
 
 

 
Ok, quindi se ho ben capito ci vogliono sempre 2 campi per gestire la cosa,
uno per la lettura del barcode e l'altro per il codice tagliato, o sulla form
o su una query. Siccome prima della modifica io "popolavo" direttamente il
campo Code_S dal lettore di barcode, ora ho inserito nella form un campo non
associato nel quale "sparo" il barcode intero e poi una macro lo taglia, lo
inserisce in Code_S e vuota il campo non associato per non fare casini con i
record successivi. Quello che mi chiedevo era solamente se esiste un modo per
"sparare" direttamente il barcode in Code_S e dirgli "oh, piglami solo i
caratteri dall'8 al 13", ma a questo punto diventa accademia. 
Grazie e ciao


Raido (aka Odarg) brought next idea :

Non hai capito, o mi sono spiegato male.
Il RecordSource della form ï¿œ la tabella che contiene il campo Code_S?
La query che ti ho suggerito diventa il RecordSource della form.
Dovrai solo cambiare nella form il nome del controllo Code_S in YYY.
Tutto qui, niente macro, niente pulsanti.
 
Bruno