Newsgroup: it.comp.appl.access
Titolo: Aiuto. Devo convertire una data senza barrette

AIUTO !!!!
Sono un neofita, all'inizio dell'imparare l'access e un pò di
Visualbasic. 
Io ho l'esigenza di trasformare il formato data  per es. 15/03/2002
in questo formato 15032002 che poi mi serve per convertilo in formato
testo in un campo da 8 caratteri. Un mio amico che si intende di
Access mi ha fatto queste righe che ho poi inserito in una query.
Il problema sta qui: poichè per mie esigenze non tutti i campi
coontenenti la data devono essere pieni, per i campi pieni (contenenti
la data con le barre) il programma funziona, nei campi vuoti invece mi
restituisce #error. C'è qualcuno che può aiutarmi?
Grazie.
Ecco le righe:
Public Function ConvertiData(DataI As String) As String
Dim Var1
Var1 = DataI
If Var1 = "0" Then
Var1 = " "
GoTo Fine
End If
Var1 = Left(DataI, 2) + Mid(DataI, 4, 2) + Right(DataI, 4)
Fine:
ConvertiData = Var1
End Function

 Access mi ha fatto queste righe che ho poi inserito in una query.
Il tuo amico poteva trasformare la complicata funzione in questa:
Public Function ConvertiData(DataI As String) As String
    ConvertiData = Format(DataI, "ddmmyyyy")
End Function
Inoltre, per evitare l'#Error, dovresti richiamarla della tua query come
ConvertiData(Nz([MiaData])).
Ciao. Claudio

 ConvertiData(Nz([MiaData])).
Oppure, naturalmente, inserire direttamente nella query
Format([MiaData];"ggmmaaaa"), che nel tuo caso sembra la cosa migliore :-) Non
ci sono più gli amici di una volta....
Ciao. Claudio.

On Sat, 02 Nov 2002 00:17:34 GMT, "Claudio" <cld@NOSPAM&COsupereva.it>
wrote:

E già. E vero non ci sono più, ma ogni tanto qualquno si vede, come te
per esempio.
Comunque ti ringrazio era quello che mi serviva.
Visto che sei così bravo posso approfittarne (non eccessivamente) per
farti ancora qualche domanda?
1) vorrei importare questa funzione (ConvertiNuminLett) che ho trovato
su internet e che ti inserisco qui, fra i moduli del mio database
(Office 2000) ma ricevo questo errore: "errore durante l'accesso al
file. Potrebbe non essere più attiva la connessione di rete". Che cosa
vuol dire? e come posso fare per importare questa funzione?
2) Nel mio database composto, di tre tabelle, una "anagrafico", una
"importi" e l'altra "stato" (che mi serve per controllare lo stato dei
pagamenti). All'interno delle  tabelle "importi" e "stato" ho messo un
contatore (che ho chimato N e un Identificativo numerico che ho
chiamato IDsoggetto, mentre nella prima ("anagrafico") ho messo solo
un IDsoggetto, senza contatore. Ambedue le due tabelle, "importi" e
"stato", sono collegate ad "anagrafico" con una relazione uno a molti.
Inoltre ho creato una maschera con due sottomaschere ("importi" e
"stato") chiamata "Inserimento dati" che mi serve per inserire nuovi
record. Il problema è che dopo aver inserito un nuovo recor non mi
permette più di modificarlo, ma debbo cancellarlo e riinserirlo
modificato. Perchè e come posso fare per modificare senza cancellare
il record, tenendo conto della struttura del mio database?
3) Mi servirebbe inoltre una maschera per ricercare un record e poi
permettermi di richiamarlo e possibilmente modificarlo. Puoi aiutarmi.



CHIEDO UMILMENTE SCUSA, ma ho dimeticato di allegare il modello
"converti num il lettere". Anzi ho dimenticato di chiederti se è
possibile modificarlo anche per i decimali. (per l'euro), visto che
funziona solo con gli interi.
_______________________________________
Option Compare Database
Public Function CONVERTI_NUM(Numero As Currency)
   Dim Frazione1, Frazione2, Frazione3, Esp As Integer
   Dim InLettere As String
   Dim Temp As Double
   Static Cifra(28) As String
   Cifra(1) = ""
   Cifra(2) = "uno"
   Cifra(3) = "due"
   Cifra(4) = "tre"
   Cifra(5) = "quattro"
   Cifra(6) = "cinque"
   Cifra(7) = "sei"
   Cifra(8) = "sette"
   Cifra(9) = "otto"
   Cifra(10) = "nove"
   Cifra(11) = "dieci"
   Cifra(12) = "undici"
   Cifra(13) = "dodici"
   Cifra(14) = "tredici"
   Cifra(15) = "quattordici"
   Cifra(16) = "quindici"
   Cifra(17) = "sedici"
   Cifra(18) = "diciassettte"
   Cifra(19) = "diciotto"
   Cifra(20) = "diciannove"
   Cifra(21) = "venti"
   Cifra(22) = "trenta"
   Cifra(23) = "quaranta"
   Cifra(24) = "cinquanta"
   Cifra(25) = "sessanta"
   Cifra(26) = "settanta"
   Cifra(27) = "ottanta"
   Cifra(28) = "novanta"
For Esp = 3 To 0 Step -1
    Temp = Numero / 1000 ^ Esp
    Frazione1 = Int(Temp)
    If Frazione1 > 0 Then
        Frazione2 = Frazione1
        If Frazione2 > 99 Then
            Temp = Frazione2 / 100
            Frazione3 = Int(Temp)
            Frazione2 = Frazione2 - Frazione3 * 100
            If Frazione3 = 1 Then
                InLettere = InLettere + "cento"
            Else
                InLettere = InLettere + Cifra(Frazione3 + 1) + "cento"
            End If
        End If
        If Frazione2 <= 20 Then
            InLettere = InLettere + Cifra(Frazione2 + 1)
        Else
            Temp = Frazione2 / 10
            Frazione3 = Int(Temp)
            InLettere = InLettere + Cifra(Frazione3 + 19)
            Frazione2 = Frazione2 - Frazione3 * 10
            If Frazione2 = 1 Or Frazione2 = 8 Then
                InLettere = Left(InLettere, Len(InLettere) - 1)
            End If
            InLettere = InLettere + Cifra(Frazione2 + 1)
        End If
        Select Case Esp
            Case 1
                If Frazione1 = 1 Then
                    InLettere = Left(InLettere, Len(InLettere) - 3) +
"mille"
                Else
                    InLettere = InLettere + "mila"
                End If
            Case 2
                If Frazione1 = 1 Then
                    InLettere = Left(InLettere, Len(InLettere) - 3) +
"unmilione"
                Else
                    InLettere = InLettere + "milioni"
                End If
            Case 3
                If Frazione1 = 1 Then
                    InLettere = "unmiliardo"
                Else
                    InLettere = InLettere + "miliardi"
                End If
            End Select
            Numero = Numero - Frazione1 * 1000 ^ Esp
        End If
    Next
    CONVERTI_NUM = InLettere
End Function
________________________________________


 >su internet e che ti inserisco qui, fra i moduli del mio database
Non appena vedo il nuovo thread ti rispondo subito.
Ciao. Claudio.

Dim X As String
X=FORMAT(data,"DDMMYYYY")
dove data è una data qualsiasi con le barrette, l'ora ecc.
--
  Ciao
Andrea