Newsgroup: it.comp.appl.access
Titolo: Estrarre numeri

Salve a TUTTI
dovrei creare un sorta di elenco di articoli, nella fattispecie si tratta di
cuscinetti, dalla tabella che ho a disposizione, le sigle numeriche dei
cuscinetti sono talvolta precedute e seguite da del testo, faccio un
esempio:
Cuscinetto a sfere NJ 2210 C3 per... eccetera, vorrei ottenere in un nuovo
campo 2210
Cuscinetto radiale 6210 DDU per eccetera, vorrei ottenere in un nuovo campo
6210
In buona sostanza con una query vorrei riuscire ad estrarre il primo numero,
in modo poi da ordinare il campo ed ottenere cosě un report di stampa
organico alle mie esigenze. In Excel mi ha suggerito una soluzione tramite
codice VBA, che francamente funziona, io perň non conosco il linguaggio, e
vorrei rimanere in Access, pensate sia possibile?
Grazie a TUTTI e Buona Pasqua
Fabio

 ha scritto nel messaggio
news:qw90g.84069$PR2.1...@twister2.libero.it...

Ciao Fabio,
se la funzione che ti hanno suggerito nell'Ng di excel funziona, allora
inseriscila in un modulo BAS e poi la richiami dalla tua query.
Ad esempio mettendo in una nuova colonna ...
----
CodNum: Val(ExtractNumber([CampoCodiceArt]))
----
a cui imposterai l'ordinamento crescente.
Ciao
-- 
Giorgio Rancati
[Office Access MVP]

 wrote in message 
news:qw90g.84069$PR2.1...@twister2.libero.it...

Prova a vedere se ti č utile questa funzione:
nella query la userai es cosě:
DatoEstratto: EstraiNumeri([Nomecampocuscinetto])
diversamente puoi risolvere con le funzioni left, mid, right vedi help
http://tinyurl.com/l898e
o
www.sitocomune.com
 

 Fabio
Ti rifilo la stessa minestra già condita in Excel, convertita
in Funzione.
Mettila in un modulo ed usala nella query per ottenere
il primo set numerico di una stringa.
===============================
Public Function NumS(S As String) As String
Dim i As Long
For i = 1 To Len(S)
    If IsNumeric(Mid(S, i, 1)) Then
        NumS = NumS & Mid(S, i, 1)
    ElseIf NumS <> "" Then
        Exit For
    End If
Next
End Function
===================================
Bruno 

 ha scritto nel messaggio
news:44416bd4$0$29723$4faf...@reader2.news.tin.it...

Giorgio, Marco e Bruno,
Grazie di nuovo a TUTTI, mi metto immediatamente al lavoro, chiedo scusa a
Bruno che mi ha sopportato per due volte consecutive, farò tesoro del fatto
che il codice funziona in entrambe le applicazioni.
Di nuovo Buona Pasqua
Fabio


Ancora uno scoglio, per me!
Il codice Funziona, dove però non trova numeri mi restituisce La query mi
restituisce #Errore, io vorrei che lasciasse vuoto, ho provato a bypassare
il problema come si fa in Excel con la funzione IF(Iserror...) ma non ci
riesco, penso vada inserita nel codice, ma non so come. Chiedo ancora un
aiuto.
Grazie Fabio

 Grazie Fabio
La funzione restituisce stringa nulla se non trova caratteri numerici;
inserita in una query per generare un nuovo campo dove tu abbia:
F1                F2: NumS([F1])
-------------------------------
SD 425E      425
ABCDE       (stringa nulla)
funziona ancora regolarmente.
Penso allora tu ne stia usando il risultato per compiere operazioni
matematiche.  Nel qual caso dovresti più convenientemente definire
il Data Type della funzione.
Oppure eliminare l'ultimo As String da:
Public Function NumS(S As String)   < As String >
Ciao
Bruno

 Bruno
Ho sbagliato a formulare la domanda, dovevo dire dovevo dire dove non trova
dati e non dove non trova numeri, cmq ho poi risolto usando nella query
"nz".
tutto a posto... per ora.
Grazie a TUTTI ancora, conto su di Voi per il futuro, sperando di non cadere
mai sul banale.
Fabio