Como cargar varios registros en un solo formulario

Quisiera saber como realizar un formulario que me permita grabar varios registros a la vez. Ya que tengo una base de datos de salidas y muchas de de ella son con el mismo remito. El tema seria realizar en el mismo formulario toda la carga con un boton de guardar.

2 Respuestas

Respuesta
1

En vista diseño del formulario ponle un cuadro de texto independiente y llámalo, por ejemplo Contador. En él escribirás cuantas "copias" quieres que te guarde en la tabla. Luego en el evento Al hacer clic de un botón, o en cualquier otro evento pon

docmd.setwarnings false

dim i as byte

for i=1 to contador

docmd.runsql"insert into tabla......lo que te explicaron arriba de todo

next

Así, cuando pulses el botón o lo que sea, mirará el número que hay en el cuadro de texto contador y te ira insertando tantos registros como aparezca allí

Lo de docmd. Setwarnings es para que no aparezca la ventana de "va a insertar" a cada registro

sigo sin poder explicarme! perdon! genere esto

Private Sub Opción41_Click()
Dim intremito As Variant
Dim dtmFecharemito As Variant
Dim dtmApyNom As Variant
Dim intdoc As Variant
Dim dtmEncuesta As Variant
intremito = Me.remito.Value
dtmFecharemito = Me.Fecharemito.Value
dtmApyNom = Me.ApyNomFecha.Value
intdoc = Me.doc.Value
dtmEncuesta = Me.Encuesta.Value
If IsNull(intremito) Then Exit Sub
If IsNull(dtmFecharemito) Then Exit Sub
If IsNull(dtmApyNom) Then Exit Sub
If IsNull(dtmdoc) Then Exit Sub
If IsNull(dtmEncuesta) Then Exit Sub
DoCmd.GoToRecord acDataForm, Me.Name, acNewRec
Me.remito.Value = intremito
Me.Fecharemito.Value = dtmFecharemito
Me.ApyNom.Value = dtmApyNom
Me.doc.Value = dtmdoc
Me.Encuesta.Value = dtmEncuesta
Me.Detallentrega.SetFocus
Me.CantEntrego.SetFocus
End Sub

pero me tira error!! en la lineas finales.estoy medio oxidado con esto! 

lo que quiero hacer es esto

Siendo sincero te sobra el 90% de la instrucción. Normalmente las variables se definen cuando algún valor, sea calculado o no, no está en el formulario. ¿Para que quieres definir una variable Intremito si luego le vas a decir que sea igual al valor que aparece en el control me. Remito? Para eso ya tienes el propio control.

Mira, si tengo una tabla Clientes como la de la imagen

Con ese número de clientes no me voy a hacer rico, no. También tengo una tabla OtraTabla en que le he cambiado el nombre a los campos para que veas que los controles no tienen porqué llamarse igual.

En el formulario Clientes le pongo un cuadro de texto al que he llamado Cantidad que es donde voy a poner el número de registros que quiero que me "pase" a Otratabla.

En cuanto pulso el botón, mira como queda Otratabla

No le he puesto que ponga valores calculados porque no sé como lo quieres.

En el evento Al hacer clic del botón sólo he puesto

Respuesta

En otras palabras ¿quieres insertar registros, en varias tablas mediante un botón guardar?

Si es así se hace con código Vba por ejemplo:

Private Sub btnGuardar_Click()
CurrentDb.Execute "INSERT INTO Preguntas(pregunta,plantilla,nombre,tipo)VALUES(" _
                          & Me.txtIdPregunta & "," & Forms![Cuestionario]!CmbPlantilla & ", '" & Me.txtCajaPregunta & "'," & Me.CmbTipo & ")", dbFailOnError
CurrentDb.Execute "INSERT INTO OpcionesRespuesta(opcion,plantilla,pregunta,nombre) " _
                        & "SELECT opcion," & Forms![Cuestionario]!CmbPlantilla & "," & Me.txtIdPregunta & ",nombre FROM AuxRespuesta", dbFailOnError
End Sub

https://www.youtube.com/watch?v=zmSLysmFpF0&t=606s 

No me exprese bien ! Lo que estoy queriendo hacer es dentro de una sola tabla a través de formulario generar varios registros. Por ejemplo un remito que tiene 3 item con el mismo numero de orden de entrega, fecha, etc. Poder cargar y guardar los 3 item con los mismos datos con un botón guardar. Ejemplo

nº______  fecha______

Item                            Cat

 __________                  _____

__________                   _____  

¿Parecido a un formulario de ventas?

Donde tu agregas tus productos y al dar al botón guardar se insertan en una tabla de ventas.

.-----

Sinceramente, no me queda claro que quieres hacer.

"""""Dentro de una sola tabla a través de formulario generar varios registros"""""

Supongo que quieres insertar, lo que no se es que información quieres en esa tabla,

¿Tal vez en esta estructura?

nº  fecha                 Item     Cat 

1     10/09/2017        1         1

1     10/09/2017       2           2

1     10/09/2017       3          3

exacto! seria asi!

nº  fecha                 Item               Cantidad 

1     10/09/2017       chapa         12

1     10/09/2017       tornillos         2 

1     10/09/2017       tirante         10

el tema es no repetir la orden de entrega ni la fecha. Solo ingresar por única vez los datos de Orden y fecha y los demás item y que con un botón guarde los registros por separados o sea:

nº orden __1____     fecha __10/09/2017____

 Item               Cantidad 

1     10/09/2017       chapa         12

1     10/09/2017       tornillos         2 

1     10/09/2017       tirante         10

etc y poder después realizar filtros. gracias

Es imposible no repetir el numero orden(Es tu identificador supongo) . Ya que una orden puede tener varios ítem, y si solo insertas el numero de orden. No tendrás ninguna posibilidad de saber a que orden corresponde.

Lo puedes hacer como te lo indica Icue González.

O con código como yo siempre lo realizo.(Todo depende de cual sea tu nivel de access)

Una forma parecida en que yo lo haría es la siguiente:

https://www.youtube.com/watch?v=BSWXq-mMLKM&list=PLsbpurIPHmoKiBVg0vRV5iT07zSFHdrfx 

El código esta en la descripción de cada vídeo.(Puedes ver que al momento de imprimir el ticket es necesario el repetir el numero de orden(Identificador).

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas