Asignar el valor de un Dbusq() a un campo de una tabla.

He cerrado una pregunta antes de tiempo y me ha saltado ahora una pequeña duda.

http://www.todoexpertos.com/categorias/tecnologia-e-internet/bases-de-datos/microsoft-access/respuestas/pkyfo9fo5xxfs/dependiendo-del-valor-de-un-cuadro-combinado-asignar-automaticamente-su-id-en-otro-campo?board=true

La duda viene a la hora de querer asignar los valores de Dbusq() a campos de la tabla. He intentado por la función Dbusq() como valor predeterminado y en el origen de control poner el campo de la tabla donde quiero que se guarde pero no me funciona.

Un ejemplo:

Quiero guardar en IdProf el valor de

=DBúsq("[Id]";"[Profesión]";"Profesión=Form!selProfesion.Value")

1 respuesta

Respuesta
1

Yo lo tengo planteado para formularios independientes, es decir no basados en ninguna tabla ni consulta, creo que es lo que mejor funciona.

Si lo que quieres es insertar el registro en una tabla, yo lo que haría sería poner un botón y en el código de este botón ejecutar una consulta de inserción de datos.

Supongo que el cuadro combinado se llama selProf y el cuadro de texto dónde tienes el Dbúsq se llama txtId

El código para ejecutar la sql sería:

doCmd.RunSql "Insert Into Profesiones (Profesión, Id) Values ('" & Form!selProf.Value & "', '" & form!txtId.Value & "')

En mi página, en el apartado supuestos y soluciones ---> Formulario para insertar datos

Tienes códigos distintos para hacerlo (ejecutando una consulta, con un recordset...).

Si no he entendido mal, según el código que pusiste antes, esa funciona haría que se insertase el valor en la tabla Profesión y mi intención es que se guarde en la TabladeSocios.

Es un formulario de alta de nuevos socios. Mi Dbusq() coge el valor del ID de la profesión seleccionada por el cuadro combinado de la tabla Profesión. Supongo que para guardarlo en el campo IdProf de TabladeSocios el código tendría que ser de la siguiente manera.

doCmd.RunSql "Insert Into TabladeSocios (IdProf) Values ('" & Form!selProf.Value & "', '" & form!txtId.Value & "')

Un saludo

Con DoCmd lo que se hacer es ejecutar métodos (pata transferir texto, borrar tablas...) hay métodos para casi todo (los puedes mirar en la ayuda de access, son muy prácticos)

El método RunSql lo que hace es ejecutar una consulta de acción (actualizar datos, borrar, insertar...) en este caso sería una consulta de inserción de datos, la síntesis de estas consultas es:

Insert Into Nombre de la tabla donde insertas (nombre de los campos a insertar separados por ,) Values (valores a insertar en esos campos separados por ,)

Lógicamente los valores a insertar tendrán que ir en el mismo orden que los campos dónde los insertas y el nº tendrá que ser igual.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas