我在网上找了一程序,稍微按照我的要求改了改,但是老有问题,导入到是成功了,但是adodc报错"文件名无效",而且导入第二次的时候说"表已经存在",并报错.想请高手帮忙.程序如下:
Dim accessPath As String
Dim excelPath As String
Dim accessTable As String
Dim sheet As String
With CommonDialog1
.FileName = "*.xls"
.Filter = "(Excel)*.xls|*.xls"
.CancelError = True
.ShowOpen
End With
accessPath = App.Path & "\sales.mdb"   '数据库名
excelPath = CommonDialog1.FileName
accessTable = "invest"                '导入后数据库中的表名
sheet = "sheet1"
Data1.DatabaseName = App.Path & "\sales.mdb"
Dim db As DatabaseSet db = OpenDatabase(excelPath, True, False, "Excel 8.0") '打开电子表格文件
sql = ("Select * into [;database=" & accessPath & "]." & accessTable & " FROM [" & sheet & "$]")
db.Execute (sql) '将电子表格导入数据库'此处我想用adodc来连数据库,并把导入的数据在表格中显示出来
Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" & App.Path & "\sales.mdb"""
Adodc1.RecordSource = "invest"
Adodc1.RefreshDataGrid1.Refresh '显示电子表格导入到数据库的数据

解决方案 »

  1.   

    用下面的函数。需要引用 Microsoft DAO 3.6 library。此函数共有四个参数:
    1、sSheetName:要导出资料的文件名称 (Sheet name),例如 Sheet1
    2、sExcelPath:要导出资料的 Excel 档案路径名称 (Workbook path),例如 C:\book1.xls
    3、sAccessTable:要导入的 Access Table 名称,例如 TestTable
    4、sAccessDBPath:要导入的 Access 档案路径名称,例如 C:\Test.mdb函数以下:Private Sub ExportExcelSheetToAccess(sSheetName As String, sExcelPath As String, sAccessTable As String, sAccessDBPath As String)
    Dim db As Database
    Dim rs As Recordset
    Set db = OpenDatabase(sExcelPath, True, False, "Excel 5.0")
    Call db.Execute("Select * into [;database=" & sAccessDBPath & "]." & sAccessTable & " FROM [" & sSheetName & "$]")
    MsgBox "Table exported successfully.", vbInformation
    End Sub使用范例如下:將 C:\book1.xls 中的 Sheet1 导入 C:\Test.mdb 成为 TestTableExportExcelSheetToAccess "Sheet1", "C:\book1.xls", "TestTable", "C:\Test.mdb"