¿Alguien sabe cómo modificar una especificación de importación existente en Microsoft Access 2007 o 2010? En versiones anteriores solía haber un botón Avanzado que se presentaba durante el asistente de importación que le permitía seleccionar y editar una especificación existente. Ya no veo esta función, pero espero que aún exista y que haya sido trasladada a otra parte.¿Cómo puedo modificar una especificación de importación de Microsoft Access 2007 o 2010 guardada?
Respuesta
Soy capaz de utilizar esta característica en mi máquina usando MS Access 2007.
- En la cinta, seleccionar datos externos
- Seleccione el "Archivo de texto" opción
- Esto muestra el Obtener externa Asistente de datos
- Especifique la ubicación del archivo que desea importar
- Haga clic en Aceptar. Muestra el "Asistente de importación de texto"
- En la parte inferior de esta pantalla de diálogo está el botón Avanzado al que hizo referencia
- Al hacer clic en este botón, debe mostrar la pantalla Importar especificación y seleccionar y modificar una especificación de importación existente.
Por lo que su valor, estoy usando Access 2007 SP1
No creo que haya una manera de soporte directo. Sin embargo, si está desparato, en Opciones de navegación, seleccione para mostrar los objetos del sistema. Luego, en su lista de tablas, aparecerán las tablas del sistema. Dos tablas son de interés aquí: MSysIMEXspecs y MSysIMEXColumns. Podrás editar información de importación y exportación. ¡Buena suerte!
Esas tablas no son editables por el usuario. Solo pueden ser editados a través de Jet. –
David, puedo editar las tablas MSysIMEXColumns y MSysIMExSpecs para nombrar campos y cambiar tipos. No lo probé exhaustivamente, y obviamente no lo soporté, pero SON editables. – Knox
Esto debe ser algo que ha cambiado en A2K7, ya que no tengo una versión de Access que me permita editarlos directamente (A97, A2K2, A2K3). –
Tim Lentine's answer parece ser cierto incluso en la versión completa. Solo hay otra cosa que me gustaría mencionar.
Si completa su importación sin entrar en "Avanzado ..." y guarda la especificación, pero guarda la importación para volver a utilizarla al final del asistente (nueva función AFAIK), no podrá ir volver y editar esa especificación Está integrado en la "Importación guardada". Esto puede ser a lo que Knox se refería.
Puede, sin embargo, hacer una obra parcial alrededor:
- Importar un nuevo archivo (o el mismo de nuevo) pero,
- Esta vez optan por añadir, en lugar de hacer una nueva
- Haga clic en Aceptar.
- Vaya a "avanzado" Todos los encabezados de columna y tipos de datos estarán allí.
- Ahora puede hacer los cambios que necesita y guardar las especificaciones dentro de ese cuadro de diálogo. A continuación, cancele la importación (eso no es lo que quería de todos modos, ¿no?)
- Puede usar esa especificación para cualquier importación posterior. No es una solución completa, pero ahorra parte del trabajo.
También vea: http://luke.gedeon.name/blog/2009/05/edit-saved-import-steps-access-2007-partial-workaround.html – waanders
en la cola de finales de 2012 esto aparentemente sigue siendo el único método, con Office 2010. Gracias por documentar la solución. –
A continuación se detallan las tres funciones que puede utilizar para modificar y utilizar la especificación de importación de MS Access 2010. El tercer submarino cambia el nombre de una especificación de importación existente. El segundo sub le permite cambiar cualquier texto xml en la especificación de importación. Esto es útil si necesita cambiar los nombres de las columnas, los tipos de datos, agregar columnas, cambiar la ubicación del archivo de importación, etc. En esencia, cualquier cosa que quiera modificar para una especificación existente.El primer Sub es una rutina que le permite llamar a una especificación de importación existente, modificarla para un archivo específico que está intentando importar, importar ese archivo y luego eliminar la especificación modificada, manteniendo la "plantilla" de importación de la especificación inalterada e intacta. Disfrutar.
Public Sub MyExcelTransfer(myTempTable As String, myPath As String)
On Error GoTo ERR_Handler:
Dim mySpec As ImportExportSpecification
Dim myNewSpec As ImportExportSpecification
Dim x As Integer
For x = 0 To CurrentProject.ImportExportSpecifications.Count - 1
If CurrentProject.ImportExportSpecifications.Item(x).Name = "TemporaryImport" Then
CurrentProject.ImportExportSpecifications.Item("TemporaryImport").Delete
x = CurrentProject.ImportExportSpecifications.Count
End If
Next x
Set mySpec = CurrentProject.ImportExportSpecifications.Item(myTempTable)
CurrentProject.ImportExportSpecifications.Add "TemporaryImport", mySpec.XML
Set myNewSpec = CurrentProject.ImportExportSpecifications.Item("TemporaryImport")
myNewSpec.XML = Replace(myNewSpec.XML, "\\MyComputer\ChangeThis", myPath)
myNewSpec.Execute
myNewSpec.Delete
Set mySpec = Nothing
Set myNewSpec = Nothing
exit_ErrHandler:
For x = 0 To CurrentProject.ImportExportSpecifications.Count - 1
If CurrentProject.ImportExportSpecifications.Item(x).Name = "TemporaryImport" Then
CurrentProject.ImportExportSpecifications.Item("TemporaryImport").Delete
x = CurrentProject.ImportExportSpecifications.Count
End If
Next x
Exit Sub
ERR_Handler:
MsgBox Err.Description
Resume exit_ErrHandler
End Sub
Public Sub fixImportSpecs(myTable As String, strFind As String, strRepl As String)
Dim mySpec As ImportExportSpecification
Set mySpec = CurrentProject.ImportExportSpecifications.Item(myTable)
mySpec.XML = Replace(mySpec.XML, strFind, strRepl)
Set mySpec = Nothing
End Sub
Public Sub MyExcelChangeName(OldName As String, NewName As String)
Dim mySpec As ImportExportSpecification
Dim myNewSpec As ImportExportSpecification
Set mySpec = CurrentProject.ImportExportSpecifications.Item(OldName)
CurrentProject.ImportExportSpecifications.Add NewName, mySpec.XML
mySpec.Delete
Set mySpec = Nothing
Set myNewSpec = Nothing
End Sub
Todo lo que quería hacer era hacer que la ruta fuera dinámica, pero puedo afirmar que el segundo sub funciona muy bien en Windows10, Office2016 (reemplazando 'strFind' con" c: \ dynamicname.txt ",' strRepl' con la ubicación real, y luego reemplazándolo antes de configurar 'mySpec' a nada). – CWilson
Cuando deseo examinar o cambiar una especificación de importación/exportación, consulto las tablas en MS Access donde está definida la especificación.
SELECT
MSysIMEXSpecs.SpecName,
MSysIMexColumns.*
FROM
MSysIMEXSpecs
LEFT JOIN MSysIMEXColumns
ON MSysIMEXSpecs.SpecID = MSysIMEXColumns.SpecID
WHERE
SpecName = 'MySpecName'
ORDER BY
MSysIMEXSpecs.SpecID, MSysIMEXColumns.Start;
También puede utilizar una instrucción UPDATE o INSERT para alterar las columnas existentes o insertar y añadir nuevas columnas a una especificación existente. Puede crear especificaciones completamente nuevas usando esta metodología.
¿Por qué es tan complicado?
Sólo echa Objetos de sistema en Access-Opciones/Base de datos activa/Opciones de navegación/Mostrar objetos del sistema
abiertos "MSysIMEXSpecs" tabla y cambie de acuerdo a sus necesidades - es fácil de leer ...
Esto es lo mismo que la respuesta de 2008 de Knox. – Smandoli
Tim La respuesta de Lentine funciona SI tienes guardadas tus especificaciones. Su pregunta no especificó eso, solo indicó que había importado los datos. Su método no salvaría sus especificaciones de esa manera.
La manera de guardar las especificaciones de esa importación actual es volver a abrir la importación, presionar "apend" y eso le permitirá usar su configuración de importación actual que MS Access recogió. (Esto es útil si su deseo de mantener las especificaciones de importación desde un formato Excel que trabajó antes de importar en MS ACCESS.)
vez que esté en la opción apend, utilice las instrucciones de Tim, que está utilizando el opción avanzada y "Guardar como". Desde allí, simplemente haga clic en cancelar, y ahora puede importar cualquier otro dato similar a varias tablas, etc.
No se está refiriendo a Luke Gedeon, y esta respuesta está complementada con la respuesta de Tim Lentine y agrega información adicional que no se proporcionó anteriormente. Smandoli, parece que vas por ahí dejando caer puntos útiles sin ninguna razón. –
Acabo de descubrir un error evidente en toda la configuración de Importar/XML guardado en Access. También frustrado por la rigidez del sistema de Importación Guardada, creé formularios y escribí código para separar el XML en el que están almacenadas las especificaciones de Importación Guardada, hasta el punto que pude usar esta herramienta para crear una Importación Guardada desde cero a través de un código examen de un libro de Excel de origen.
Lo que descubrí es que, mientras Access importa correctamente una hoja de trabajo por modificaciones de configuraciones predeterminadas por el usuario (por ejemplo, le gusta tomar cualquier columna con un nombre de encabezado que termine con "ID" y convertirla en una campo indexado en la tabla resultante, pero puede cancelar esto durante el proceso de importación), y aunque también crea correctamente XML de acuerdo con los cambios del usuario, si deja caer la tabla y utiliza la importación guardada para volver a importar la hoja de trabajo, ignora la especificación de importación XML y vuelve a utilizar sus propios valores predeterminados inventados, al menos en el caso de las columnas "ID".
Puede probar esto por su cuenta: importe una hoja de cálculo Excel con al menos un nombre de encabezado de columna que termine con "ID" ("ID de pedido", "ID de usuario" o simplemente "ID"). Durante el proceso, asegúrese de establecer "Indexado" en No para esas columnas. Ejecute la importación y marque "Guardar pasos de importación" en la ventana de diálogo final. Si inspecciona el diseño de la tabla resultante, verá que no hay índice en los campos en cuestión. A continuación, elimine la tabla, encuentre la importación guardada y vuelva a ejecutarla. Esta vez, esos campos se establecerán como indexados en el diseño de la tabla, aunque el XML aún dice que no hay índice.
Estaba tirando de mi cabello hasta que descubrí lo que estaba pasando, comparando el XML que construí desde cero con ejemplos creados a través de la herramienta de acceso.
PS el error parece ser solo con la opción de índice en columnas con el sufijo "ID". The Saved Import guardó un índice que coloqué en un campo de texto. Pero cuando hay un nombre de campo que termina con ID, parece ignorar la configuración del índice en la especificación XML. –
Otra gran opción es el complemento gratuito V-Tools para Microsoft Access. Entre otras herramientas útiles, tiene una forma de editar y guardar las especificaciones de Importar/Exportar.
Nota: Desde la versión 1.83, hay un error en la enumeración de las páginas de código en Windows 10. (Al parecer debido a una función API falta/cambiado en Windows 10) El las herramientas aún funcionan muy bien, solo necesita comentar algunas líneas de código o pasarlo en la ventana de depuración.
Esto ha sido un verdadero salvavidas para mí en la edición de una especificación de importación compleja para nuestros pedidos en línea.
- 1. Separación de etiqueta/Texbox en formularios de Microsoft Access 2007
- 2. Microsoft Access 2007: ¿consulta de vista utilizada en el informe?
- 3. MS Access: ejecuta una consulta guardada por nombre en VBA
- 4. Microsoft Access - Caso de consulta
- 5. Creación de tablas DDL de Microsoft Access
- 6. Errores en la propiedad OrderByOn en Microsoft Access 2010
- 7. Scope_Identity() en Microsoft Access
- 8. C# Cómo conectar a MS Access 2007
- 9. ¿Puedo usar la API de Microsoft Lync para comunicarme con Communicator 2007/2007 R2?
- 10. ¿Funciona EntityFramework contra Access 2007 db (.accdb)?
- 11. MS Access 2007 JOIN en múltiples campos
- 12. Importación de MS ACCESS DB a mySql?
- 13. ¿Cómo conectar java a Ms Access 2010?
- 14. No se puede abrir la base de datos creada con Access 2010 en Access 2007 incluso con SP2
- 15. Crear vista en MS Access 2007
- 16. Cómo guardar el icono ImageMSO de Microsoft Office 2007?
- 17. Creación de gráfico de pivote utilizando Access 2007 VBA
- 18. ¿Equivalente basado en web de Microsoft Access?
- 19. Mejores prácticas para implementar una aplicación de Microsoft Access
- 20. Conectar Access 2007 a SQL Server 2008 Base de datos
- 21. Modificar contactos de Microsoft Outlook desde Python
- 22. SharePoint 2007/2010 métodos de implementación
- 23. Cómo actualizar automáticamente la aplicación MS-Access 2007
- 24. Habilitar y deshabilitar controles en un subformulario continuo en Access 2007/2010
- 25. ¿Microsoft Access tiene búsqueda de texto completo?
- 26. Django: ¿cómo puedo mostrar una foto guardada en ImageField?
- 27. ¿Cómo puedo insertar o modificar una revisión mercurial?
- 28. Administrando programáticamente el campo de tipo adjunto de Microsoft Access con .NET
- 29. Enlazar un cuadro combinado de formulario en Access 2007
- 30. ¿Cómo puedo capturar un error de depuración de Microsoft Access VBA desde mi código de C#?
Otro elemento útil eliminado por la oficina 2007 – Brettski