Access 2000 crear un formulario con dos tablas

Tengo dos tablas:

- Datos establecimiento:

Con los campos: Ref., Nombre (Clave principal), NIF, Dirección y Representante.

- Datos anuales:

Con los campos: Id,Fecha, Ref., Nombre, Dirección, Mesas, Sillas, Expositores, Carteles, Metros.

En los campos Ref., Nombre y Dirección de las dos tablas están los mismos datos.

Lo que intento hacer es un formulario que tenga todos los campos sin repetición y que cuando introduzca un dato en un campo «repetido» se agreguen los datos introducidos a cada una de las tablas.

¿Qué campos de que tablas tengo que referenciar?

¿Tengo qué hacer primero alguna consulta?

En definitiva, como lo hago.

1 Respuesta

Respuesta
2

Vamos a ver si me explico. Si en la tabla Datos de Establecimiento tienes un campo único e irrepetible como es el Nif, ( o incluso el campo REF, que me da que también es único)¿Para qué quieres poner como clave el campo Nombre? ¿Para que quieres repetir datos en la tabla Datos Anuales.? Basta con dejarle a esta el campo NIF( o REF) y sobran los campos Nombre y dirección.

Haría el formulario sólo con la tabla Datos Anuales y cambiaría el campo(vamos a usar REF(pero podrías ser NIF) por un combinado con origen de la fila

Select REF, Nombre from [Datos establecimiento] group by ref,Nombre;

Luego en sus propiedades-Formato-Número de columnas pones dos y en ancho de columnas

0;6

Te lo pongo así porque siempre es más fácil acordarse del nombre que de un número de referencia.

Que luego quieres dar de alta un local nuevo. En el combinado Ref escribes la nueva referencia( o el nuevo NIF) y en el evento al no estar en lista crea un procedimiento de evento y pones

Dim Localnuevo As Integer, título As String, mensaje As Integer

título = "El local que ha escrito no está en la lista"
mensaje = vbYesNo + vbDefaultButton1
Localnuevo = MsgBox("¿Desea agregar este local a la lista ?", mensaje, título)
If localnuevo = vbYes Then
DoCmd.RunCommand acCmdUndo

DoCmd.OpenForm "Datos establecimiento", acNormal, "", "", acAdd, acDialog

Response = acDataErrAdded
End If

O sea, que cuando escribas una REF que no está en la lista, te avisará y que si quieres darlo de alta. Si le dices sí, se abre el formulario Datos Establecimiento en vista diálogo. Anotas sus datos y en cuanto cierres este formulario, en el combinado ya te aparece el valor REF( o NIF)

De todas formas, si crees que parece complicado, y quieres, repito, si quieres, mándame un mensaje (sólo el mensaje) a [email protected] y te mando un ejemplo. Si lo haces, en el asunto del mensaje pon tu alias Tona ya que si no sé quien me escribe ni los abro.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas