Automatizar la Importación de datos de Excel a Access
Siguiendo este código que encontré en una respuesta a un tema similar:
Private Sub Comando47_Click() Dim XlsRuta As String Dim miSql As String 'Indicamos la ruta del Excel XlsRuta = "C:\Plantillas_Gestoria\DIRECTORIO_CACS_JUN16.xlsx" 'Importamos la hoja de cálculo a la tabla TExcel DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel7, "TExcel", XlsRuta, True 'Definimos la consulta de datos anexados miSql = "INSERT INTO tabCacs (JefeCac, CorreoJefe, TelefonoJefe, SupervisorAnalista, CorreoSupervisor, Dirección)" miSql = miSql & " SELECT TExcel.JefeCac, TExcel.CorreoJefe, TExcel.TelefonoJefe, TExcel.SupervisorAnalista, TExcel.CorreoSupervisor, TExcel.Dirección FROM TExcel" 'Ejecutamos la consulta DoCmd.SetWarnings False DoCmd.RunSQL (miSql) DoCmd.SetWarnings True 'Borramos la tabla TExcel DoCmd.DeleteObject acTable, "TExcel" 'Lanzamos un mensaje de que todo ha ido bien MsgBox "Datos anexados correctamente", vbInformation, "OK" End Sub
De que forma podría hacerle en este caso:
La tabla a donde quiero imprtar los datos del excel tiene más campos que los que tiene el documento de excel. Ej. Mi tabla en Access se llama tbCacs y tiene los sig campos. Cac, TipoInmueble, JefeCac, TelJefe, CorreoJefe, SupervisorAnalista, CorreoAnalista, TelAnalista, Arredador, Vigencia, Dirección... (por nombrar algunos, ya que son más).
En cambio el documento de excel, solo tiene los campos de Cac, JefeCac, TelJefe, CorreoJefe, SupervisorAnalista, CorreoAnalista, Dirección. Como se pueden dar cuenta, mi excel tiene menos campos que la tabla de Access, por ende no coinciden tabla-excel al momento de hacer la importación .
Mi duda es como hacerle para que la información del excel se anexe solamente a los campos que corresponden. Ej. JefeCac>>>>JefeCac TelJefe>>>TelJefe ... Etc.. Etc.. Etc brincándose o anulando los campos que no correspondan al nombre del campo.
Espero puedan ayudarme ya que hice el código de arriba y no me agrega los datos a la tabla que quiero.
Perdon, pero cuando intento hacer lo mismo en mi base me aparece el mensaje: Se ha producido el error 3011 en tiempo de ejecucion: El motor de la base de datos de Micrisoft Access no pudo encontrar el objeto'D:\Desktop\prueba.xlsx...Y el archivo existe. Cual puede ser el problema que no lo encuentra? - Pablo Carreras