Problema con tablas en access.

Hola!!! Estoy tratando de hacer una base de datos relativo a los clientes, pero los cuales a su vez deben separarse en dos tablas llamadas "Personas Físicas" y "Personas Morales", ambas con id_cliente, El Id debe ser automático y se debe asignar consecutivamente para ambas. Es decir, lo que quiero que haga la base de datos es que al ingresar un cliente,
por ejemplo en "Personas Físicas" ésta le asigne el id. 1 al registro. Y
Si después ingreso otro registro pero esta vez en la tabla de Personas
Morales, se asigne automáticamente el id. 2 al registro. ¿Cómo puedo
lograr ésto?. Pensé en crear una tercera tabla, pero creo que ya me perdí en el proceso, pues soy nueva en esto.


Aparte tengo otra tabla llamada operaciones, que es sobre cada operación que realizan los clientes. Por cada cliente habrá varias operaciones.

Agradezco la ayuda que me pueda proporcionar.

1 Respuesta

Respuesta
1

Puedes hacer una sola tabla de CLIENTES y uno de los campos puede contener el tipo de persona. (Física, Moral) y así no es necesario que tengas mas de una tabla. Y para el consecutivo solamente el campo Cliente (autonumérico) debe ser del tipo autonumérico. De esta forma tienes un solo consecutivo y más de un tipo de persona.

En un principio esa era la idea. Sin embargo, varían algunos datos dependiendo del tipo de persona. ¿podía enviarte el archivo para que tengas una mejor idea de mi duda?

Si mándamela. [email protected]

Si quieres llevar un consecutivo para ambas tablas, debes crear una tabla donde se pueda tener un folio consecutivo que te sirva para las dos tipos de persona. Además crear una función sencilla que cada vez que la llames, aumente el folio (esto lo puedes poner en el evento "antes de actualizar" del formulario de captura de las personas (físicas, morales) puedes utilizar la misma función en ambos formularios. De esta manera llevarás un solo consecutivo para los dos.

Por ejemplo: utilizando una tabla llamada "contador" con los campos: contador y siguiente, puedes utilizar una función como esta:

Function increcontador(C As String) As Variant
Dim con As Recordset
Set Db = DBEngine.Workspaces(0).Databases(0)
Set con = Db.OpenRecordset("Select * From Contador Where "Contador='" & ) c &"'"
if con.recordcount > 0 then
If con.Updatable Then
con.Edit
increcontador = con!siguiente
con!siguiente = con!siguiente + 1
con.Update
Else
MsgBox "Contador: " + C + " No Actualizable", 16, "Error en Contador Automático"
increcontador = Null
End If
End If
End Function

Una pregunta: esta tabla que voy a crear como contador ¿la voy a relacionar con las otras dos? y si es así, ¿cuál es el campo que debe relacionarse?

No tienes que relacionarla, solamente se usa para llevar un folio (consecutivo) te mandé el ejemplo en tu BD.

Recuerda finalizar la pregunta, cuando ya ha sido resuelta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas