Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [vb6]Modifica funzione data

    salve a tutti. ho creato una funzione per scrivere correttamente la data in una textbox. Quando l'utente scrive, ad esempio, 8105, questa mi restituisce "08/10/2005". Il problema è che il campo data è facoltativo e tale funzione è associata all'evento "lostfocus" della textbox e, se non viene inserito niente, mi appare "//20" cioè i separatori e il "20" da anteporre all'anno.
    Questo è il codice:
    codice:
    Public Function MyDate(stringadata As String) As String
    Dim A As String
    Dim D As String
    Dim M As String
    D = Left(stringadata, 2)
    M = Mid(stringadata, 3, 2)
    A = "20" & Right(stringadata, 2)
    MyDate = CStr(D) & "/" & CStr(M) & "/" & CStr(A)
    End Function
    avreste qualche soluzione per migliorare questo codice?
    La funzione è così poi dichiarata:
    codice:
    Private Sub txtDataPagam_LostFocus()
    If txtDataPagam.Text <> "" Then txtDataPagam.Text = MyDate(txtDataPagam.Text)
    End Sub
    Commetto qualche errore??
    grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    117

    Re: [vb6]Modifica funzione data

    Originariamente inviato da motogpdesmo16
    salve a tutti. ho creato una funzione per scrivere correttamente la data in una textbox. Quando l'utente scrive, ad esempio, 8105, questa mi restituisce "08/10/2005".
    Ciao, non è possibile gestire così una data, perchè, p.es. "2115" potrebbe essere sia 02/11/2005 che 21/01/2005

    Se obblighi a scrivere almeno 5 caratteri, puoi formattare i primi 4 (giorno e mese) e completare il quinto con left$(year(date),3) & right$(text1,1)

    Se serve una OCX (artigianale, ma con controlli di correttezza della data) avverti.

  3. #3
    Utente di HTML.it L'avatar di Brainjar
    Registrato dal
    Nov 2004
    Messaggi
    1,162
    Quoto le considerazioni di pierabo.
    Nello specifico, comunque, per filtrare correttamente il valore vuoto
    potresti utilizzare la funzione Trim$() o Trim().

    codice:
    Private Sub txtDataPagam_LostFocus()
    
        ' Toglie gli spazi 
        txtDataPagam.Text = Trim$(txtDataPagam.Text)
    
        ' Se è vuoto, adesso vale veramente "" 
        If txtDataPagam.Text <> "" Then txtDataPagam.Text = MyDate(txtDataPagam.Text)
    
    End Sub
    Ciao, Brainjar

  4. #4

    Re: Re: [vb6]Modifica funzione data

    Originariamente inviato da pierabo
    Ciao, non è possibile gestire così una data, perchè, p.es. "2115" potrebbe essere sia 02/11/2005 che 21/01/2005

    Se obblighi a scrivere almeno 5 caratteri, puoi formattare i primi 4 (giorno e mese) e completare il quinto con left$(year(date),3) & right$(text1,1)

    Se serve una OCX (artigianale, ma con controlli di correttezza della data) avverti.
    ho scritto male io il primo post. L'utente dovrebbe sempre scrivere 081105 per far capire che è l'08/11/2005. Suppongo che se scrive 2115, essendoci nella function un left di due caratteri, estrae 21/01/05. Praticamente mi son accorto che ci sono un bel po' di errori....Appena torno a casa provo a seguire il tuo suggerimento.
    Grazie.

  5. #5
    io consiglierei di utilizzare la maskeditbox...
    I database... la mia passione + o -

  6. #6
    in cosa consiste la maskeditbox??

  7. #7
    è un controllo che ti permette di scegliere la formattazione da dare al testo... quindi obbligando chi scrive a immettere la data con una certa formattazione.... io mi trovo abbastanza bene
    I database... la mia passione + o -

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.