Crear Formulario Tipo Lista Access

Tengo 80 Maquinas operado cada una con un numero de orden distinto

Necesito crear un formulario que al abrir me ponga Automáticamente los números de la Maquinas del 1 al 80,,, y la fecha Actual

Y si se pudiera traer los números de Orden de cada Maquina

(Los números de orden ya están en otra tabla con su respectiva Maquina)

Esto con el fin de poder guardar estos 80 registros en una tabla distinta

Inserto imagen de más o menos el diseño del formulario

O si tienen una mejor Opción más fácil mejor

2 respuestas

Respuesta
2

Vamos a suponer que la tabla que ya tienes se llama Pedidos y que quieres insertar 80 registros nuevos en la tabla Solicitudes, que tiene más o menos los mismo campos que la tabla Pedidos. Con la tabla Solicitudes haría un formulario continuo y en el evento Al abrir, le pondría algo como

Docmd.setwarnings false

Dim i as integer

I=dcount("*","pedidos")  Esto es para que sepa cuantos registros tiene que insertar en la tabla Sol..

for i=1 to i

docmd.runsql"insert into Solicitudes(Maquina,Fecha)values(" & i & ",Date())"

next

Me. Requery

una pregunta se podría hacer .. pero con un formulario independiente ??

El problema del formulario independiente es que al no tener el "respaldo" de una tabla, lo que te escribiera en el registro 1 te aparecería en el 2. Lo que escribieras en el dos te aparecería en el 1 y el 2. Lo que escribieras en el 3 te aparecería en el 1, 2 y 3 y así sucesivamente.

Pero tiene una solución sencilla, crea una tabla Auxiliar con los mismos campos( no hace falta que se llamen igual, sí ser de datos compatibles), totalmente vacía. Con esta tabla creas un formulario continuo y entonces ya le puedes dar la instrucción

Por ejemplo, si tengo la Tabla1 con

Con la tabla Aux creo un formulario continuo( por comodidad a los cuadros de texto le he puesto los mismos nombres que los campos de la tabla1

Cuando lo abro

En el evento Al abrir del formulario le he puesto

Private Sub Form_Open(Cancel As Integer)
DoCmd.SetWarnings False
Dim i As Byte
For i = 1 To DCount("*", "tabla1")
DoCmd.RunSQL "Insert into aux(nummaquina,fecha,numorden,producto,diseño) select * from tabla1 where nummaquina=" & i & ""
Next
Me.Requery
End Sub

Luego, si quieres, en el evento Al cerrar del formulario le pones, por ejemplo

Docmd.setwarnings false

Docmd. Runsql"delete * from aux"

Así, cuando hayas terminado de hacer lo que quieras en el formulario y lo cierres, te borra la tabla Aux dejándola "limpia" para un nuevo uso.

Respuesta

Esta respuesta no se puede tomar tan de prisa, en consecuencia he elaborado este ejemplo con base en:

3 tablas y 1 formulario

TABLAS

Esta es la tabla origen de datos del formulario. El campo fecha se ha definido el Valor predeterminado como Fecha().

Esta tabla lleva los registros de cada maquina y tiene como índice principal los campos fecha, maquina y orden SIN Repetidos.

FORMULARIO

Al Abrir el formulario si ya hay datos pregunta con el siguiente mensaje.

Al hacer clic en continua con los datos que venían, en caso contrario retira todos los registros.

CODIGO

Código del evento Al abrir

Código del botón incorporar 

Si quiere el ejemplo lo puede solicitar a [email protected], favor en el asunto hacer referencia a la consulta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas