una - Agregue la entrada del usuario a la tabla de Excel al cargarla en la base de datos de Access
importar datos de excel a access vba (1)
Intento combinar las entradas de los usuarios con los datos de archivos de Excel existentes para que todos se incluyan en una sola tabla cuando se carguen en la base de datos de Access.
Esta es la forma en que lo tengo establecido, pero estoy dispuesto a cambiarlo, sin embargo.
Estoy completamente atascado con qué hacer a continuación. La fecha de carga se completa automáticamente, pero el resto de los parámetros variarán según el producto y deberán cumplimentarse manualmente. También quiero que sea obligatorio que todos los campos estén completos, así que tenga un mensaje de error que diga "Ingrese todos los parámetros" o algo así si no es así, lo que no permitiría completar la carga.
La razón por la cual esto es necesario en Access y simplemente no en Excel es porque AutoCad Electrical genera el archivo de Excel y está limitado en qué datos puede incluir. Traté de agregar las columnas en Excel e importarlas y funcionó, pero mi jefe dijo que NECESITAMOS el cuadro de entrada del usuario para facilitar las cosas.
Este es el código que tengo para importar el archivo de Excel y agregarlo a la tabla correcta (_MCL CARGAR). Ahora solo quiero que las entradas de usuario se agreguen a esta tabla como columnas adicionales:
Private Sub ImportMCL_Click()
On Error GoTo ErrorHandler
''disable ms access warnings
DoCmd.SetWarnings False
''load spreadsheet
DoCmd.TransferSpreadsheet acImport, 8, "_MCL UPLOAD", selectFile(), True
MsgBox "MCL Imported Successfully!"
''re-enable ms access warnings
DoCmd.SetWarnings True
Exit Sub
ErrorHandler:
MsgBox "There was an Error: " & Err & ": " & Error(Err)
End Sub
Function selectFile()
Dim fd As FileDialog
Set fd = Application.FileDialog(msoFileDialogFilePicker)
With fd
If .Show Then
selectFile = .SelectedItems(1)
Else
''stop execution if nothing selected
End
End If
End With
Set fd = Nothing
End Function
Mi código final se ve así:
''Import MCL Files Code
Private Sub ImportMCL_Click()
On Error GoTo ErrorHandler
''disable ms access warnings
DoCmd.SetWarnings False
''load spreadsheet in .xls format
DoCmd.TransferSpreadsheet acImport, 8, "_MCL_UPLOAD", selectFile(), True
DoCmd.OpenQuery "UpdateMCL"
Call InsertInto_MASTER_UPLOAD
Call Delete_MCL_UPLOAD
MsgBox "MCL Imported Successfully!"
''re-enable ms access warnings
DoCmd.SetWarnings True
Exit Sub
ErrorHandler:
MsgBox "There was an Error: " & Err & ": " & Error(Err)
End Sub
''Function called in Import MCL Code above
Function selectFile()
Dim fd As FileDialog
Set fd = Application.FileDialog(msoFileDialogFilePicker)
With fd
If .Show Then
selectFile = .SelectedItems(1)
Else
''stop execution if nothing selected
End
End If
End With
Set fd = Nothing
End Function
''Function Used to Delete MCL Uploaded file after it''s moved to Master Table
Sub Delete_MCL_UPLOAD()
Dim dbs As Database, rst As Recordset
'' Modify this line to include the path to Northwind
'' on your computer.
Set dbs = OpenDatabase("default_cat.mdb")
'' Delete employee records where title is Trainee.
dbs.Execute "DELETE * FROM " _
& "_MCL_UPLOAD "
dbs.Close
End Sub
''Function Appends _MCL UPLOAD into the _MASTER_UPLOAD table
Sub InsertInto_MASTER_UPLOAD()
Dim dbs As Database
'' Modify this line to include the path to Northwind
'' on your computer.
Set dbs = OpenDatabase("default_cat.mdb")
'' Select all records in the New Customers table
'' and add them to the Customers table.
dbs.Execute " INSERT INTO _MASTER_UPLOAD " _
& "SELECT * " _
& "FROM [_MCL_UPLOAD];"
dbs.Close
End Sub
Básicamente, creé otra tabla para volcar toda la información combinada. ¡Gracias por toda tu ayuda!