Newsgroup: it.comp.appl.access
Titolo: formattare 02/123 come 02/000123

E' possibile formattare un campo in questo modo?
Es. digito
02/123 e deve darmi 02/000123
oppure
01/1 .> 01/000001
testo o numero?

 ha scritto nel messaggio
news:tu76a.300107$AA2.11...@news2.tin.it...

Trovato!  Pero'  che pizza il VB
Public Function Zerizza(Stringa As String)
    Zerizza = Mid(Stringa, 1, 2) & Replace(Space(6 - Len(Trim(Mid(Stringa,
3, 6)))) & Trim(Mid(Stringa, 3, 6)), " ", "0")
End Function
mettendo come maschera 99/999999
Avete soluzioni migliori?

 nel messaggio news:c686a.300351$AA2.11...@news2.tin.it...

    Se "migliori" non lo so... Magari diverse...
' AC00+
'
Public Function Zerizza1( _
  ByVal Stringa As String _
) As String
  Dim a() As String
  a = Split(Stringa, "/")
  Zerizza1 _
    = Format$(a(0), "00") _
    & "/" _
    & Format$(a(1), "000000")
End Function
' AC
'
Public Function Zerizza2( _
  ByVal Stringa As String _
) As String
  Dim l As Long
  l = InStr(Stringa, "/")
  Zerizza2 _
    = Format$(Left$(Stringa, l - 1), "00") _
    & "/" _
    & Format$(Mid$(Stringa, l + 1), "000000")
End Function
' AC00+
'
Public Function Zerizza3( _
  ByVal Stringa As String _
, Optional ByVal Modello As String = "00/000000" _
, Optional ByVal Separatore As String = "/" _
) As String
  Dim s   As String
  Dim a() As String
  Dim l   As Long
  s = Modello
  a = Split(Stringa, Separatore)
  l = InStr(Modello, Separatore)
  Mid$(s, 1) = Format$(a(0), Left$(Modello, l - 1))
  Mid$(s, l + 1) = Format$(a(1), Mid$(Modello, l + 1))
  Zerizza3 = s
End Function
    Esempio:
        ?zerizza3("2+123","0000+00000","+")
        0002+00123
        ?zerizza3("2/123")
        02/000123
--
Ciao :o)
Maurizio
--------
?SPQR(C)
 X
--------

 ha scritto nel messaggio
news:b3bg42$1if07b$1...@ID-52090.news.dfncis.de...

Sono belline e moooooolto professionali solo che la mia č piu' corta
Cmq grazie per le dritte

 ha scritto nel messaggio
news:0uc6a.222984$0v.62...@news1.tin.it...

Ahha ma ci sono degli errorucci maliziosi che ti aspettano......
la prima:  indice non incluso nell'intervallo
la seconda:: errore runtime 5  - chiamata di routine o argomento non validi
la terza:  indice non incluso nell'intervallo (e cmq non c'entra niente con
quello che avevo messo in oggetto)
Onafets

 Cmq grazie per le dritte
    Corta? Cosa intendi con corta? Il numero dei caratteri? Non e' un
dato rilevante ma vediamo...
    La tua funzione:
123456789012345678901234567890123456789012=42
Public Function Zerizza(Stringa As String)
123456789012345678901234567890123456789012345678=48
Zerizza = Mid(Stringa, 1, 2) & Replace(Space(6 -
123456789012345678901234567890123456789012345678901=51
 Len(Trim(Mid(Stringa, 3, 6)))) & Trim(Mid(Stringa,
123456789012345678=18
 3, 6)), " ", "0")
42+48+51+18=159
    La mia funzione:
1234567890123456789012345678901234567890123456789012345678=58
Public Function Zerizza(ByVal Stringa As String) As String
12345678901234567=17
Dim a() As String
12345678901234567890123=23
a = Split(Stringa, "/")
1234567890123456789012345678901234567890123456789012345678901=61
Zerizza = Format$(a(0), "00") & "/" & Format$(a(1), "000000")
58+17+23+61=159
    Come vedi, la tua funzione e' lunga esattamente quanto la mia. :-)
    Vediamo invece quanto ti costa questo "risparmio" di caratteri e
quali "delitti" ;-) commetti:
        . la tua funzione restituisce un Variant. Perche'?
        . passi l'argomento ByRef. Perche'?
        . usi le funzioni stringa nella forma Variant:
          Mid, Trim, Space, invece di Mid$, Trim$, Space$
          Perche'?
        . la tua funzione fa uso di 8 funzioni, la mia di 3, ed
          ogni funzione ha un costo in termini di tempo di
          esecuzione. Un costo ben maggiore se usata nella
          forma Variant invece che String.


 niente con quello che avevo messo in oggetto)
    Da me girano. Abituati a dire in quale riga avvengono gli errori,
altrimenti fai del pettegolezzo, non programmazione. ;-)
    Per caso usi Access 97? E magari non hai notato le mie indicazioni:
AC00+ da leggere "Usare con Access 2000 o versioni superiori"?...


 ha scritto nel messaggio
news:b3bnbp$1ks82i$1...@ID-52090.news.dfncis.de...

Noooooooooo access 2002 ma lavora come il 2000

 ha scritto nel messaggio
news:b3bmrs$1jthb9$1...@ID-52090.news.dfncis.de...

Vuoi sapere perchč? PERCHE LA MIA FUNZIONA E LE TUE NO!

 ha scritto nel messaggio
news:yjd6a.223130$0v.62...@news1.tin.it...

E LA MIA PRENDE UNA SOLA RIGA

 Vuoi sapere perchč? PERCHE LA MIA FUNZIONA E LE TUE NO!
    :-)
    Ciao, bello. Buonanotte.


OFFESO?

Ricordati: si offende solo chia ha qualcosa da farsi perdonare.............
Ciao "professionista" buonanotte anche a te

 OFFESO?
    Io?... Ma ti pare... con tutti quei sorrisi che ho sparpagliato nei
miei post come puoi pensare una cosa del genere? Ho scritto "buonanotte"
perche' mi sembrava che i tuoi discorsi non ci stessero portando da
nessuna parte. Ancora un po' e te ne venivi fuori con "io ho la paletta
e il secchiello e tu no-o". :-))


 Ciao "professionista" buonanotte anche a te
    Ciao... (Come ti posso definire? Boh? Facciamo stringa nulla.)
    Ciao "", di nuovo buonanotte.


 ha scritto nel messaggio
news:b3bo2t$1ksksn$1...@ID-52090.news.dfncis.de...

Cmq io c'č l'ho piu LONG!

 Cmq io c'č l'ho piu LONG!
    Eh... Sempre li' casca l'asino!... Nel tuo caso bisognerebbe dire
"inciampa"... :-))))


 ha scritto nel messaggio
news:b3boeb$1ki1aq$1...@ID-52090.news.dfncis.de...

Pero io almeno trombo mentre tu sei sempre appiccicato allo schermo a farti
seghine da professionista mentre sei solo un segaiolo.
Senza offesa ciao TDC