![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]()
![]() |

|
| Microsoft office error all errors related to Microsoft office error |
![]() |
|
Import Excel into Access DB
|
LinkBack | Thread Tools | Display Modes |
|
|
#1 (permalink) |
|
Fixed Error!
Posts: 4,202
Join Date: Mar 2007
Rep Power: 6
IM:
|
Consider the following: - I have a VB program that allows users to import their own Excel files into our fixed format database. - An excel file may contain up to 65.535 records per sheet and trust me, these are being used sometimes, so the import needs to be speedy - I have already found a way to import excel data into a table, see the query below - I need a way to get some import log, like the "Import Excel data"-wizard in Access does Here's the query I use to import Excel data into a table that has been created in code by VB, using one of the user defined import definitions. This query uses the Jet Excel 8.0 ISAM driver. INSERT INTO [MyDBTable] (ProductID, EAN, Description) SELECT [ProdID], [EAN-Code], [ProdDescription] FROM [EXCEL 8.0;Database=D:\MyImports\Products.xls;HDR=YES].[MyProducts$] Now, this query works and it's d*mn fast. The only thing is, that when a user defined a field to be numeric for example and a non-numeric value is entered in the excel-file, the non-numeric values get imported as NULL-values, and there's currently no way to see these import errors. I'd like to expose these import errors like Access does itself when one uses the import wizard so I could log these things to inform the user. I NEED to know the line number, but the name or number of the field in addition to the error description would be nice to have too. Does someone know how to programmatically import an excel file into Access, using the speedy Jet Excel ISAM and displaying the individual cells that couldn't be imported correctly? Cheers and thanks in advance, Luc Derckx ps: I've placed a link to this topic in the VB Database area too |
|
|
|
|
|
|
|
|
#2 (permalink) |
|
Fixed Error!
Posts: 4,202
Join Date: Mar 2007
Rep Power: 6
IM:
|
Unfortunately where I am at the moment I don't have VB installed so I can't test anything. If you create an Access Public sub such as Public Sub Macro1() On Error GoTo Macro1_Err DoCmd.TransferSpreadsheet acImport, 8, "tablename", "sourcefielpathandname", True, "" Macro1_Exit: Exit Sub Macro1_Err: MsgBox Error$ Resume Macro1_Exit End Sub Then in VB you will need something like ....(but my VB is shaky so you will probably do better...) Sub RunImport() Dim objAcc As Access.Application Set objAcc = New Access.Application objAcc.OpenDatabase "datebasename" Call objAcc.Application.Run("macro1") objAcc.Quit End With Set objAcc = Nothing End Sub This should run the Access import and create an import errors file if necessary. However, I would still like your feedback on my previous question. |
|
|
|
![]() |
| Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
| Thread Tools | |
| Display Modes | |
|
|