Newsgroup: it.comp.appl.access
Titolo: funzione left

salve a tutti,
ho la necessità di utilizzare la funzione left per crearmi un codice. Gli
dico di selezionare le prime 3 lettere del campo interessato se l'articolo
non esiste in una tabella anagrafica a parte; se non esiste però deve
confrontarmi questa stringa con altre già esistenti e quindi prendere altre
lettere.
Qui nasce il mio problema (di stavolta): devo prevedere una casistica che mi
va a prenedere le altre lettere per una ventina di posizioni o c'è un
istruzione che me lo automatizza fino alla fine della parola?
Vi prego di aiutarmi a ragionare, grazie
MAssimiliano

 ha scritto
nel messaggio news:ag1jmj$1pu$1...@atlantis.cu.mi.it...

velocemente:
nel caso che il codice a tre lettere esista già perchè non crei un codice di
due/tre lettere + un numero porgressivo ?
ma soprattutto perchè non usi i campi contatori e lasci fare al pc le
ricerche invece di impegolarti nei codici mnemonici ?
baibai

"il mago galbusera" <galb...@katamail.com.REMOVEME> ha scritto nel
messaggio news:ag1srm$qic$1...@fe2.cs.interbusiness.it...

ciao e grazie della risposta in realtà entrambe le domande possono essere
soddisfatte dalla stessa risposta: già dal codice io devo sapere di cosa si
tratta e poi questa è una parte del codice il resto verrà regolato dalle
rimanente descrizione: mi spiego meglio
tizio rosso sarà TIZ001
tizio blu sarà TIZ002
ecc.
quindi non posso anche nella definizione di tizio inserire un numero
ciao e grazie cmq
MAssimiliano

 MAssimiliano
Mi é venuta questa idea:
Imposta un query parametrico in cui la clausola di where é del tipo LIKE
"TIZ*". Questo ti ritorna tutto l'elenco dei TIZ che hai.
A questo punto prendi il "maggiore" con Dmax (perchè TIZZ009>TIZ001),
con la funzione "Right" stacchi le cifre, ed hai il tuo index da
incrementare ed applicare al TIZ successivo.
Spero non sia troppo confuso e ti sia di aiuto.
Gilberto
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 Spero non sia troppo confuso e ti sia di aiuto.
caro Gilberto grazie, ma la seconda parte del codice seppur diversamente era
già risolta era quella relativa alla prima che mi sta facendo penare
grazie cmq
MAssimiliano

Purtroppo non posso fare delle prove in questi giorni, quindi non ho
modo di spedirti del codice prototipo, ma ti posso suggerire questo:
Prendi le 3 prime lettere del nome, concatena un asterisco ('*') alla
fine (otterrai, per es. 'TIZ*') e assegna il risultato ad un campo di
appoggio (magari invisibile).
Per non scrivere l'SQL, usa la costruzione guidata per creare una query
con base nella tabella che ti interessa, imposta l'ordinamento crescente
per il campo dove hai il 'TIZ00?' ed imposta il criterio a
[Forms]![tuaForm]![campoAppoggio].
Visualizza il testo SQL. La clausola WHERE sarà del tipo 'WHERE
[tuoCampo]=[Forms]![tuaForm]![campo Appoggio]'.
A mano edita la clausola WHERE rimpiazzando il '=' con 'LIKE' -
diventerà 'WHERE [tuoCampo] LIKE [Forms]![tuaForm]![campoAppoggio]'
Salva la query.
A questo punto la puoi usare come origine dati della funzione Dmax
(Dmax("tuoCampo", "tuaQuery")), esattamente come fosse una tabella.
Mi sembra di capire che "da qui in poi" hai risolto il problema.
Spero ti aiuti.


 ha scritto nel messaggio
news:00cc0376ef97d1d805e...@mygate.mailgate.org...

grazie mille ci lavoro un pò su e ti faccio sapere
A ripostarci
MAssimiliano