MonthName Error en informe

Otra vez yo jijiji.

Bueno ahora tengo un problema cuando quiero utilizar MonthName. De una fecha saco los valores de día, mes ay año para escribirlos en unu txtbox con el siguiente formato "DE 09 DE DICIEMBRE DEL 2013" algo así.

Lo que hice fue esto:

Texto54 = (Day(Me.Fecha_del.value)) & " DE " & UCase(MonthName(Me.Fecha_del.value)) & (Year(Me.Fecha_del.value))
Esto mando un error de depuración. Cheque donde era el problema y si quito MonthName todo sale bien

Así queue lo que hice fue

que = Month(Me.Fecha_del.value)

Para así sacar el día en numero y luego

Y = MonthName (que)

Texto54 = (Day(Me.Fecha_del.value)) & " DE " & UCase(Y) & (Year(Me.Fecha_del.value))

Pero tampoco me funciono, ya intente hacerlo con un case y tampoco no se que otro problema pueda haber. Si requieres el código completo o la BDO no tengo problema en mandártelos.

1 respuesta

Respuesta
1

Poniendo esto, te tendría que funcionar:

Me.Texto54=Day(Me.Fecha_del.value) & " DE " & UCase(MonthName(Month(DMe.Fecha_del.valueate))) & " DEL " & Year(Me.Fecha_del.value)

Hice exactamente lo mismo en un textbox dentro del informe (Claro que las instrucciones ahí son en español) y funciono.

Pero al ponerlo en visual (En ingles, como tu los has hecho y corrigiendo loas letras demás XD) me sigue mandando al depurador y dice uso no valido del null.

Aunque ya podría dejarlo como lo hice en el cuadro de texto, me gustaría saber porque sucede este error. Porque por visual y con la misma sintaxis no corre y dentro del informe sin programación si corre. Solo le di =Día([Fecha_del]) & " DE " & Mayus(NombreMes(Mes([Fecha_del]))) & " DEL " & Año([Fecha_del])

Por el error que comentas (uso no válido de null) entiendo que tienes algún registro de los que se mostraran en el informe cuyo campo Fecha_del no tiene valor.

Si se trata de esto, lo podrías solucionar con un simple If Then, algo así:

If Isnull(Me.Fecha_del) or Me.Fecha_del="" Then

'Si el campo está en blanco, no haces nada

Else

Me.Texto54=Day(Me.Fecha_del.value) & " DE " & UCase(MonthName(Month(Me.Fecha_del.value))) & " DEL " & Year(Me.Fecha_del.value)

End If

Ya vi. Fecha del nunca esta vacía pero la que si esta vacía es Fecha_al.

If IsNull(Me.Fecha_al) Or Me.Fecha_al = "" Then

Será por eso el error

A ver, Fecha_al no interviene en la fórmula, por lo que no debería influir en el resultado.

Tendría que ver la BD para intentar averiguar el por qué de ese comportamiento. Si no te importa pasármela, vía dropbox, drive, web de descargas tipo filebig... le echo un vistazo a ver si logro algo. Con que me mandes una copia con los elementos imprescindibles para ver el problema es suficiente.

Claro, solo que esta hecha un desastre :$. Hago pruebas y no borro las cosas. pero el informe de incidencias impresión es en el que tengo ese problema.

https://www.dropbox.com/es/m6zs2x1crgkn7eo/INCIDENCIAS_2.accdb

No funciona el enlace. ¿Puedes ponerlo de nuevo?

https://www.dropbox.com/es/m6zs2x1crgkn7eo/INCIDENCIAS_2.accdb

Hola espero este si sirva...si quiero hacer una pregunta de esta BDO tengo que hacer nueva consulta?

Nada, tampoco va este enlace. Dice:

"Error (404)
No podemos encontrar la página que buscas. Visita nuestro centro de ayuda y foros para obtener asistencia, o dirígete nuevamente al inicio"

Prueba a subir la BD a www.filebig.net y me pones aqui el enlace de descarga.

Si la pregunta no tiene que ver con el MonthName, mejor abre una nueva.

¿Puedes indicarme el nombre del informe en el que te da el error?

Si incidencias impresion

A ver, el informe que me da error es "Incidencias", y la forma de evitarlo es poniendo el código así (que es como te decía por ahí arriba, ponerle un control de vacíos al campo Fecha_del, porque sí tienes alguno en blanco)

Private Sub Detalle_Format(Cancel As Integer, FormatCount As Integer)
Dim lol As Integer
Dim thisDate As Date
Dim fecha1 As Date
Dim mal As Date
Dim nyu As String
If IsNull(Me.Fecha_del) Or Me.Fecha_del = "" Then
Texto54 = ""
Else
Texto54 = Day(Me.Fecha_del.value) & " DE " & UCase(MonthName(Month(Me.Fecha_del.value))) & " DEL " & Year(Me.Fecha_del.value)
End If
If IsNull(Me.Fecha_al) Or Me.Fecha_al = "" Then
Texto25 = ""
Texto61.Visible = True
Else
thisDate = Me.Fecha_al.value
lol = Weekday(thisDate)
nyu = UCase(WeekdayName(lol))
Texto61.Visible = False
End If
If IsNull(Me.Fecha_al) Or Me.Fecha_al = "" Then
Texto25 = ""
ElseIf nyu = "Viernes" Then
Texto25 = "REANUDANDO LABORES EL " & [Fecha_al] + 1
ElseIf nyu = "sábado" Or nyu = "Domingo" Then
Texto25 = "LA FECHA DE REGRESO NO PUEDE CAER EN FIN DE SEMANA, REVISA LAS FECHAS"
Else
Texto25 = "REANUDANDO LABORES EL " & [Fecha_al] + 3
End If
End Sub

En el informe que me decías, "Incidencia Impresión", no hay ningún control que se llame Texto54, así que no sé a que cuadro se refiere ni si da algún error (yo quitando el comentario no veo ninguno...), pero la solución seguro que pasa por lo mismo.

http://www.filebig.net/files/7FeUER7BPx

Muchas gracias por tu apoyo. Solucionaste a la perfección y me explicaste muy bien. Yo pensé que tenia que borrar el If donde ponía el control de vacío a fecha_al.

Estamos en contacto.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas