Newsgroup: it.comp.appl.access
Titolo: Estrazione dati da query con query

In una tabella ad un solo campo ho una seririe di record cosi composti:
\VmWare_Windows\VMware\Workstation\3.2.0.2230DAMN.zip
 la lunghezza del record varia da record a record
io devo estrarre la parte del file terminale ossia
3.2.0.2230DAMN.zip
ho provato in vari modi senza risultato in quanto anche questa parte è
variabile da record a record
io dovrei estrarre la parte compresa tra la parte destra estrema e "\"
grazie 

 ha scritto nel messaggio
news:1viwfqj46bie1$.1razgjcfw1gll.dlg@40tude.net...

Ciao Calimero,
Devi creare una funzione che prenda in input il campo intero e restituisca
la parte terminale che ti serve
Con I=InstrRev(Stringa, "\")  trovi la posizione dell'ultimo slash poi con
la funzione Mid(Stringa, I) estrai il pezzo che ti serve;
Non l'ho provata ma dovrebbe funzionare...
Public Function estrai(buf as string) as String
Dim i As integer
    Estrai = ""
    if not isnull(buf) then
        i = InStrRev(buf, "\")
        if i > 0 then
            Estrai=Mid(buf, I+1)
        end if
   end if
end function
Nella query la usi in questo modo Select Estrai([Campo1]) as nomefile From
Tabella1
Ciao
Cinzia

 > VmWare_WindowsVMwareWorkstation3.2.0.2230DAMN.zip




InStrRev() è disponibile solo da Access 2000 in poi. Se usi il 97 devi
scrivertela tu ma non è difficile.
Namor
-- 
namor at inwind punto it
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Cinzia
Ciao Cinzia,
grazie per l'aiuto, anche se mi sa che ho sbagliato ancora qualcosa:
Ho creato il modulo come ha detto tu (salvato come mudulo1 in automatico)
dalla tabella "Myd" composta con i campi "cd" e "file", dove file 
corrispondono i dati come avevi già visto:
\Aggionamenti Antivirus\agg mcafee\sdat4297.exe
\Aggionamenti Antivirus\agg mcafee\sdat4301.exe
\Aggionamenti Antivirus\agg norton\20031013-007-i32.exe
\Aggionamenti Antivirus\agg norton\20031103-006-i32.exe
\Browser\avant browser 8\Avant Browser, a tabbed browser with Flash Filter,
Popup Stopper\ablogo.gif
\Browser\avant browser 8\Avant Browser, a tabbed browser with Flash Filter,
Popup Stopper\adbanner.gif
Quindi ho creato una query così:
SELECT Myd.cd,Estrai([Myd.file]) as nomefile 
FROM Myd;
ma quando do l'esegui mi riporta la tabella originaria senza alcuna
modifica.
grazie anticipatamente per l'aiuto che puoi darmi 
Calimero

 Calimero
Ciao Calimero,
mi sembra tutto a posto
provo a "insegnarti" il debug di una funzione vediamo se riesci a scoprire
cosa c'č che non va!.
Allora, seguimi vai sul modulo1, posizionati sulla riga
 estrai = ""
 e premi F9 vedrai un bel puntone rosso di fianco alla riga.
Adesso chiudi la finestra di visual basic,  esegui la query e vedrai che ad
un certo punto verrai riportato nel modulo1 alla riga dove abbiamo messo
l'interuuzione. Premendo F8 eseguirai la funzione passo per passo cosě
potrai vedere che giro fa.
Durante l'esecuzione se  ti posizioni con il mouse su una variabile ad
esempio su I e ci rimani fermo per qualche secondo vedrai il suo valore e
potrai capire cosa c'č che non va.
Fammi sapere se scopri qualcosa!
Cinzia