Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

[SOLUCIONADO] el motor de base de datos no encuentra campos clave Id coincidentes

Estas en el tema de el motor de base de datos no encuentra campos clave Id coincidentes en el foro de Bases de Datos General en Foros del Web. Hola a todos. Hacía algún tiempo que no entraba en el foro pues he estado muy liado, y, cuando por fin puedo visitarlo, lo hago ...
  #1 (permalink)  
Antiguo 09/11/2013, 02:47
 
Fecha de Ingreso: agosto-2013
Mensajes: 9
Antigüedad: 10 años, 7 meses
Puntos: 0
el motor de base de datos no encuentra campos clave Id coincidentes

Hola a todos. Hacía algún tiempo que no entraba en el foro pues he estado muy liado, y, cuando por fin puedo visitarlo, lo hago (una vez más) para pedir ayuda (ojalá algún día pueda ayudar yo a alguien)
Mi problema es el siguiente:
Estoy intentando montar una bdd en access 2007. En ella, entre otras, hay dos tablas principales:
Tabla clientes con los siguientes campos:
Idcliente (Campo clave, autonumérico, indexado sin duplicados)
dni (campo texto)
apellidos (campo texto)
nombre (campo texto)
fecha nacimiento (campo fecha)
dirección (campo texto)
teléfono (campo número, entero largo
correo electrónico (campo texto)
y tabla pedidos con estos campos:
Idpedido(Campo clave, autonumérico, indexado sin duplicados)
Idcliente(Campo número, indexado con duplicados)
fecha pedido (campo fecha, también como campo clave)
código producto (Campo número, entero largo
nombre producto (campo texto)
producto en almacén (casilla verificación si/no)
estas tablas están relacionadas a través del campo IdCliente, relación uno a varios exigiendo integridad referencial.
He creado dos formularios: formulario clientes y formulario pedidos con los mismos campos. En el form clientes he colocado un botón de comando, el cual tiene asociado al evento "Al hacer click" el siguiente código
DoCmd.openForm "pedidos"
En el form pedidos y asociado al evento de formulario "al cargar" he colocado el siguiente código
DoCmd.GoToRecord , , acNewRec
IDcliente.Value = Forms!clientes!IDcliente.Value

DoCmd.GoToControl "fecha pedido"
DoCmd.Close acForm, "clientes", acSaveYes

La idea es que, al cerrar el form pedidos, me guarde los datos de ambos formularios en las correspondientes tablas sin necesidad de tener que teclear el Idcliente en el form pedidos (que lo coja automáticamente, vamos) Y en principio funcionó bien. El problema vino cuando intenté preparar la base para llevarla al trabajo. Borré todos los registros de prueba que había metido y compacté la base para poner los autonuméricos a cero. Además la idea es compactar de forma automática la base cada vez que la cerremos... A partir de ese momento y, a pesar de que en el form pedidos aparece el Idcliente que se creó en el form clientes, cuando cierro me da el mensaje "el motor de base de datos microsoft office acces no encuentra en la tabla clientes registros con el campo clave Idcliente coincidentes" y no me guarda nada. Sin embargo, si tecleo dicho campo en el form pedidos, sí que me lo guarda... Supongo que, al compactar y reparar, access encuentra alguna inconsistencia en el código VBA utilizado, pero no se cual pueda ser. ¿Alguien puede ayudarme, por favor? (No sé si he sabido explicarme, por favor si no se entiende, hacédmelo saber e intentaré explicar esto un poco mejor)
Gracias a todos por vuestro interés y vuestra ayuda.

Etiquetas: bd, campo, campos, clave, encuentra, motor, registro, siguiente, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:03.