Access - Código funcionaba, Ahora Sale Error

 
Vista:
Imágen de perfil de Osen
Val: 50
Ha disminuido su posición en 2 puestos en Access (en relación al último mes)
Gráfica de Access

Código funcionaba, Ahora Sale Error

Publicado por Osen (75 intervenciones) el 01/07/2024 21:33:40
Estimados amigos de Access
El siguiente código funcionó bien durante varios años, pero ahora y sin motivo aparente, no funciona bien.

No sé si si es que éste código ya no es válido hoy día o no sé qué pasó.
Me ayudan por favor?

Gracias


1
2
3
4
5
6
Private Sub NombreTrabajadorNomina_AfterUpdate()
Me.IdentificacionTrabajadorNomina = Nz(NombreTrabajadorNomina.Column(1), "")
Me.SueldoTrabajadorNomina = Nz(NombreTrabajadorNomina.Column(12), "")
Me.SubsidioTransporteNomina = Nz(NombreTrabajadorNomina.Column(13), "")
Me.SaludNomina = Nz(NombreTrabajadorNomina.Column(15), "")
Me.IncapacidadNomina = Nz(NombreTrabajadorNomina.Column(22), "")
End Sub

Error: -2147352567(80020009)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de jorge
Val: 1.039
Oro
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Código funcionaba, Ahora Sale Error

Publicado por jorge (305 intervenciones) el 01/07/2024 22:07:38
pon una foto por faaa
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Osen
Val: 50
Ha disminuido su posición en 2 puestos en Access (en relación al último mes)
Gráfica de Access

Código funcionaba, Ahora Sale Error

Publicado por Osen (75 intervenciones) el 01/07/2024 23:08:00
Error-y-Depurar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Código funcionaba, Ahora Sale Error

Publicado por Anonimo (3365 intervenciones) el 01/07/2024 23:50:43
Si 'antes' funcionaba y ahora no, algo puede haber cambiado (una posible adaptación a los cambios del entorno laboral) .

El código publicado hace suponer que hay un combo [NombreTrabajadorNomina] con mas de veinte columnas y de ellas se extraen los datos.

Me llama la atención que siendo un objeto del formulario actual no se le añada el 'Me' como al resto de los objetos (algo se gana a coste muy bajo).

Si el cuadro de texto [SaludNomina] no acepta el dato es muy probable su origen de datos sea numérico (no de texto) y se de la circunstancia de no tener valor (su origen: el combo) y la función Nz devuelve un texto (dato que no es compatible).

Si en la ventana de inmediato (la que se publico y detenido en el error) se escribe:

1
? Me.NombreTrabajadorNomina.Column (15)

Y tras ello un [Enter} ¿Que devuelve Access?.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Osen
Val: 50
Ha disminuido su posición en 2 puestos en Access (en relación al último mes)
Gráfica de Access

Código funcionaba, Ahora Sale Error

Publicado por Osen (75 intervenciones) el 02/07/2024 15:07:35
Access-Liquidacion-Nomina

Hola, Buenos días.
Como observarás cambié un Nz por Me. y sale Error de compilación.
Revisé los campos y cada uno está como corresponde : Texto a Texto, Fecha a fecha, Moneda a Moneda.
Algo estoy haciendo sin entender..?

Gracias por tu paciencia.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Código funcionaba, Ahora Sale Error

Publicado por Anonimo (3365 intervenciones) el 02/07/2024 18:07:17
El código que has publicado ¿Es heredado? .......

Línea original:

1
Me.SaludNomina = Nz(NombreTrabajadorNomina.Column (15),"")

La propuesta = Utilizar 'Me' para referenciar los objetos del formulario:

1
Me.SaludNomina = Nz(Me.NombreTrabajadorNomina.Column (15), "")

Si el tipo de dato de [SaludNomina] fuese numérico (en lugar de un texto)

1
Me.SaludNomina = Nz(Me.NombreTrabajadorNomina.Column (15), 0)

¿Porqué es aconsejable referenciar correctamente a los objetos del formulario? ...

Porque 'Me' le indica al motor de Access que el objeto en cuestión es [un cuadro de texto]/[un ComboBox]/[un Cuadro de lista]/[un Botón] ... etc y no una variable función o cualquier otra posibilidad.

No se tarda lo mismo en localizar [XXX] en toda la vivienda que en el cajón superior del armario de la entrada de la vivienda...

Nota:
Nz es una función que evalúa un dato (el primer parámetro) y si es un NULL, devuelve un valor alternativo (el segundo parámetro)
(el valor alternativo ha de ser adecuado a su destino, normalmente: una cadena vacía si es texto / un cero si se espera un número)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar