作者:乔山办公网日期:
返回目录:excel表格制作
你只是要删除数据百而不是删除表,所以用 Delete 语句而不是 Drop Table,后面不加 where 子句就是删除全部数据。
插入数据用 Insert into ... (select ...)
如果还是不行,度你可以借助记录集对象 Recordset 把数据读出来,然后再写入Access,这样需要一个循环,额外花费一点时间。一般来版说这样需要两个Connection对象来分连接Excel和Access,当然你的代码直接把数据库写在 Select 语句中也可以,权就是不好排错。
有两种方式:
引用excel,把读取的数据写入access.
把excel当成数据连接后,把读取的表或记录写入access.
细节百度一下都有。
'ToDo: 设置 common dialog 控件的标志和属性.Filter = "Excel文件 (*.xls) |*.xls".ShowOpenIf Len(.FileName) = 0 ThenExit SubEnd Ifsfile = .FileNameEnd WithAccessPath = lcspath & "\db.mdb" '数据库路径excelpath = sfile '电子表e69da5e6ba907a686964616f333格路经AccessTable = "db" '数据库内表格msg = Trim(InputBox("请输入表名,如sheet1或sheet2:", "工作表", "sheet1"))' msg = Str(msg)sheet = msg '电子表格内工作表Set db = OpenDatabase(excelpath, True, False, "Excel 8.0") '打开电子表格文件sql = ("Select * into [;database=" & AccessPath & "]." & AccessTable & " FROM [" & sheet & "$]")' sql = ("Select * into [;database=" & AccessPath & "]." & AccessTable & " FROM [" & sheet & "]")If sheet = "" ThenMsgBox "您选择的EXCEL表不存在,请重新导入!", vbInformation, "抱歉!"Exit SubEnd IfIf deltable = 1 ThenWith ADOsdb.Execute "drop table db", , adCmdTextEnd WithEnd IfADOsdb.CommitTransdb.Execute (sql) '将电子表格导入数据库ShowMessage "正在导入EXCEL表,请您稍等..."