He creado una consulta de creación de tabla con Access 2000 en otra base de datos pero quiero que indexe un campo de la nueva tabla, ya que cuando la crea, borra la anterior y pierde el indice. He indexado antes el campo de la tabla anterior pero al ejecutar la consulta no traspasa el indice. No se que más probar, si me pudieras ayudar te lo agradecería mucho.
Lo que te ocurre es que cada vez que realizas la consulta de creación de tabla, el proceso elimina la tabla que tienes creada con indices, y la vuelve a crear con la nueva estructura definida por la consulta, pero sin indices. Para poder realizar la tarea que deseas debes configurar la tabla de destino con los indices que deseas y posteriormente realizar dos pasos. Primero: Debes crear una consulta de datos añadidos cuyo origen sea el mismo que utilizas ahora, y cuyo destino sea la tabla que hasta ahora se borraba y creaba cada vez. Segundo: Debes crear una consulta de actualización relacionando la tabla de origen y la tabla destino, y actualizando los campos destino con los campos origen. Este proceso es casi similar al de creación de tabla, con la salvedad de que mantienes los registros existentes en la tabla destino. Por ultimo, si existe la posibilidad de que en la tabla de origen se eliminen registros y quieras mantener la misma coherencia de datos, entonces debes establecer una relación entre las tablas basada en integridad referencial, con el fin de hacer consistentes los datos.
Rogaría me lo explicaras algo mejor Muchas Gracias, Saludos
Voy a intentar explicarme mejor. El proceso que tu utilizas, lo que hace es eliminar la tabla que tienes creada con indices, y la vuelve a crear con la nueva estructura definida por la consulta, pero claro esta, esta vez sin indices. Esto me parece que esta claro. Ahora bien, si deseas utilizar un método alternativo, como el que te proponía en mi primera respuesta debes seguir estos pasos. Primero. Crea una Tabla (TablaDestino) con la estructura que deseas para el destino de tus datos, creando los indices necesarios y la clave primaria que estimes conveniente. Segundo. Crea una consulta de datos añadidos tomando como Tabla de origen la tabla desde la que deseas obtener los registros (TuTabla), e indicando los campos origen y destino para cada columna de la consulta. Ejemplo TuTabla. Campo1 -> TablaDestino. Campo1... Este proceso lo que hará es incorporar los registros que no existan a la nueva Tabla. Tercero. Crea una consulta de actualización relacionando la tabla de origen (TuTabla) y la tabla destino (TablaDestino), y actualiza los campos destino con los campos de la tabla de origen. Este proceso es casi similar al de creación de tabla, con la salvedad de que mantienes los registros existentes en la tabla destino con la estructura deseada (Indices y clave primaria). Por ultimo, si existe la posibilidad de que en la tabla de origen se eliminen registros y quieras mantener la misma coherencia de datos, entonces debes establecer una relación entre las tablas basada en integridad referencial, con el fin de hacer consistentes los datos. Ademas, si deseas que la Tabla de destino se generé cada vez con datos limpios, debes crear antes de todo lo anterior una consulta de eliminación para la tabla de destino.
- Anónimoahora mismo
Respuesta
0
0
Anónimo
En vez de marcarlo como indexado marca el campo de la tabla que no te indexa como clave primaria. En las bases de datos como dios manda, las tablas esta ordenadas físicamente por la clave primaria
Hola No puedo poner la clave primaria al campo puesto que tengo varios registros duplicados, ademas de que viene de una tabla vinculada de ODBC. Saludos Francisco Javier
Pues tienes mal diseñada la base de datos. En teoría de bases de datos relacionales hay un concepto llamado normalización de la base de datos. Creo que deberías leer algo sobre esto. En cuanto a tu problema, tendrás que ordenar manualmente la tabla antes de presentar los datos