Access - Importaciones guardadas - No arroja mensaje al finalizar

A quien me pueda ayudar desde ya muchas gracias.

Tengo una base tipo back-end en disco compartido y algunas pcs con front-end.

Hay un usuario que ingresa directamente al back-end para reemplazar tablas importando datos desde excel. Este usuario entra al back-end por un acceso directo en su escritorio, con un autoexec se abre la pantalla de Importaciones guardadas, el usuario elige la importación guardada que corresponde y ejecuta. Pero las importaciones no siempre se realizan exitosamente. Porque el excel no esta bien generado, o porque otro usuario esta conectado a la base, etc.

Mi problema es que el access no está arrojando ningún mensaje al finalizar la importación, informando del éxito o fracaso en la tarea. Hace un tiempo mostraba un texto que decía algo parecido a "Se ha importado correctamente". No sé cuando, si en alguna actualización del office o alguna reforma que le hice a la base, lo dejo de mostrar, y el usuario muchas veces cree que la base está actualizada y no es así.

¿Alguien sabe como configurar el access para que muestre los cuadros de diálogo al finalizar cada importación de datos?

1 respuesta

Respuesta
1

¿De qué manera importas la información con alguna Macro o Código...?

Tienes un MsgBox después de la importación...?

buen día.... gracias por tu tiempo...

La base esta importando mediante el asistente que ofrece access.

Los procesos de importación los dejé guardados.

Se esta accediendo a Importaciones Guardadas mediante el código

DoCmd.RunCommand acCmdSavedImports

El usuario elige uno de los procesos guardados y lo ejecuta.

Es decir que a la base no le puse código para realizar toda la importación y al finalizar un MsgBox.

Estoy utilizando la herramienta incorporada. Herramienta que antes emitía un mensaje al finalizar la importación. Hoy no lo hace y desconozco cómo activarlo.

Saludos

Supongo esto es en Access 2007 o superior.

¿Por qué no lo hacerlo con Marco o Código...?

Buenas tardes, pido disculpas por haber dejado pasar tanto tiempo.

En cuanto a la versión de Access, si, es 2013.

No lo hice con código por dos razones, de esta forma fue rápido, fácil y funcionaba a la perfección,

y la razón más importante, mis conocimientos limitados en access.

No sabría cómo desarrollar el código para tomar un file excel, elegir una Sheet, poner los tipos de datos a cada columna, y finalmente reemplazar la tabla existente.

Tendrías algún ejemplo de código para hacer esto?

Disculpa por no contestar antes.

El código que te envío lo he probado en Access 2003,2007 y 2010 y funciona correctamente.

Saca una copia de tu BDD y haz lo siguiente:

'Esto en un modulo estandar:

Option ExplicitOption Compare DatabaseDeclare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As LongType OPENFILENAMElStructSize As LonghwndOwner As LonghInstance As LonglpstrFilter As StringlpstrCustomFilter As StringnMaxCustFilter As LongnFilterIndex As LonglpstrFile As StringnMaxFile As LonglpstrFileTitle As StringnMaxFileTitle As LonglpstrInitialDir As StringlpstrTitle As Stringflags As LongnFileOffset As IntegernFileExtension As IntegerlpstrDefExt As StringlCustData As LonglpfnHook As LonglpTemplateName As StringEnd Type

'Esto otro en un boton de comando:

'InsertDim OpenFile As OPENFILENAMEDim lReturn As LongDim sFilter As StringOpenFile.lStructSize = Len(OpenFile)sFilter = "Microsoft Excel Files(*.xls)" & Chr$(0) & "*.xls" & Chr$(0)OpenFile.lpstrFilter = sFilterOpenFile.nFilterIndex = 1OpenFile.lpstrFile = String(257, 0)OpenFile.nMaxFile = Len(OpenFile.lpstrFile) - 1OpenFile.lpstrFileTitle = OpenFile.lpstrFileOpenFile.nMaxFileTitle = OpenFile.nMaxFileOpenFile.lpstrInitialDir = "C:\" 'Aqui pudes cambiar la ruta donde quieres que se abra el exploradorOpenFile.lpstrTitle = "Find Microsoft Excel File"OpenFile.flags = 0lReturn = GetOpenFileName(OpenFile)If lReturn = 0 ThenMsgBox "Operation cancelled"'Aqui pudes poner el mensaje que quieras si cancelas la importación.ElseOn Error Resume Next

'Ojo esta parte elimina la tabla de Access antes de que sea importada la nueva tablaDoCmd. DeleteObject acTable, "TuTabla"

'Aqui importas el archivo seleccionado y le asignas el nombre que quieres que tenga como tablaDoCmd. TransferSpreadsheet acImport, acSpreadsheetTypeExcel97, "TuTabla", Trim(OpenFile. LpstrFile), True'Tu mensaje cuando el proceso ha concluido.

MsgBox "TuMensaje"

End If

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas