No consigo cambiar el nombre de una tabla con vba

Tengo el siguiente código que quiero ejecutar en runtime access y no consigo que me cambie el nombre de una tabla.

En concreto, en la base de datos tengo una tabla llamada CAIT2 y CAIT. Y una consulta donde anexo ambas tablas llamada CAIT 3. Con este código, lo que pretendo es pasar los datos de la tabla CAIT a CAIT2, por medio de la consulta CAIT 2. Y, luego, cambiar el nombre de CAIT2 a CAIT, pero no hace el cambio de nombre.

¿Por qué quiero hacer esto? ¿Por qué la tabla CAIT2 tiene nuevos campos que no están en la tabla CAIT? Quiero actualizar esta última tabla a una nueva, con el mismo nombre, pero más campos.

 DoCmd. OpenQuery "CAIT 3"
    DoCmd. DeleteObject acTable, "CAIT"
    DoCmd. Rename "CAIT", acTable, "CAIT2"

1 respuesta

Respuesta
1

La primera pregunta que me surge es ¿para qué crear una consulta? Porqué no cambiarle el nombre directamente. Por ejemplo tengo la tabla Productos

Y la tabla Existencias, que como puedes ver, en este caso, los campos son diferentes, pero si fueran iguales sería lo mismo.

Y en un botón, aunque podría ser desde cualquier sitio

Al pulsarlo, la tabla Existencias pasa a ser Productos

Y el código es el que has puesto.

De todas formas, para pasar datos de una tabla a otra sin necesidad de borrarla, puedes usar

Docmd.runsql"insert into Productos(CampoA,CampoB,CampoC,....) select Campo1, Campo2, Campo3 from Existencias where....

Gracias Julián. El motivo para hacer todo esto es que tengo una base de datos que he dejado a otras personas. Esta base de datos tiene dos archivos, siendo uno de ellos el que contiene los datos. El problema que tengo es que tengo que actualizar el archivo que contiene las tablas. En concreto, algunas tablas tienen ahora más campos que en la versión anterior. En este sentido, lo que quiero es enviar un archivo que actualice las tablas, agregando los nuevos campos.

El archivo de datos tiene varias tablas y, cada tabla, varios campos. El método que me has propuesto es, para mí, más complicado. Con las consultas es más fácil.

He ejecutado este código en access normal y parece funcionar bien, pero no sé qué ocurre que en los ordenadores con runtime access que la tercera línea del código (cambio de nombre) no funciona. Y, la verdad, estoy un poco perdido. No sé por qué el código, que parece estar bien, no cambia el nombre de las tablas. Runtime Access lo lee y no hace nada, ni siquiera me muestra un error. Es como si ignorase esa línea de cambio de nombre.

Este es el problema que tengo y no sé qué hacer.

Espero haberme explicado bien.

Creo que el comando Docmd.rename... no funciona en runtime access. No sé si estoy en lo cierto y, si es así, qué alternativa hay

Siento no poder decirte nada, ya que por suerte o por desgracia jamás he usado el runtime. Cuando tenía que usar una base en algún ordenador que no tuviera el Office, instalaba una copia poco legal, por no usar otro nombre.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas