Asignar el valor de una variable a un campo

hola... Es una variable en un formulario de access que me calcula la edad.. Luego debo asignar el valor a un campo de un archivo de dato pero no lo logro hacerlo.. Gracias por la atención prestada..

1 Respuesta

Respuesta
1

Directamente no se puede asignar una variable de pantalla a una tabla, por lo que tienes que empezar por abrir la tabla.

El código sería algo así como esto:

Dim MyBaseDatos as Database

Dim MyRecordSet as RecordSet

Dim CadenaAbuscar as String

Set MyBaseDatos=CurrentDB()

Set MyRecordSet=MyBaseDatos.OpenRecordset("Nombre de tabla para abrir")

CadenaAbuscar = "[CampoDeClave] = " & CampoParaEncontrarElRegistro

MyRecordset.FindFirst CadenaAbuscar

If MyRecordset.NoMatch then 'Es Verdadero cuando el registro no se encuentra

With MyRecordset

.AddNew 'Añade un nuevo Registro

![CampoDeClave] = CampoQueUtilizasComoClave

![Edad en Tabla] = Me.CampoEdadEnPantalla

.Update

End With

Else 'En caso de que SI se encuentre el registro

With MyRecordset
.. Edit 'Añade un nuevo Registro
![Edad en Tabla] = Me.CampoEdadEnPantalla
.Update

End With

End if

Con este código ya tienes resuelto el problema que quieres... Ahora solo falta que lo incluyas dentro del evento "Al perder el enfoque" del campo que te calcula la edad, por ejemplo... o poner un botón para grabar la edad en la tabla...

Un saludo y espero haber sido de ayuda...

Buenos días... disculpa por responderte tarde pero estuve ausente en la parte laboral y ahora es que puedo observar tu respuesta... la rutina no la he puesto en práctica pero te quería preguntar si la realizo una vez que cierro el formulario porque observo que haces un cálculo completo en la base de dato... no se si estoy en lo correcto.. gracias por tu atención prestada... feliz día

Imagino que para que te calcule la edad, tienes un campo de "Fecha de Nacimiento" o algo similar, ¿cierto?

Pues en ese campo es donde debes poner el código, en el evento "Al perder el enfoque".- De este modo, justo cuando sales del campo de fecha, te calculará la edad y la grabará en el archivo que le indiques tal y como te expliqué con el código...

Hola.. ya realice tu recomendación pero cuando estoy colocando el código se me está colocando en rojo la linea donde coloco el nombre de mi tabla.. el nombre de mi tabla es Personal Militar.. será porque existe un espacio en blanco entre los dos nombres? ... gracias por tu atención... felíz día

Muy posiblemente tienes un par de problemillas que yo no puedo detectar desde aquí... te explico mejor:

Lo primero que debes hacer es activar la referencia DAO 3.6 -Esto debes hacerlo desde la pantalla de código VB. En el menú Herramientas, busca la opción "Referencias".- Te aparecerán las que tienes puestas actualmente... incluye la que pone "Microsoft DAO 3.6 Object Library" -Esta es la biblioteca que hace que puedas manejar bases de datos desde código de programación...

Si a pesar de esto no funciona, deberías empezar a pensar en plan "programador", es decir, que debes tener una base de datos solamente con las tablas y otra con los formularios, informes, consultas y módulos de programa.- Y esto tiene su explicación lógica...

Si tienes instalada la base de datos en un cliente "completa" (=Con tablas, formularios y programas) y están trabajando con ella, es lógico que las tablas contengan datos.- Si tu haces cualquier modificación en los formularios o programas y quieres reemplazar una base de datos por la otra, directamente te cargarás todo lo que haya, datos incluidos...

Por eso, mejor creas una BD para programas y otra solo con las tablas y las vinculas a los programas... así, si haces cualquier cambio en programas, reemplazas la BD de programas y los datos no se tocarán.

Y te cuento esto, porque además, ciertas funciones DAO, como "FindFirst" no funcionan si tablas y programas están en la misma BD. En lugar de usar FindFirst, tienes que usar Seek, aunque es mucho mas complicado porque hay que definir índices...

No entiendo bien en qué linea te da el error, pero para tu información, los nombres de campos o tablas que contengan espacios entre medias, deberán ir entre corchetes.-

Ej.- Esto sería válido:

NombreTabla! NombreCampo

[Nombre de Tabla]![Nombre de Campo]

Me.CampodeFormulario

Me.[Campo de Formulario]

Me.Campo_de_Formulario

Esto no es válido:

Nombre de tabla! NombreCampo

NombreTabla. NombreCampo

Nombre_de_Tabla!Nombre_de_Campo

En fin, échale un vistazo, haz los cambios que te propongo y me cuentas a ver qué tal va ahora

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas