none
Formato de Fecha en formulario Continuo RRS feed

  • Pregunta

  • Hola:

    Tengo una duda, que aparentemente es una cosa muy sencilla pero me está dando dolores de cabeza. Tengo un formulario continuo con un campo que es una fecha con su hora. Quiero mostrarla de la forma siguiente: 31/12/10 15:54

    No es una de las formas predefinidad por lo que hay que hacerla. He probado dos opciones:

    En la propiedad Format del textbox correspondiente: No consigo establecer este formato pues al querer poner el año me añade automaticamente una barra con lo que no se muestra correctamente, es decir pongo dd/mm/yy y él automaticamente me lo cambia a dd/mm/\y con lo que me aparece 31/12/y. Ademas, de esta forma en cuanto haces click en el campo te lo cambia a la fecha completa, lo cual no quiero que ocurra

    En la propiedad Origen del Control con =Formato([Fecha],"dd/mm/yy") pero aqui me dice que he introducido algún caracter  u operador no válido.

    Alguna idea de ocmo solucionarlo?

    viernes, 31 de diciembre de 2010 14:59

Respuestas

  • Volviendo al planteamiento original,

    1. cambia el nombre del cuadro de texto de fecha por fechaAux (por ejemplo).
    2. asigna como el origen de registro de ese campo con una instrucción format: mas o menos así: =Formato([fecha];"dd/mm/yy hh:mm")

    AGREGO:o Por código

    Private Sub Form_Current()
    fechaaux.ControlSource = "=format([fecha],""dd/mm/yy hh:mm"")"
    End Sub

    lunes, 3 de enero de 2011 15:12

Todas las respuestas

  • Hola

    Utiliza como cadena de formato "dd/mm/aaaa hh:nn"

    Salu2,


    José Mª Fueyo [MS MVP Access]
    lunes, 3 de enero de 2011 10:56
  • Hola:

    Con aaaa he conseguido solucionar la parte del año para que no me añada la barra \ y por tanto no se muestre correctamente. El problema es que con dd/mm/aaaa me muestra el año completo y yo solo quiero que me muestre los dos ultimos dígitos del año. He probado con aa pero me muestra los 4 y con a solo me muestra el dia del año.

    Por otro lado sigue ocurriendo lo que comenté de que al hacer click en esa celda se cambia al valor original y no el formateado. Lo cual no quiero que ocurra.

    lunes, 3 de enero de 2011 13:26
  • Bueno al final lo he solucionado añadiendo un textbox sin origen de datos y asignandole el valor en el evento Form_Current (al activar registro) de la siguiente forma:

    Me.txtFecha.Value = Format(Me!Fecha,"dd/mm/yy HH:nn")

     

    Curioso (por no decir lioso) que en el Access haya que poner las cosas en español y en VBA en inglés.

    lunes, 3 de enero de 2011 13:31
  • Me equivoqué.

    Si hago lo que comenté en el post anterior, cuando pulso en alguna linea todas las fechas del formulario continuo se establecen a la que hay en esa linea, asi que no me sirve.

    lunes, 3 de enero de 2011 14:08
  • Hola Alvaro. Si bloqueas el campo, queda resuelto? o el usuario puede modificar la fecha?

    ¿Si llenas un control lista sin origen de registro? (additem) y al momento de editar, se abre un form con el registro cargado?

    lunes, 3 de enero de 2011 14:20
  • Hola:

    Si bloqueo el campo sigue ocurriendo lo mismo. La unica opción es desactivarlo, pero tengo que dejarlo activo porque tengo que poder seleccionarlo, aunque el usuario no pueda modificarlo.

    He encontrado en manuales que con aa pone solo los dos ultimos digitos del año, pero en mi caso pone los 4, no sé por qué motivo.

     

    La ultima parte que me comentas, guarracuco, no la he entendido bien. Los formulario son para mostrar datos del histórico porlo que no quería complicarlo (y serán muchos registros conforme avance el tiempo)

    lunes, 3 de enero de 2011 14:46
  • Volviendo al planteamiento original,

    1. cambia el nombre del cuadro de texto de fecha por fechaAux (por ejemplo).
    2. asigna como el origen de registro de ese campo con una instrucción format: mas o menos así: =Formato([fecha];"dd/mm/yy hh:mm")

    AGREGO:o Por código

    Private Sub Form_Current()
    fechaaux.ControlSource = "=format([fecha],""dd/mm/yy hh:mm"")"
    End Sub

    lunes, 3 de enero de 2011 15:12
  • Perfecto. Mi problema era que cuando intentaba hacer eso ponía una coma para separar el campo del formato. Con  ; funciona bien.
    lunes, 3 de enero de 2011 15:15
  • Tienes razón, pero por código vá bien con la coma
    lunes, 3 de enero de 2011 15:19
  • Hola

    Así es, en código el separador es la "," y en el generador de expresiones, el ";"

    Salu2


    José Mª Fueyo [MS MVP Access]
    lunes, 3 de enero de 2011 16:23