Nombre de días a una fecha no automática

En una base access tengo campo fecha que la coloca en forma manual, y le quisiera a agregar el nombre del día de la semana.

si yo pongo esto :=NombreDíaDeLaSemana(DíaSemana(Ahora()))

Me arroja como resultado el nombre del día de la semana en forma automática.

Pero no me sirve porque (repito) la fecha que pongo es manual . Que es lo que necesito :

Si pongo 17/09/2014 (manualmente) si necesito que automáticamente me aparezca en otro campo el nombre de la semana.

(Porque esto, es porque no puntualmente se cargan los datos por ahí cargan datos hoy con el día de ayer o más días), por eso necesito que solamente al poner la fecha recién hay se ejecute el otro campo con el día de la semana-

1 Respuesta

Respuesta
1

En lugar de hacer referencia a la función Ahora() debes de hacer referencia al nombre del campo en donde ingresas manualmente la fecha que deseas.

Mira este ejemplo de código en el que asociado al evento AfterUpdate de un campo en el que inscribo una fecha se escribe el nombre del día de la semana en otro campo.

En el ejemplo Fecha1 es el campo en donde escribo la fecha deseada y Fecha2 es donde me aparece el nombre del día.

Private Sub Fecha1_AfterUpdate()
On Error GoTo Err_Fecha1_AfterUpdate
    Me.Fecha2 = WeekdayName(Weekday(Fecha1, vbMonday), False, vbMonday)
Exit_Fecha1_AfterUpdate:
    Exit Sub
Err_Fecha1_AfterUpdate:
    MsgBox Err.Description
    Resume Exit_Fecha1_AfterUpdate
End Sub

En tu ejemplo debieras de poner:

:=NombreDíaDeLaSemana(DíaSemana([Fecha1])).

Mira en la ayuda el resto de parámetros (vbMonday...) para ver como quieres configurar la función.

Cordiales saludos.

Angel disculpa, pero si puedes explicarme algo más

Yo tengo esto en el diseño de la tabla en el reglón "valor predeterminado" de las propiedades de la tabla =NombreDíaDeLaSemana(DíaSemana(Ahora()))

Si quiero poner tu código (no se en donde ) si puedes me ayudarías que y donde tengo que escribir lo que me enviaste.

Reemplazo tu opción por la mía pero me da error,

Yo tengo un campo llamada fecha (fecha/hora)

Y el otro campo donde puse lo mio es Día (numero) ¿Esta bien?

Gracias

Lo primero es el tipo de datos del campo Día. Si este es el campo en donde vas a guardar el nombre del día de la semana que se corresponda con la fecha tecleada en otro campo debes de definirlo como Texto.

No debes de usar la expresión =NombreDíaDeLaSemana(DíaSemana([Fecha1])) como valor predeterminado en un campo de tabla. Si podrías usar la que indicabas tu sustituyendo [Fecha1] por Ahora(), ya que un valor predeterminado debe de tener acceso al resultado que va a obtener al iniciarse un nuevo registro, y esto no es posible referenciandolo al valor de otro campo que aun no tiene valor. En resumen, que me lio yo solito, no lo uses como valor predeterminado.

En el formulario que tengas basado en esta tabla tiene los dos campos que supongamos se llaman Fecha1 (donde escribes la fecha) y Fecha2 (donde debe de aparecer el días de la semana correspondiente) basados en los mismos campos de la tabla.

Click con botón derecho sobre el campo Fecha1. Pides sus propiedades. Seleccionas la pestaña eventos. Te colocas en la propiedad 'Después de actualizar' y verás que aparece un botón con tres puntitos en el margen derecho. Haces click (con botón izquierdo) sobre ese botón y en la ventana emergente seleccionas Generador de código. Se abrirá una ventana de VB con lo siguiente:

Private Sub Fecha1_AfterUpdate()

End Sub

Estas son la primera y última línea del código que te adjunté. Entre ellas escribes el resto.

Una cosa más. Si tu campo en lugar de Fecha1 se llama por ejemplo MIFECHA, debes de cambiar Fecha1 por MIFECHA en todos los sitios en los que aparece en el código. En este ejemplo quedaría así:

Private Sub MIFECHA_AfterUpdate()
On Error GoTo Err_MIFECHA_AfterUpdate
    Me.Fecha2 = WeekdayName(Weekday(MIFECHA, vbMonday), False, vbMonday)
Exit_MIFECHA_AfterUpdate:
    Exit Sub
Err_MIFECHA_AfterUpdate:
    MsgBox Err.Description
    Resume Exit_MIFECHA_AfterUpdate
End Sub

Lo mismo con el nombre del campo Fecha2. Si tu campo se llama de otra manera sustituye Fecha2 por el nombre que tu uses.

En resumen le estás diciendo al campo Fecha1 del formulario que cuando escribas una fecha ponga en el campo Fecha2 el día de la semana que corresponda. Si tu formulario se basa en la tabla esto guarda esos valores en los campos.

Cordiales saludos.

¡Gracias! angel fusiona excelentemente

Angel te molesto con otro problema , que nada tiene que ver con el anterior.

PROBLEMA:

***************************************
tablas

ta_materiales ( es donde estan todos los elementos para el edificio)tiene 11224 registros
los cuales no estan todo completo ""pero eso no importa se van completando a medida que los
necesitas"""

ta_Dest ( los lugares donde van a parar los elementos de la tabla anterior)

*****************************************************************
ta_rubros ( tiene que ver con la ta_materiales) tiene "164 registros"


Rubro Codigo Material Unidad
02010 0000031G GRAVILLA M3
02010 000060G ARENA ORIENTAL M3
02010 000020G ARENA MEDIANA M3
02010 000030G ARENA GRUESA M3
02010 000010G ARENA FINA M3
02010 000040G ARENA ESPECIAL M3
02010 000050G ARENA GRANITICA TN

esto es un ejemplo para que veas lo que tiene la ta_rubro
*****************************************************************

ta_pedido

es donde tendria que almacenar cada pedido

***************************************************

el formulario1 : tiene varios datos pero aqui el problema cuando seleccionas el item RUBRO,

ARENAS

tendria que pasar al subformulario CO_FROM2 , y solamente dejar para seleccionar los que se encuentra
en ese rubro como ejemplo te doy el de arriba Y almacenarlo en la ta_pedidos

*************************************************************


PARA REDONDEAR NECESITO QUE EL FORMULARIO1 ME FILTRE LOS DATOS PARA EL FORMULARIO CO_FROM2 , COMO
LOS PEDIDOS SALEN POR RUBRO SOLAMENTE VAN A PODER CARGAR COMO EL EJEMPLO ANTERIOR QUE SON 7 REGISTROS
SOLAMENTE Y DE HAY SELECCIONAS DE LOS 7 EL QUE VOS NECESITAS UNO , DOS , TRES ETC,,,,

PARA UN RUBRO NUEVO UN NUEVO REGISTRO.

Si no se entiende te puedo mandar la base por mail¡¡¡

Siento no haberte contestado. Tengo muy poco tiempo libre. Si no te importa mándame una copia a [email protected] ya que no me es posible ayudarte sin verla. Si contiene datos personales bórralos y añade algún registro de prueba. Explícame en el correo un poco más detalladamente como ha de funcionar el formulario que comentas.

Intentare contestarte lo antes posible.

Cordiales saludos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas