¿Cómo guardar registros de formularios en tablas?

Disculpen mi poco conocimiento. Mi problema reside en guardar los datos de un formulario en una tabla.
En el formulario tengo un cuadro combinado (Equipos) y dos cuadros de textos (Planta y Área) . Estos dos últimos se autocompletan al seleccionar un registro del cuadro combinado. La información la toman de una consulta donde se encuentran todos los campos mencionado entre paréntesis. El cuadro combinado tiene todos estos campos y esta "achicado" para que solo se vean los Equipos.
Los datos del formulario quiero que se guarden en un tabla (Reportes) la cual tiene los tres campos mencionados en el párrafo anterior.
Generé un código a un botón de acción (DoCmd. RunSQL "INSERT INTO Reportes(Equipo, Planta, Área) VALUES('" & Equipo & "','" & Planta & "','" & Área & "')) pero siempre me guarda el primer registro de la consulta. Elija el Equipo que elija, siempre guarda el primero de la lista.

1 Respuesta

Respuesta
3
Para hacer lo que quieres debes recorrer la tabla, el código seria algo parecido a esto.
set rst = currentdb.openrecorset("select Equipo,planta,area from MiTabla")
While not rst.eof ' mientras no lleguemos al final de la tabla
Aux_Equipo = rst.fields(0)
Aux_Planta = rst.fields(1)
Aux_Area = rst.fields(2)
DoCmd.RunSQL "INSERT INTO Reportes(Equipo,Planta,Area) VALUES('" & Aux_Equipo & "','" & Aux_Planta & "','" & Aux_Area & "'))
rst.movenext
Wend
Ya seria adecuarlo a tus tablas o consultas.
Muchas gracias por tu respuesta.
Te comento que ejecuté el código que me indicaste y lo que hace es guardar todos los registros existentes en la consulta. Me explico mejor. Elijo un registro (equipo) en el cuadro combinado del formulario (Formulario1). Los cuadros de texto (planta y Área) se autocompletan. Cuando hago clic sobre el botón guardar me pregunta si acepto guardar un nuevo registro y al dar aceptar aparece el mismo cuadro de dialogo 11 veces más (tengo 12 registros en mi consulta de equipos). Al finalizar abro la tabla Reportes, que es donde se guardan los registros, y aparecen los doce registros de la consulta en lugar del único que elegí en el formulario.
Muchas gracias por tu tiempo
Vale si solo quieres guardar es el registro actual seria así perdona, me confundí al responderte.
'Asignamos el valor de la caja de texto, lista, combo... a una variable (sustituye equipo,planta y area por los nombres de los tres campos de tu formulario)
Aux_Equipo = Me.Equipo.Value
Aux_Planta = Me.Planta.value
Aux_Area = Me.Area.Value
DoCmd.RunSQL "INSERT INTO Reportes(Equipo,Planta,Area) VALUES('" & Aux_Equipo & "','" & Aux_Planta & "','" & Aux_Area & "'))
Muchas gracias,
Pruebo y te cuento
Perfecto, si tienes cualquier duda ya sabes por donde ando
Hola,
Te cuento que probé el último código:
Private Sub Comando28_Click()
Aux_Equipo = Me.Equipo.Value
Aux_Planta = Me.Planta.Value
Aux_Area = Me.Area.Value
DoCmd.RunSQL "INSERT INTO Reportes(Equipo,Planta,Area)VALUES('" & Aux_Equipo & "','" & Aux_Planta & "','" & Aux_Area & "'))"
End Sub
Y me sale un cartel diciendo que "falta (;) al final de la instrucción SQL". Disculpá mi ignorancia, pero puse ; por todos lados (;) y lo único que logré, es que cambie el cartel por uno que dice "error de sintaxis INSERT INTO".
Muchas gracias
Perdona, se me fue la mano al escribir, sobra el ultimo paréntesis, por eso no te coge el punto y coma, quedaría así:
DoCmd.RunSQL "INSERT INTO Reportes(Equipo,Planta,Area)VALUES('" & Aux_Equipo & "','" & Aux_Planta & "','" & Aux_Area & "');"

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas