本人做了个人士管理系统,其中有个功能是把某个ACCESS的数据导出到EXCEL中,现在还差一个功能,就是反过来,将一个按一定字段写好的EXCEL表导入ACCESS原来的表中,并且不能覆盖原来的数据。本人写了很就都不能实现,求教高手,很急,项目最后阶段!!!
[email protected]

解决方案 »

  1.   

    Private Sub Command1_Click()
      Text1.Text = App.Path & "\123.xls"     'EXCEL文件
      Text2.Text = App.Path & "\123.mdb"     '数据库
      Text3.Text = "sheet1"
      Text4.Text = "sheet1"
      Data1.DatabaseName = App.Path & "\123.mdb"  Dim db As Database
      Dim sheet As String, excelpath As String, AccessPath As String, AccessTable As String
      AccessPath = Text2.Text                                    '数据库路径
      excelpath = Text1.Text                                     '电子表格路经
      AccessTable = Text4.Text                                   '数据库内表格
      sheet = Text3.Text                                         '电子表格内工作表
      Set db = OpenDatabase(excelpath, True, False, "Excel 5.0") '打开电子表格文件
      SQL = ("Select * into [;database=" & AccessPath & "]." & AccessTable & " FROM [" & sheet & "$]")
      db.Execute (SQL)                                          '将电子表格导入数据库
      Data1.RecordSource = "sheet1"
      Data1.Refresh
      DBGrid1.Refresh                                           '显示电子表格导入到数据库的数据
    End Sub
      

  2.   

    1.用ADO连接到EXCEL.
    http://expert.csdn.net/Expert/topic/2719/2719985.xml?temp=.8509638
    2.用INSERT INTO 一条条地插入.
      

  3.   

    有一个办法,使用SQL语句作导入导出功能,只要导入的数据与数据库中的数据主键冲突时,便会出错,错误对处理即可。但是这样无法把没有错误的那部分数据导入(向access中的导入那样)导入导出请参考这个帖子
    http://expert.csdn.net/Expert/topic/2659/2659996.xml?temp=.798916
      

  4.   

    '用ADO打开ACCESS数据库,直接用类似下面的语句就可以了:insert into 表
    SELECT *
    FROM [Excel 5.0;HDR=YES;DATABASE=c:\test.xls].[sheet1$]
      

  5.   

    用ADO连接到EXCEL,再用INSERT INTO 一条条地插入.