Formulario continuo access tipo "parte diario"

Quisiera saber si es posible hacer un formulario de varios elementos/continuo en el que en la cabecera se incluyera un campo (por ejemplo fecha) y otro de numeración que me permitiera que a la hora de ingresar los datos, a todos los que he metido con ese formulario, queden guardados con esos valores "comunes"
Muchas gracias a todos.
Quizás se resuelve creando una tabla donde tendría los campos id nhoja y otra con id fecha para después ir añadiendo registros en una tercera tabla. Ejemplo: En el día 07/07/2010 se han rellenado 2 hojas (la nº 3 y la nº4) conteniendo la primera 14 artículos y la segunda 7 artículos. Esos artículos irían autonumerados por lo que tampoco sé si al coger "una nueva hoja" me siguiera correlativamente los números.
Espero que me haya explicado con claridad, porque "claramente" yo no consigo ni ver cómo relacionarla ni mucho menos diseñarla (por si acaso... En el trabajo tengo 2007 y en casa uso OpenOffice).

1 Respuesta

Respuesta
1
No había contestado antes porque esperaba a ver si otro experto te contestaba, porque yo no tengo ni idea de cómo hacer lo que comentas en lo que se refiere al tema de las páginas.
Sin embargo, ante la ausencia de respuesta, te propongo una solución alternativa. En vez de funcionar por páginas se podría funcionar por número de parte.
Para hacer eso te lo voy a explicar mediante un ejemplo:
1. Creamos una tabla (llamémosla "Datos") con los siguientes campos:
.- Id: autonumérico
.- Nombre: texto
.- Fecha: fecha
.- Parte: número
2. Creamos un formulario basado en la tabla "Datos". En la cabecera de formulario insertamos dos cuadros de texto, que tendrán las siguientes características
.- A uno de ellos lo llamamos "txtFecha" y dentro escribimos (sin comillas): "=Fecha()"
.- Al otro lo llamamos txtParte. Lo dejamos en blanco
3. En las propiedades del formulario, en el evento "Al cargar", le ponemos el siguiente código:
---
Private Sub Form_Load()
    Dim ultimoParte As Variant
    ultimoParte = DMax("[Parte]", "Datos")
    If IsNull(ultimoParte) Then
        ultimoParte = 1
    Else
        ultimoParte = ultimoParte + 1
    End If
    Me.txtParte.Value = ultimoParte
End Sub
---
4. Volvemos al formulario y a los campos "Fecha" y "Parte" les ponemos que no son punto de tabulación (Propiedades->Pestaña Otras-> Punto de tabulación: NO)
5. Sacamos las propiedades del campo "Nombre" y al evento "Después de actualizar" le escribimos este código:
---
Private Sub Nombre_AfterUpdate()
    Me.Fecha.Value = Me.txtFecha.Value
    Me.Parte.Value = Me.txtParte.Value
End Sub
---
Así, al acabar de escribir en el campo "Nombre", los campos "Fecha" y "Parte" se autorrellenarán en función de los datos que tengas en la cabecera del formulario.
Cada vez que abras el formulario te cogerá la fecha actual y creará un número de parte consecutivo, según el valor del último parte dado de alta. Si por casualidad no pudieras acabar un parte (supongamos el 15) y tienes que salir del formulario, cuando vuelvas a entrar el número habrá cambiado a 16. No pasa nada: cambias ese 16 por un 15 y sigues con la introducción de registros.
Bueno. Espero que esta solución propuesta se pueda adaptar a lo que necesitas.
Ya me dirás cosas.
Me temo que es mucho más complicado de lo que creía... Investigaré lo que me cuentas, aunque mis conocimientos de Access son bien escasos. Estoy aún empezando.
Aun así, lo intentaré y te valoraré positivamente por la molestia :).
Ante cualquier problemilla me lo comentas, e intentaré explicártelo con más detalle.
Ya me dirás cosas.
Muchas gracias por las molestias, no te puntúo con un mero "bien" porque te has tomado una gran molestia desarrollándolo. Intentaré investigar a ver cómo puedo hacer lo que me comentas (como te digo... Access nivel 1/1000 jajaja)o ver si una solución más simple me serviría.
Si vuelvo a retomar el tema, lo haré con el mismo titulo.
Nuevamente, muchas gracias.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas