我想将excel表里的数据导入到access数据库里的某个表里,表已经存在而且里面含有数据,而且以前的数据不能丢失,如何实现

解决方案 »

  1.   

    Microsoft Excel 数据清单转换为 Microsoft Access 数据库
    如果将数据清单转化为 Microsoft Access 数据库,则只能在 Access 中维护数据。此后对 Access 数据库进行的一切修改将不会反映到 Microsoft Excel 数据清单中。如果要转换 Excel 数据清单,必须安装 Access。如果 Excel 的“数据”菜单中没有“转换到 MS Access”命令,则需要安装和加载 AccessLinks 加载宏程序。 单击 Excel 数据清单中的单元格。
    单击“数据”菜单中的“转换到 MS Access”命令。
    如果要为数据清单新建 Access 数据库,请单击“新建数据库”。 
    如果要向现有 Access 数据库中添加数据清单,请单击“现有数据库”,然后在“现有数据库”下方的编辑框中键入数据库路径。如果要查看系统或网络中的数据库,请单击“浏览”按钮。 单击“确定”按钮。 
    在将 Excel 数据清单永久性地转化为 Access 数据库的过程中,“Access 电子表格导入向导”和“表分析器向导”将给出相应的提示。 注意 转换完成后,AccessLinks 会在原始数据清单的右侧放置一个文本框,表示该数据清单已转化为 Access 数据,但原始数据并不会改变。
    有关“Access 电子表格导入向导”和“表分析器向导”的详细信息,请参阅 Access 的帮助。
      

  2.   

    dim cn as new adodb.connection
    cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\test.xls;Extended Properties=Excel 8.0"
    cn.Execute "insert into openrowset('Microsoft.Jet.OLEDB.4.0','e:\db1.mdb';'admin';'',t_order) select * from t_order"
      

  3.   

    http://www.csdn.net/develop/read_article.asp?id=18623
      

  4.   

    http://expert.csdn.net/Expert/FAQ/FAQ_Index.asp?id=159716
      

  5.   

    你试一试如下的代码:Option ExplicitPrivate Sub cmdLoad_Click()
        Dim excel_app As Object
        Dim excel_sheet As Object
        Dim MyDatabase As Database
        Dim MyTable As TableDef
        Dim MyField As Field
        Dim new_value As String
        Dim row As Integer
        Dim col As Integer
        Dim i As Integer
        
        Screen.MousePointer = vbHourglass
        DoEvents    ' 创建excel application对象.
        Set excel_app = CreateObject("Excel.Application")    ' 打开一个excel文件
        excel_app.Workbooks.Open FileName:=txtExcelFile.Text    ' 判读最新版本.
        If Val(excel_app.Application.Version) >= 8 Then
            Set excel_sheet = excel_app.ActiveSheet
        Else
            Set excel_sheet = excel_app
        End If    ' 打开Access数据库
        Set MyDatabase = CreateDatabase(txtAccessFile.Text, dbLangGeneral)   '  创建数据库
        Set MyTable = MyDatabase.CreateTableDef("TableFromExcel")  '  创建表
        col = 1
        Do
            If Len(Trim$(excel_sheet.Cells(1, col))) = 0 Then
                Exit Do
            End If
            Set MyField = MyTable.CreateField("col" & CStr(col), dbText, 50)   '  创建字段
            MyTable.Fields.Append MyField   '  将新创建的字段添加到表中
            col = col + 1
        Loop
        
        MyDatabase.TableDefs.Append MyTable  '  将表添加到数据库中
        
        ' 从excel文件中的数据复制到Access数据库中
        row = 1
        Do
            new_value = ""
            For i = 1 To col - 2
            new_value = new_value & "'" & Trim$(excel_sheet.Cells(row, i)) & "'" & ","
            Next i
            new_value = new_value & "'" & Trim$(excel_sheet.Cells(row, col - 1)) & "'"
            ' 如果各个字段的内容都为空则退出
            If Len(new_value) = (3 * col - 4) Then
                Exit Do
            End If        ' 将记录插入到数据库中
            MyDatabase.Execute "INSERT INTO TableFromExcel VALUES (" & new_value & ")"
            row = row + 1
        Loop
           ' 关闭数据库
        MyDatabase.Close
        Set MyDatabase = Nothing    ' 关闭excel Application对象
        excel_app.ActiveWorkbook.Close False    ' 关闭excel
        excel_app.Quit
        Set excel_sheet = Nothing
        Set excel_app = Nothing    Screen.MousePointer = vbDefault
    End SubPrivate Sub Form_Load()
        Dim file_path As String    file_path = App.Path
        If Right$(file_path, 1) <> "\" Then file_path = file_path & "\"
        txtExcelFile.Text = file_path & "XlsToMdb.xls"
        txtAccessFile.Text = file_path & "XlsToMdb.mdb"
    End Sub