Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 25
  1. #1
    Utente di HTML.it L'avatar di alexxxb
    Registrato dal
    Oct 2007
    Messaggi
    124

    [access] verificare formato data

    In Access ho bisogno di una funzione che, all'uscita da un campo in formato data, mi verifichi che la data inserita sia formattata correttamente.
    Ad esempio, mi verifichi che per errore non venga inserita come data 31/09/2010 in quanto settembre ha solo 30 giorni, magari restituendomi una msgbox di errore.

    Come posso fare?
    Thanks

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    All'evento "su errore" del form associa questo codice:

    codice:
    Private Sub Form_Error(DataErr As Integer, Response As Integer)
    Const data_errata = 2113
        If DataErr = data_errata Then
           MsgBox "La data non è valida"
           Response = acDataErrContinue
        Else
           Response = acDataErrDisplay
        End If
    End Sub

  3. #3
    Utente di HTML.it L'avatar di alexxxb
    Registrato dal
    Oct 2007
    Messaggi
    124
    Originariamente inviato da nicola75ss
    All'evento "su errore" del form associa questo codice:

    codice:
    Private Sub Form_Error(DataErr As Integer, Response As Integer)
    Const data_errata = 2113
        If DataErr = data_errata Then
           MsgBox "La data non è valida"
           Response = acDataErrContinue
        Else
           Response = acDataErrDisplay
        End If
    End Sub
    Grazie, ma su quale evento devo metterla?
    Non riesco ad utilizzarla...

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Devi selezionare il form affinchè la finestra delle proprietà mostri quelle associate alla maschera stessa e poi associ il codice all'evento su errore del form.

  5. #5
    Utente di HTML.it L'avatar di alexxxb
    Registrato dal
    Oct 2007
    Messaggi
    124
    Non avevo capito che era l'evento erroere della form e non del campo...

    Però mi succede questo: se ad esempio come data inserisco 12/15/2010, invece che segnalarmi l'errore mi viene corretta in 15/12/2010 (mi inverte mese e giorno).
    Il messaggio d'errore me lo da solo se non possono essere invertiti, tipo 15/34/2010.
    C'è modo per segnalere l'errore mantenendo il mio formato che è gg/mm/aaaa, invece che fargli invertire giorno e mese nel caso in cui possano essere invertiti?

    edit: anche se scrivo 31/09/2010 me lo converte in 03/09/2010 e io invece vorrei che segnalasse l'errore, perchè magari chi scrive non si accorge che il software ha corretto la data e finisce per editare dei dati sbagliati (queste date agiscono su una query)

  6. #6
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Hai ragione. Non avevo fatto caso a questo comportamento. Purtroppo access "ragiona" per conto suo su tante cose.
    Peraltro la data 31/09/2010 a me (su office xp) non viene convertita erroneamente mentre con 12/15/2010 riscontro il tuo stesso problema.

    Ho trovato questo interessante articolo

    http://allenbrowne.com/ser-36.html

    ma al momento non saprei cosa consigliarti.

  7. #7
    codice:
    Select Case Month(Me!TUO_CONTROLLO)
        Case Is = 1, 3, 5, 7, 8, 10, 12
    	if Day(Me!TUO_CONTROLLO) > 31 then msgbox "il mese inserito ha 31 giorni, verifica valore"
        Case Is = 4, 6, 9, 11
            if Day(Me!TUO_CONTROLLO) > 31 then msgbox "il mese inserito ha 30 giorni, verifica valore"
        Case Is = 2
            If Year(Me!TUO_CONTROLLO) Mod 4 = 0 Then
                if Day(Me!TUO_CONTROLLO) > 29 then msgbox "nell'anno inserito febbraio è bisestile"
            Else
                if Day(Me!TUO_CONTROLLO) > 28 then msgbox "nell'anno inserito febbraio NON è bisestile
            End If
    End Select
    se comunque ti da lo stesso problema potresti provare ad usarla sul campo settando il formato non come data ma come testo normale (almeno nella maschera). giusto per provare.
    Il numero di pecorelle scannate dai pastori è di gran lunga superiore al numero di pecorelle mangiate dai lupi. Per cui, se qualcuno si proponesse di essere il vostro pastore per salvarvi dai lupi, pensateci bene.

  8. #8
    Utente di HTML.it L'avatar di alexxxb
    Registrato dal
    Oct 2007
    Messaggi
    124
    Grazie
    Su che evento lo metto?

  9. #9
    sull'evento dopo aggiornamento del campo in questione.
    Il numero di pecorelle scannate dai pastori è di gran lunga superiore al numero di pecorelle mangiate dai lupi. Per cui, se qualcuno si proponesse di essere il vostro pastore per salvarvi dai lupi, pensateci bene.

  10. #10
    Utente di HTML.it L'avatar di alexxxb
    Registrato dal
    Oct 2007
    Messaggi
    124
    Non mi funziona:
    Se come formato del campo metto data in cifre, se sbaglio a scrivere mi da il messaggio d'errore di sistema (è stato immesso un valore non valido per il campo, ecc...), quindi non prendendo in considerazione le msgbox di errore dell'evento.
    Se invece come formato del campo uso testo, dopo l'aggiornamento mi dice "Tipo non corrispondente". Penso perchè quando fa il controllo si aspetta delle date ed invece quello è un campo di testo.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.