Como almacenar en dos tablas distintas el dato recogido en un campo de un formulario en access

Necesito que un dato que recojo en un un formulario se almacene en dos tablas que son distintas,

En el formulario Empresa tengo un campo a rellenar que es nombre y alli pongo el nombre de la empresa por ejemplo ADIDAS y quiero que se me almacene esta dato en la tabla EMPRESA en el campo empresa y en la tabla EMPRESA1 en el campo empresa1

1 Respuesta

Respuesta
1

Vamos a suponer que el cuadro de texto donde escribes Adidas, se llama también Empresa. En cualquier evento(depende de como tengas construido el formulario) puedes poner

docmd.setwarnings false

docmd.runsql"insert into empresa(empresa)values('" & me.emepresa & "')"

docmd.runsql"insert into empresa1(empresa)values('" & me.empresa & "')"

Los campos origen y destino no tienen porque llamarse igual pero Sí ser de datos compatibles(en un campo texto insertar texto, en uno numérico insertar números, etc.)

Muchas gracias, soy un poco novata, genero un evento en el formulario o en  cuadro de texto “empresa”

Te decía que todo depende de como tengas construido el formulario. Por ejemplo

1º Vamos a suponer que el formulario es independiente, es decir, en sus propiedades-datos-origen del registro no hay nada

En el evento Después de actualizar del cuadro de texto empresa puedes poner la instrucción de arriba.

Vamos a suponer que en ese momento no lo quieres guardar, sino cuando tu quieras, podrías poner un botón de comando y en el evento Al hacer clic poner la misma instrucción.

Vamos a suponer que antes de guardar en la tabla Empresa quieras comprobar que no hay una igual ya, la instrucción la podrías poner como

if dcount("*","empresa","empresa='" & me.empresa & "'")>=1 then

Msgbox"esa empresa ya existe en la tabla", vbokonly,"Tararí que te ví"

Docmd. Cancelevent

else

docmd.setwarnings false

lo de arriba

end if

2º Vamos a suponer que el formulario tiene su origen en la tabla Empresa. Access, si no le dices nada en contra, por defecto te lo guarda en la tabla origen, pero por si quisieras "adelantar" el "guardado", en el evento Después de actualizar del cuadro de texto Empresa, podrías poner

Docmd.setwarnings false

docmd.runcommand accmdsaverecord

docmd.runsql"insert into empresa1(empresa)values('" & me.empresa & "')"

Como puedes ver posibilidades hay muchas. ¿Podrías poner una vista del diseño del formulario? ¿Y decir si es dependiente o independiente, y "cuando" quieres que lo guarde?.

Gracias me voy a currar, mañana te mando todo y si puedes me echas una mano. Muchas gracias de nuevo 

Mi formulario es dependiente de la tabla empresa y quiero que se guarde al cerrar

Si el origen del formulario es la tabla Empresa no necesitarías decirle que le lo guardara en esa tabla, ya que como te decía, Access, por defecto lo guarda pero si es eso lo que quieres.

Si tengo la tabla Empresa

Y la tabla Empresa1

Con la tabla Empresa construyo el formulario y en el control Empresa escribo un nombre

En el momento que pulse Enter o el cuadro de texto Empresa pierda el enfoque

Y en Empresa1

El código del evento Después de actualizar del cuadro de texto Empresa es

DoCmd.SetWarnings False
DoCmd.RunCommand acCmdSaveRecord
DoCmd.RunSQL "insert into empresa1(empresa1)values('" & Me.Empresa & "')"

Pero como te decía, la línea de enmedio sobraría

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas