Domanda

Ho un utente utente con TextBox.Quando la casella di testo è inizializzata, si sta riempiono con la data effettiva.Quello che voglio fare è riempirlo con formato date personalizzato= DD-MM-YYYY

Ho scritto il codice qui sotto e qualcosa è sbagliato a riguardo, ma non ho idea di cosa sia sbagliato.Codice ha msgbox Prima di inserire il valore, MsgBox mostra la data in un formato personalizzato ma quando è passato a textbox.value è come M/DD/YYY.

Dim year As Long, year_control As Date

year = Format(Date, "yyyy")
year_control = Format(Date, "dd-mm-yyyy")

MsgBox (year_control)

textbox.Value = year_control
.

(...)

If year_control < "01-04-" & year Then
    Me.Controls("rok1").Value = True
Else
    Me.Controls("rok2").Value = True
End If
.

È stato utile?

Soluzione

Non è possibile "formattare" una variabile data:

year_control As Date
year_control = Format(Date, "dd-mm-yyyy")
.

Il codice sopra non fa nulla perché una variabile datario è semplicemente forando una data in modo più specifico dei negozi VBA VARIES DATA Variabili come numeri a punto flottanti IEEE a 64 bit (8 byte) che rappresentano le date che vanno dal 1 ° gennaio al 31 al 31 dicembre 9999 e Tempi dalle 0:00:00 alle 23:59:59.

Non importa cosa fai a questa variabile visualizza sempre le date in base al formato di data breve riconosciuto dal tuo computer. I tempi vengono visualizzati in base al formato del tempo (12 ore o 24 ore) riconosciuti dal computer.

Sì, mentre è possibile modificare il valore interno che viene tenuto dalla variabile Date non è possibile memorizzare il suo formato all'interno dello stesso vairable.

Puoi comunque visualizzarlo comunque che si desidera all'interno di una variabile stringa. Quindi, se hai usato:

Dim year As Long, year_control As Date
Dim strYear_control As string


year = Format(Date, "yyyy")
year_control = Format(Date, "dd-mm-yyyy")
strYear_control = Format(year_control , "dd-mm-yyyy")
MsgBox (strYear_control)

textbox.Value = strYear_control
.

Dovrebbe funzionare come ti aspetti. Poiché la funzione Format() restituirà una variante (stringa) contenente un'espressione formattata in base alle istruzioni contenute in un'espressione di formato.

Come nota laterale che potresti anche usare

Format$(year_control , "dd-mm-yyyy")
.

Come sarà molto più veloce, puoi anche utilizzare FormatDateTime per formattare la data in altri modi diversi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top