Sei sulla pagina 1di 7

Iniciarsesin

Comunidad de Programadores

Documentacin y Recursos

Foros y Consultas

Programadores

Programas

Otros

Cursos y Manuales
Biblioteca de Temas
Cdigo Fuente
Noticias/Artculos

Foros de Consulta
Preguntas/Respuestas
Tabln de Notas
Diccionario informtico

Programadores
Ofertas de Trabajo
Solicitudes para prog.
Lista de Correo

Programas/Utilidades
Nuestros Programas
Iconos y Cursores

Colaboradores
Encuestas/Estadsticas
Contactar

LWPForosAccessEliminarcolumnasymover
AnunciosGoogle

AccessSQL

Accessmdb

Accessbase

AccessPHP

AccessEliminarcolumnasymover
NuevoTema

Buscar

Volver
<< >>

Vista: arbol

Eliminarcolumnasymover
Nano(26/07/201316:52:26)
Eliminarcolumnasymover
Neckkito(26/07/201317:02:06)
Eliminarcolumnasymover
Nano(26/07/201317:28:35)
Eliminarcolumnasymover
Nano(26/07/201318:22:07)
Eliminarcolumnasymover
Neckkito(27/07/201309:31:58)
Eliminarcolumnasymover
Nano(27/07/201316:03:30)

Eliminar columnas y mover


Publicado por Nano(8 intervenciones) el 26/07/2013 07:42:25
Hola, soy ms que novato en el tema de Access y me gustara me pudierais echar una mano.
Tengo un archivo MDB, en l, van integradas varias Tablas con cuatro campos:
VAL / X / Y / NOMBRE
Lo que debo hacer es:
1.- Eliminar columna VAL en todas las tablas
2.- Mover al primer lugar la columna NOMBRE , quedando las Tablas as:
NOMBRE / X / Y
Se supone que con una macro se realiza esta tediosa tarea de eliminar y mover uno a uno cada elemento, pero no se por donde empezar.
Gracias por vuestra ayuda.

Valora esta pregunta

Responder

Otras secciones de LWP con contenido de Access


- Cdigo fuente de Access
- Cursos de Access
- Temas de Access

Cdigos de Access
- MsgBox Temporizados
- Contar das
- Captura la Pantalla y Guardarla en formato BMP

Eliminar columnas y mover


Publicado por 2pl(460 intervenciones) el 26/07/2013 07:59:11
No se por donde empezar pero cuando uno es ms que novato segn tu, lo primero que hay que hacer es leer algo de access.
El orden de los campos en las tablas no tiene mayor importancia ya que luego los puedes mostrar como quieras.
Para eliminar una campo solo tienes que entrar en diseo de las tablas y ahi borrar el campo que quieras.
Si quieres mover un campo, entras en diseo de las tablas, te situas en l y lo mueves como se hace en windows
PD: Si eres muy novato, primero leete algunos manuales y si no, la ayuda de access es estupenda.
Valora esta respuesta

Crearcuenta

Eliminar columnas y mover


Publicado por Neckkito(799 intervenciones) el 26/07/2013 08:07:09

Comentar

Vaya, 2PL, parece que estbamos "operando" sobre la misma consulta al mismo tiempo... :)
Saludos!
Neckkito
Valora esta respuesta

Comentar

Eliminar columnas y mover


Publicado por Neckkito(799 intervenciones) el 26/07/2013 08:05:23

Hola!
Un sistema muy simple para hacer lo que quieres, dado que comentas que no tienes mucha experiencia, es el que te propongo a
continuacin. Ahora bien, tambin te recomiendo que lo pruebes en una copia de tu BD, por si tienes algn desliz. As no perders la
informacin original.
El sistema es el siguiente:
1.- Coges la primera tabla y manualmente le cambias el nombre. Por ejemplo, si la tabla se llama NANO pues le pones de nombre NANOORIGINAL
2.- Te creas una consulta sobre la tabla NANO-ORIGINAL, colocando los campos que necesites en el orden que necesites.
3.- Conviertes esa consulta en una consulta de creacin de tabla. Cuando te pida el nombre de la nueva tabla le escribes NANO
4.- Ejecutas la consulta. As tendrs la tabla NANO creada segn la estructura que necesitas.
5.- Te recomendara que abrieras la tabla NANO recin creada en vista diseo y echaras un vistazo a los tipos de campos, para ajustarlos
segn sea el tipo de dato que realmente contienen.
Y as con el resto de tablas.
Si no necesitaras las tablas origen (NANO-ORIGINAL), una vez realizadas las operaciones, pues simplemente las borras.
A ver si el sistema te va bien.
Un saludo,

