Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135

    Problemi date access (formato)

    Ciao.

    E' possibile che dipendendo dal computer (da qualche settaggio locale) con cui si compila un form in cui si inseriscono delle date possa essere cambiato il formato delle date stesse?

    Mi spiego meglio: da certi pc la data viene formattata dd/mm/aaaa su altri invece mm/dd/aaaa; quando inserisco nel db access (prevista come aaaa/mm/dd) nel secondo caso mi sballa tutte le date...

    :master:
    Lo Stato dà un posto. L’impresa privata dà un lavoro. – Indro Montanelli

  2. #2
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    E' la prima volta che mi succede, mai avuto problemi con le date in access :

    - su una serie di pc la data inserita nel form come dd/mm/yyyy viene registrata nel db access (con un'apposita funzione di conversione in yyyy/mm/dd) come yyyy/dd/mm;

    - su un'altra serie di pc l'inserimento avviene invece regolarmente, cioà yyyy/mm/dd.

    La cosa avviene quando il giorno può essere confuso con il mese... :master:
    Lo Stato dà un posto. L’impresa privata dà un lavoro. – Indro Montanelli

  3. #3
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    Non avete suggerimenti? ci vado al manicomio...
    Lo Stato dà un posto. L’impresa privata dà un lavoro. – Indro Montanelli

  4. #4
    Le date sono sono un problema,

    io ho risolto tutti i miei problemi facendo un'analisi del formato della data prima di inserirla nel db.

    Ti consiglio di prendere la stringa dalla casella di testo, spezzarla in tre variabili, giorno, mese, anno, verificare il formato del campo di destinazione (con ado), quindi ricomporre la stringaData nel formato che ti interessa. In questo modo potrai controllare anche eventuali errori di scrittura da parte dell'utente su ognuno dei tre elementi.

    Se ti serve codice, avvisa.... Ciao, Fabio

  5. #5
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    Originariamente inviato da fabio.beoni
    Se ti serve codice, avvisa.... Ciao, Fabio
    Magari, grazie.
    Lo Stato dà un posto. L’impresa privata dà un lavoro. – Indro Montanelli

  6. #6
    Forse non è esattamente quello che ti serve ma da qui puoi estrapolare:

    ------------------------------------------------------------------------

    fldA è il tuo campo definito in ADO

    valore = Trim(fldA.value)
    If Not IsNull(valore) Or Not valore = “” Then

    ‘tolgo gli spazi, ottengo il valore da inserire, e il nome del campo in cui metterlo in sql-server
    valore = Trim(fldA.value)
    nomeCampo = fldA.name

    ‘-------INSERISCI QUI ALTRI CONTROLLI SUI VALORI

    ‘controllo la lunghezza per le date

    l = len(valore)

    dataErrata = 0

    ‘verifica per campi di tipo data

    ‘verifico lunghezza valore

    if l <> 10 then
    dataErrata = 1
    rigaCorrezione = rATot ‘serve per avvisare l’utente
    response.Write(“Non posso importare la riga “&rATot&” dal db Access perchè la data nel campo “&nomeCampo&” non ha 10 caratteri. Correggila.
    ”)
    end if

    ‘verifico la forma della data. es: 02/04/1979

    varGiorno = left(valore, 2)
    varMese = mid(valore, 4, 2)
    varAnno = right(valore, 4)
    varPrimoSl = mid(valore, 3, 1)
    varSecondoSl = mid(valore, 6, 1)

    if varPrimoSl <> “/” then’carattere errato
    dataErrata = 1
    rigaCorrezione = rATot ‘serve per avvisare l’utente
    response.Write(“Non posso importare la riga “&rATot&” dal db Access perchè la data nel campo “&nomeCampo&” presenta caratteri errati sul primo ‘/’.
    ”)
    end if
    if varSecondoSl <> “/” then’carattere errato
    dataErrata = 1
    rigaCorrezione = rATot ‘serve per avvisare l’utente
    response.Write(“Non posso importare la riga “&rATot&” dal db Access perchè la data nel campo “&nomeCampo&” presenta caratteri errati sul secondo ‘/’.
    ”)
    end if
    if len(varGiorno) <> 2 then’anno e giorno potrebbero essere invertiti
    dataErrata = 1
    rigaCorrezione = rATot ‘serve per avvisare l’utente
    response.Write(“Non posso importare la riga “&rATot&” dal db Access perchè la data nel campo “&nomeCampo&” il formato del GIORNO corretto.
    ”)
    end if
    if varGiorno > 31 then’giorno fuori dai 31
    dataErrata = 1
    rigaCorrezione = rATot ‘serve per avvisare l’utente
    response.Write(“Non posso importare la riga “&rATot&” dal db Access perchè la data nel campo “&nomeCampo&” ha il Giorno errato.
    ”)
    end if
    if len(varMese) <> 2 then’mese di lunghezza errata
    dataErrata = 1
    rigaCorrezione = rATot ‘serve per avvisare l’utente
    response.Write(“Non posso importare la riga “&rATot&” dal db Access perchè la data nel campo “&nomeCampo&” il formato del MESE non è corretto.
    ”)
    end if
    if varMese > 12 then’mese fuori dai 12
    dataErrata = 1
    rigaCorrezione = rATot ‘serve per avvisare l’utente
    response.Write(“Non posso importare la riga “&rATot&” dal db Access perchè la data nel campo “&nomeCampo&” ha il Mese errato.
    ”)
    end if
    if len(varAnno) <> 4 then’anno con caratteri errati
    dataErrata = 1
    rigaCorrezione = rATot ‘serve per avvisare l’utente
    response.Write(“Non posso importare la riga “&rATot&” dal db Access perchè la data nel campo “&nomeCampo&” ha l’ANNO scritto in modo errato.
    ”)
    end if
    if varAnno < 1900 then’anno fuori dal limite smalldate
    dataErrata = 1
    rigaCorrezione = rATot ‘serve per avvisare l’utente
    response.Write(“Non posso importare la riga “&rATot&” dal db Access perchè la data nel campo “&nomeCampo&” ha l’Anno inferiore al 1900.
    ”)
    end if
    if varAnno < 2006 then’avviso che c’è una data precedente all’attivazione del servizio ma inserisco comunque il record
    dataErrata = 0
    rigaCorrezione = rATot ‘serve per avvisare l’utente
    response.Write(“ATTENZIONE: la riga “&rATot&” del db Access al campo “&nomeCampo&” indica un anno precedente all’attivazione del servizio, ho comunque importato il dato.
    ”)
    end if
    end if


    if dataErrata = 0 then
    ‘Recupero l’id del record appena inserito per poi fare l’update sqlIdMax = “SELECT MAX(IdContatore) As M FROM RID” Set rsId = ConnSS.Execute(sqlIdMax)
    idCorrente = rsId(“M”)
    ‘Scrivo la sql UPDATE per SQL_SERVER
    ‘sqlUP = “UPDATE RID SET “&nomeCampo&” = ‘”&valore&”’ WHERE IdContatore = “&idCorrente
    ‘Set rsUP = ConnSS.Execute(sqlUP)

    sqlUP = sqlUP & nomeCampo&” = ‘”&valore&”’, “
    end if


    ------------------------------------------------------------------------

  7. #7
    comunque ti dico che non è possibile che sia come dici tu: E' SICURO che è cosi
    specialmente se usi access

    mi trovo spesso a dover fare dei lavori che installati dai clienti hanno questo problema

    puoi solo fare come ti è stato suggerito e a seconda delle esigenze invertire mese e anno
    Mr. Fepreto Nirra
    (I've been the wild rover for many of years - Spent all my money on whiskey and beer)
    E' PROPRIO UN BEL LOCALINO, BOB!
    ... ma non è il bicchiere giusto ...

  8. #8
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    E' quello che farò.

    Però ho scoperto diciamo il "problema":

    Nel form i campi data vengono popolati tramite l'utilizzo di un calendario popup in javascript, nel quale alla prima riga c'è il formato data, che di default è:

    codice:
    date_format : "dd/mm/yyyy",
    E così creava i problemi che vi ho segnalato; ebbene modificando il formato data del file javascript in:

    codice:
    date_format : "yyyy/mm/dd",
    quindi scrivendo nel form la data nel formato yyyy/mm/dd il problema s'è improvvisamente risolto... anche se per gli utilizzatori italiani sarà un formato a loro non proprio familiare...

    Grazie!
    Lo Stato dà un posto. L’impresa privata dà un lavoro. – Indro Montanelli

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.