ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 1048|回复: 2

[求助] access runsql 如何將單筆讀取改成多筆呢?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-1-7 10:42 | 显示全部楼层 |阅读模式
底下的指令雖然可執行讀取多個EXCEL檔案,但是into的資料表只會有最後一次讀取的檔案資料
  1.   Private Sub t001_Click()
  2.     'Dim TbaName As String, TbbName As String '表名稱變數
  3. '    CurrentDb.Execute ("delete * from Main")
  4. If MsgBox("請準備好導入的文件!", vbOKCancel, "打印確認") = 1 Then
  5.     Dim rs As Recordset
  6.     Dim FN As String
  7.     Dim URL() As Variant
  8.     Dim i As Long

  9. '    On Error GoTo ER

  10.     URL = dbFunction.Inport_From_Excel
  11.     i = 1

  12.     DoCmd.SetWarnings False
  13. 條件 = Me.週期
  14.     Do Until i = UBound(URL) + 1
  15. 101        FN = Dir(URL(i))


  16.         mySQL = "SELECT 特殊_1,備註_3,異常_3,代號_3" _
  17. & " INTO  MAIN FROM [Excel 8.0;Database=" & URL(i) & "].[派單$] WHERE 周期 ='" & 條件 & "';" & "   "
  18. DoCmd.RunSQL mySQL '運行SQL

  19.         i = i + 1
  20.     Loop

  21. MsgBox "您於" & Now() & "更新數據成功!", vbInformation '人性化提示
  22.     DoCmd.Close acForm, Me.Name


  23.         End If
  24.         
  25.     End Sub

复制代码
自訂函數
  1. Public Function Inport_From_Excel() As Variant
  2. Dim FileUrl As String
  3. Dim fso As Office.FileDialog
  4. Dim V() As Variant, c As Long, R As Long
  5. On Error GoTo exf
  6. Set fso = Application.FileDialog(msoFileDialogFilePicker)
  7. With fso
  8.     .AllowMultiSelect = True
  9.     .Filters.Clear
  10.     .Filters.Add "xlsm", "*.xlsm"
  11.     .Filters.Add "xlsx", "*.xlsx"
  12.     .Filters.Add "xltx", "*.xltx"
  13.     .Filters.Add "xltm", "*.xltm"
  14.     .Filters.Add "xlsb", "*.xlam"
  15.     .Filters.Add "ALL", "*.*"
  16.     .Show
  17. End With
  18. R = fso.SelectedItems.Count
  19. ReDim V(1 To R)

  20. For c = 1 To R
  21.     V(c) = fso.SelectedItems.Item(c)
  22. Next c

  23. Inport_From_Excel = V

  24. Exit Function
  25. exf:
  26.     'MsgBox VBA.Err.Description
  27. End Function

  28. Function fExistTable(strTableName As String)
  29. Dim db As dao.Database
  30. Dim i As Integer
  31.     Set db = DBEngine.Workspaces(0).Databases(0)
  32.     fExistTable = False
  33.     db.TableDefs.Refresh
  34.     For i = 0 To db.TableDefs.Count - 1
  35.         If strTableName = db.TableDefs(i).Name Then
  36.             'Table Exists
  37.             DoCmd.DeleteObject acTable, strTableName
  38.             Exit For
  39.         End If
  40.     Next i
  41.     Set db = Nothing
  42. End Function
复制代码

TA的精华主题

TA的得分主题

发表于 2018-1-7 13:06 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
SELECT INTO 和 INSERT INTO SELECT 两种表复制语句

      Insert是T-sql中常用语句,Insert INTO table(field1,field2,...) values(value1,value2,...)这种形式的在应用程序开发中必不可少。但我们在开发、测试过程中,经常会遇到需要表复制的情况,如将一个table1的数据的部分字段复制到table2中,或者将整个table1复制到table2中,这时候我们就要使用SELECT INTO 和 INSERT INTO SELECT 表复制语句了。

      1.INSERT INTO SELECT语句

      语句形式为:Insert into Table2(field1,field2,...) select value1,value2,... from Table1

      要求目标表Table2必须存在,由于目标表Table2已经存在,所以我们除了插入源表Table1的字段外,还可以插入常量。示例如下:

INSERT INTO SELECT语句复制表数据

      2.SELECT INTO FROM语句

      语句形式为:SELECT vale1, value2 into Table2 from Table1

      要求目标表Table2不存在,因为在插入时会自动创建表Table2,并将Table1中指定字段数据复制到Table2中。示例如下:

SELECT INTO FROM创建表并复制表数据

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-11-22 17:46 | 显示全部楼层
marco 发表于 2018-1-7 13:06
SELECT INTO 和 INSERT INTO SELECT 两种表复制语句

      Insert是T-sql中常用语句,Insert INTO table ...

感謝版大指導
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-23 19:42 , Processed in 0.026320 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表