http://neckkito.siliconproject.com.ar
Valora esta respuesta

Eliminar columnas y mover


Publicado por Nano(8 intervenciones) el 26/07/2013 08:44:11
Vaya rapidez en las respuestas, gracias, voy con mis dudas:
2pl : Lo que quieres decir es hacerlo manualmente una por una?
Si es as, eso no es problema, lo estoy haciendo as, pero cuesta un tiempo engorroso.
La historia es hacer una macro u orden que tome todas las tablas y haga esa operacin.
Neckkito : Creo entender en tu propuesta es hacer lo mismo manualmente una tabla por una no?
Pero como digo anteriormente, eso ya lo estoy haciendo.
He visto por internet alguna "formula" para borrar columnas, pero no es efectiva.

Comentar

Soy nefito, en esto del access aunque se de programacin, pero no en este mundo del sql y Access.
Lo ideal es aplicar una formula Macro, el problema es hacerla bien
Gracias por vuestra ayuda, a ver si lo podemos solucionar

Valora esta respuesta

Comentar

Eliminar columnas y mover


Publicado por Neckkito(799 intervenciones) el 26/07/2013 10:03:54

Hola, Nano:
Hasta donde yo s, tenemos buenas y malas noticias.
Las buenas es que puedes eliminar el campo que quieras automticamente de todas las tablas. Eso se hara con el siguiente cdigo:
...
1

PrivateSubborroCampoTablas()

DimtblAsObject

DimmiSqlAsString

ForEachtblInCurrentData.AllTables

IfLeft(tbl.Name,4)<>"MSys"Then

miSql="ALTERTABLE["&tbl.Name&"]DROPCOLUMNVAL"

CurrentProject.Connection.ExecutemiSql

EndIf

Next

10

EndSub

...
Y te sigo recomendando que si ejecutas el cdigo anterior lo hagas sobre una copia de tu BD, por si las moscas.
Las malas noticias es que lo de mover la columna no es posible a travs de una SQL. He estado mirando por ah y te resumo las dos
respuestas que creo ms representativas (aunque no se refieran estrictamente a Access son perfectamente aplicables):
http://msdn.microsoft.com/es-es/library/aa337556.aspx
http://www.compartir-tecnologias.es/respuesta/t-sql-alter-table-con-posicion-columna-ayuda-208749391.html
Como vers, se hace referencia a un truco para manipular las tablas de sistema, pero en todos los casos no se recomienda. Y yo
tampoco te lo recomendara salvo que quieras jugar con quedarte sin BD.
Un saludo,
Neckkito

Valora esta respuesta

Comentar

Eliminar columnas y mover


Publicado por Nano(8 intervenciones) el 26/07/2013 12:14:25
Gracias Neckkito por tu ayuda.
He copiado y pegado tu escrito y me sale como un error en amarillo,
la lnea:
CurrentProject.Connection.Execute miSql
de momento ya es una ayuda lo tuyo, gracias.
Valora esta respuesta

Eliminar columnas y mover


Publicado por Neckkito(799 intervenciones) el 26/07/2013 12:16:24

Comentar

Qu nmero de error y descripcin te da?


Qu versin de Access ests empleando?

Valora esta respuesta

Comentar

Eliminar columnas y mover


Publicado por Nano(8 intervenciones) el 26/07/2013 13:37:44
Uso Access 2010, y dice:
"Se ha producido el error -2147467259(80004005) en tiempo de ejecucin
No se puede ejecutar las instrucciones de definicin de datos en orgenes de datos vinculados"
Si le doy a depurar, sale en amarillo la lnea:
CurrentProject.Connection.Execute miSql
Con respecto a mover columnas, lo hago manualmente y no hay ningn problema en ello, todo est OK.
Adems, son datos simples, sin ningn tipo de formulas o que tengan relacin las celdas unas con otras.
Es ms, si no es mucho pedir para ti Podras comprobarlo tu mismo?
Es decir, creas tres tablas por ejemplo, con los campos Val,X,Y,Nombre e intenta que en tus tres tablas haga la funcin que pido.
Porque luego esa macro se puede exportar e integrarla en mi archivo no?
Muchas Gracias por tu inters.
Valora esta respuesta

