Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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)
Responder
Cdigos de Access
- MsgBox Temporizados
- Contar das
- Captura la Pantalla y Guardarla en formato BMP
Crearcuenta
Comentar
Vaya, 2PL, parece que estbamos "operando" sobre la misma consulta al mismo tiempo... :)
Saludos!
Neckkito
Valora esta respuesta
Comentar
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
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
Comentar
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
Comentar
Comentar
Comentar
Comentar
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
Comentar
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
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
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
Comentar
Comentar
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
Comentar
utilizacionthengoto
ErrorVBAAutomatizarImportacindeExcelaAccess
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