Newsgroup: it.comp.appl.access
Titolo: Estrarre da record un numero di cinque cifre

Ciao a tutti , è possibile estrarre da un record solo un valore
numerico formato da cinque cifre? Es: Il martello è il numero 12345 ed
è da carpentiere, vorrei estrarre solo il numero 12345. ciao ciao

 ed č da carpentiere, vorrei estrarre solo il numero 12345.
Devi essere piů chiaro su cos'č "martello". Un campo in una tabella?
E cos'č "carpentiere"? Un valore in un altro campo della tabella?
Cosa intendi con "estrarre"?
Cosa vuoi fare con il valore e dove?
Un'espressione, un codice, in una maschera, un report, query...?
In genere ci sono diversi metodi come DLookUp (vedi <F1>)
o un recordset per prendere dati da tabelle.
-- 
Ciao
Karl
*********
Access FAQ: 
www.donkarl.com/it
 


(risposta)
"Il martello è il numero 12345 ed è da carpentiere" è un record di
esempio che potrebbe essete "tubo dal diametro di 20 cm ecc. ecc.,
vorrei in ogni record della tabella poter estrarre , cioe' isolare,
solo il numero di cinque cifre che non è altro che il codice
dell'oggetto. Il valore vorrei poterlo inserire in un altro campo
della stessa tabella . ciao

 è da carpentiere, vorrei estrarre solo il numero 12345. ciao ciao
con una funzione come questa se "Il martello è il numero 12345 ed è da 
carpentiere" è la stringa da cui vuoi estrarre il numero:
Function numeri()
Dim i As Integer
Dim vNum, vMid
For i = 1 To Len("Il martello è il numero 12345 ed è da carpentiere")
    vMid = Mid("Il martello è il numero 12345 ed è da carpentiere", i, 1)
   If IsNumeric(vMid) Then
      vNum = vNum & vMid
   End If
Next i
Debug.Print vNum
End Function
-- 
Ciao
Geppo 

 End Function
Per solo estrarre numeri con 5 cifre manca ancora una prova
con Len (o un'espressione regolare):
Function numeri()
Dim i As Long
Dim vNum, vMid
For i = 1 To Len("Il martello è il numero 12345 ed è da carpentiere")
    vMid = Mid("Il martello è il numero 12345 ed è da carpentiere", i, 1)
    If IsNumeric(vMid) Then
        vNum = vNum & vMid
    Else
        If Len(vNum) = 5 Then
            numeri = vNum
            Exit For
        Else
            vNum = Null
        End If
    End If
Next i
Debug.Print numeri
End Function


 della stessa tabella .
Vedi la risposta di Geppo.


grazie Karl e Geppo per le risposte mi sono state di aiuto. Ho risolto
con questa funzione:
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
La soluzione di geppo era altrettanto funzionale e quindi vi ringrazio
per l'interessamento e l'aiuto. ciao ciao

 ha scritto nel messaggio 
news:8b5tso...@mid.individual.net...

Certo Karl hai ragione, io ho dato per scontato che gli unici numeri 
presenti fossero quelli necessari.
-- 
Ciao
Geppo
 

Scusate se riprendo il post, la funzione:
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
estrae si il numero che mi interessa ma se il campo (perche' di campo
si tratta, hai ragione karl ) fosse: "N°1 martello mat: 12345 ecc.
ecc." la funzione mi estrae solo il numero "1" in quanto intercetta i
primi numeri che trova, come si fa invece ad intercettare nel campo il
numero di matricola "sempre" formato da 5 numeri?
Ciao e grazie

 ...
Leggi il messaggio al quale hai risposto qui e prendi il
codice Geppo/Karl che si trova dentro.


 codice Geppo/Karl che si trova dentro.
(risposta)
Hai ragione Karl e scusa, il codice funziona ciao e grazie a te a Geppo




Buonasera, Scusate una domanda su questo vecchio post.
 
Dato il caso in cui nel campo in questione vi siano più sequenze di cinque cifre, come potrei fare ad estrarle tutte? (ad esempio utilizzandole per andare a popolare un campo numerico di un'altra tabella)
 
Grazie in anticipo per l'aiuto!


Buonasera, chiedo scusa per una domanda su questo vecchio post. 
 
Dato il caso in cui, nel campo in questione, vi siano più sequenze di cinque cifre, come potrei fare ad estrarle tutte? (ad esempio utilizzandole per andare a popolare un campo numerico di un'altra tabella)? 