Comentar

Eliminar columnas y mover


Publicado por Neckkito(799 intervenciones) el 26/07/2013 14:00:30

Hola!
Pues las malas noticias son que tienes las tablas vinculadas, y la construccin SQL slo te permite modificar las tablas si estn
como tales en la BD (no vinculadas). Para que funcione el cdigo debera ejecutarse en la BD donde estn las tablas originales.
En este caso la nica solucin que le veo, si te es factible y no quieres tocar la BD origen de las tablas, es que no linkes las tablas,
sino que te las importes directamente. As s te funcionar el cdigo, porque lo acabo de probar en una BD que me acabo de
construir y funciona perfectamente.
En conclusin: que si las tablas estn vinculadas no se puede hacer (y, si hay manera de hacerlo, no se me ocurre cmo).
Un saludo,
Neckkito
Valora esta respuesta

Comentar

Eliminar columnas y mover


Publicado por Nano(1 intervencin) el 26/07/2013 15:08:39
Necckito FUNCIONA !!
He rehecho el archivo MDB y funciona la eliminacin de la columna.
Te estoy muy agradecido.
Hay alguna posibilidad de ajustar lo de mover la columna Nombre al primer lugar?
ahora la tabla se queda X,Y,NOMBRE pero para el programa que tengo que utilizar esa base, el orden de columnas debe ser:
NOMBRE, X,Y

Esto marcha Neckkito


Valora esta respuesta

Comentar

Eliminar columnas y mover


Publicado por Neckkito(799 intervenciones) el 26/07/2013 16:25:40

Pues... prueba lo siguiente en una copia de tu BD, pues tengo mis dudas de que te vaya a funcionar, pues es un pequeo
apao...
Haz lo siguiente:
- Crate una tabla en blanco y gurdala como TPlantilla. La estructura de esta tabla tiene que ser los campos con el orden en
que los quieres: Nombre, X, Y
- En un mdulo inserta este cdigo:
...
1

PrivateSubreconstruyoTablas()

DimtblAsObject

DimmiSqlAsString

'RecorrolastablasdelaBD

ForEachtblInCurrentData.AllTables

'CojoslolasquenosondesistemaniTPlantilla

Iftbl.Name<>"TPlantilla"Then

IfLeft(tbl.Name,4)<>"MSys"Then

'BorrolosdatosdeTPlantilla

10

DoCmd.SetWarningsFalse

11

DoCmd.RunSQL("DELETEFROMTPlantilla")

12

DoCmd.SetWarningsTrue

13

'MecreolaSQLdeanexiondedatos

14

miSql="INSERTINTOTPlantilla(Nombre,X,Y)"_

15

&"SELECT["&tbl.Name&"].Nombre,["&tbl.Name&"].X,["_

16

&tbl.Name&"].YFROM["&tbl.Name&"]"

17

'AnexolosdatosaTPlantilla

18

DoCmd.SetWarningsFalse

19

DoCmd.RunSQL(miSql)

20

DoCmd.SetWarningsTrue

21

'CambioelnombredeTPlantilla

22

DoCmd.Renametbl.Name&"tmp",acTable,"TPlantilla"

23

'Copiolanuevatablacomoplantilla

24

DoCmd.CopyObject,"TPlantilla",acTable,tbl.Name&"tmp"

25

'Borrolatablaoriginal

26

DoCmd.DeleteObjectacTable,tbl.Name

27

'Vuelvoadejarelnombrequetena

28

DoCmd.Renametbl.Name,acTable,tbl.Name&"tmp"

29

EndIf

30

EndIf

31

Next

32

EndSub

...
Ejecuta el cdigo... y cruza los dedos.
A ver si te funciona.
Un saludo,
Neckkito
Valora esta respuesta

Comentar

Eliminar columnas y mover


Publicado por Nano(8 intervenciones) el 26/07/2013 16:52:26
Sera crear esa tabla dentro de la misma base de datos que tengo?

Por cierto, he visto esta otra posibilidad, que es intercambiar datos de columnas.
Se podra hacer: Pasar los datos de NAME a la primera columna VAL y despus borrar NOMBRE.
Los datos son muy pequeos, entre 1 y 10 filas mximo.
y en todo caso la columna VAL, ponerla con 50 caracteres, ya que la de NOMBRE tendr eso ms o menos y la actual VAL es
de solo 10 caracteres.
Valora esta respuesta

Comentar

Eliminar columnas y mover


Publicado por Neckkito(799 intervenciones) el 26/07/2013 17:02:06

Hola!
S, la tabla estara dentro de la BD con las tablas que quieres cambiar.
Lo que te recomiendo es: copia de tu BD - Prueba a ver si funciona.
Respecto del sistema que propones digamos que son "los mismos perros con distintos collares". Te vuelves a encontrar con
el mismo problema saber cmo recorrer todas las tablas y hacer el cambio en cada una de ellas.
Saludos,
Neckkito
Valora esta respuesta

Comentar

Eliminar columnas y mover


Publicado por Nano(8 intervenciones) el 26/07/2013 17:28:35
Bueno, pues va funcionando la cosa bastante bien.
Tengo un problemilla que es cuestin de poco, las columnas X Y son valores con decimales.
Por ejemplo : 20.55822 o -2.5855210 y aunque le he dado al campo, valor Numrico y con 6 decimales, no me los separa.
Es cuestin de afinarlo a ver.
Bueno, pues lo he puesto como valor Texto y respeta los decimales
Otra pregunta: Se pueden meter los dos cdigos a la vez en la misma macro o mdulo?
Tendra que crear antes la TPlantilla.
Y... Se puede tener la tabla TPlantilla exportada para en prximas ediciones con nuevos ficheros,importarla y no tener que
volver a crearla? As la tendra de muestra como las macros

MUCHAS GRACIAS AMIGO


Me has ayudado muchsimo y te lo agradezco
Nano
Valora esta respuesta

Eliminar columnas y mover


Publicado por Nano(8 intervenciones) el 26/07/2013 18:22:07
Bueno Neckkito, TODO SOLUCIONADO y

Comentar

He pegado los dos scripts en un mdulo, y funciona perfectamente.


Tengo en un archivo separado la TPlantilla , Abro la base de datos MBD, pego la Tplantilla, Abro un mdulo, copio el escript,
lo ejecuto y Voil, todo como quiero
Campos, NAME / X / Y
Y ordenados bien perfectamente.
Te doy mil gracias por tu colaboracin y paciencia que has tenido, espero que este post pueda ayudar a ms gente.

Valora esta respuesta

Comentar

Eliminar columnas y mover


Publicado por Neckkito(799 intervenciones) el 27/07/2013 09:31:58

Bueno... Ha sido un "hueso un poco duro de roer", pero me alegro muchsimo de que al final te haya funcionado como
quieres
Un cordial saludo,
Neckkito
Valora esta respuesta

Comentar

Eliminar columnas y mover


Publicado por Nano(8 intervenciones) el 27/07/2013 16:03:30
Lo cierto que con gente con conocimientos como t, con paciencia y disponibilidad da gusto entrar por aqu, en algunos
otros sitios van de sobrados y de genios arrogantes.
Eres un fenmeno Neckkito.

Valora esta respuesta

Comentar

utilizacionthengoto

ErrorVBAAutomatizarImportacindeExcelaAccess

La Web del Program

LaWebdelProgramador
Megusta

Seguir

A13514personaslesgustaLaWebdelProgramador.

Seguira@lwp_

+1

+ 3.926

InformacinyRecursos

ForosyConsultas

Programadores

Programas

Otros

CursosyManuales
BibliotecadeTemas
CdigoFuente
Noticias/Artculos

ForosdeConsulta
Preguntas/Respuestas
TablndeNotas
Diccionario

Programadores
OfertasdeTrabajo
Solicitudes
ListadeCorreo

Programas/Utilidades
NuestrosProgramas
IconosyCursores

Colaboradores
Encuestas
Contactar

PluginsocialdeFacebook

Copyright20002015InteractiveProgrammersCommunityTodoslosderechosreservados

2,168seguidores

Potrebbero piacerti anche