Error al introducir datos que no se encuentran en la tabla relacionada

Tengo una tabla de Access con dos tablas relacionadas. Por un lado tengo "Cliente Plus" y por la otra tengo "Pedidos". Tengo un formulario para rellenar los Pedidos, que cuando introduzco el número de cliente, si lo ha encontrado dentro de la tabla "Cliente Plus" rellena el nombre y la dirección.

El problema es que cuando intento introducir el pedido de un cliente que no es Plus, no me lo permite, me aparece el error "El motor de la base de datos de Microsoft Access no puede encontrar ningún registro en la tabla "Clientes Plus" con los campos clave "Nº Cliente" coincidentes.".

Lo que necesito es que si no encuentra los datos de nombre y dirección me deje rellenarlos a mano, que quede guardado en la tabla pedidos, pero no los incluya en la tabla Clientes Plus. ¿Es posible?

2 respuestas

Respuesta
1

Pon un botón de acceso a la otra tabla y cuando salte el error pinchas el botón rellenas los datos del cliente y cierras la tabla y vuelves a introducir los datos anteriores

El problema es que no quiero que estén en la otro tabla, ya que no pertenecen a esa categoría de cliente. Quiero poder crear el registro en la tabla Pedidos sin que afecte a la tabla cliente

Según parece que tienes construidas las referencias, lo que puedes hacer es crear un cliente "VARIOS" y todos esos pedidos de clientes que no pertenecen a esa categoría los pones como "VARIOS".

Respuesta
1

El problema lo tienes, casi seguro, en la relación entre tablas. Si has marcado Integridad referencial, exige que haya un registro relacionado en la tabla Clientes Plus. Si el control donde ¿escribes o eliges el número de cliente? Al que para el ejemplo llamaremos Numcliente, puedes poner en su evento Después de actualizar

If dcount("*","[clientes plus]","[nº cliente]=" & me.numcliente & "")>=1 then

nombre=dlookup("nombrecliente","[clientes plus]","[nº cliente]=" & me.numcliente & "")

end if

Así, cuando escribas( o elijas) un número de cliente, comprueba si ese número existe en la tabla Clientes Plus,. Si lo hay, en el control nombre te pone su valor, si no existe no hace nada. De todas formas, convendría saber como tienes construido el formulario.

Hola!

No está marcada la Integridad Referencial, y la relación es todos los registros de la tabla PEDIDOS y solo aquellos que coincidan de la tabla CLIENTES_PLUS

Intento poner la fórmula que comentas en el origen de control del campo Nombre:

=SiInm(DCont("*";[CLIENTES_PLUS];[NUMCLIENTE]);DBúsq([CLIENTES_PLUS]![NOMBRE_CLIENTE];[CLIENTES_PLUES];[Ncliente]=[CLIENTES_PLUS]![NUMCLIENTE]);" ")

Pero solo me devuelve #¿Nombre?

¿Y alguna otra manera?

La instrucción era para ponerla en código VB. Por otro lado, cuando sale eso de #¿nombre?# es porque no encuentra en la tabla uno de los nombres que has puesto. Creo que es mejor que si quieres, repito, si quieres, mándame una copia con datos inventados de las tablas a [email protected] y te pongo un par de ejemplos.

Si lo haces, en el asunto del mensaje pon tu alias Carla, ya que si no sé quien me escribe ni los abro.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas