ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

8个表15条记录的数据源。没有Where,生成记录达到上限。

[复制链接]

TA的精华主题

TA的得分主题

发表于 2023-4-22 06:43 | 显示全部楼层 |阅读模式
dd3.jpg dd2.jpg dd1.jpg dd.jpg


  1. Sub ll1()
  2. Dim T As Date
  3.     T = Time
  4.     Debug.Print T
  5.     Dim Cn As ADODB.Connection
  6.     Dim Rs As ADODB.Recordset
  7.     Dim Sql As String
  8.     Dim oDate As Date
  9.     Set Cn = New ADODB.Connection
  10.     Set Rs = New Recordset
  11.        oDate = "2023/3/4"
  12.       
  13.        Cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties='Excel 12.0;HDR=yes';data source=" & ThisWorkbook.FullName
  14.        'Set Rs = Cn.Execute("Select a.日期,a.日出,b.日出,c.日出,d.日出,e.日出,f.日出,g.日出,h.日出    from [兰州$A5:D2000]a,[珠海$A5:D2000]b,[武汉$A5:D2000]c,[北京$A5:D2000]d ,[抚远$A5:D2000]e,[漠河$A5:D2000]f,[三沙$A5:D2000]g,[喀什$A5:D2000]h   where a.日期 = #2023/3/4#  and  b.日期 = #2023/3/4# and  c.日期 = #2023/3/4# and  d.日期 = #2023/3/4# ")
  15.       
  16.        Sql = "Select a.日期,a.日出,b.日出,c.日出,d.日出 "
  17.        Sql = Sql & ",e.日出,f.日出,g.日出,h.日出   "
  18.       
  19.        Sql = Sql & " from [兰州$A5:D20]a,[珠海$A5:D20]b,[武汉$A5:D20]c,[北京$A5:D20]d "
  20.        Sql = Sql & ",[抚远$A5:D20]e,[漠河$A5:D20]f "
  21.        Sql = Sql & ",[三沙$A5:D20]g,[喀什$A5:D20]h  "
  22. Debug.Print Sql
  23.        Sql = Sql & " where a.日期 = #2022/3/4#  and  b.日期 = #2022/3/4# and  c.日期 = #2022/3/4# and  d.日期 = #2022/3/4# "
  24.        Sql = Sql & " and e.日期 = #2022/3/4#  and  f.日期 = #2022/3/4# "
  25.        Sql = Sql & " and  g.日期 = #2022/3/4# and  h.日期 = #2022/3/4# "
  26. Debug.Print Sql
  27.        Set Rs = Cn.Execute(Sql)
  28.        'Rs.MoveFirst

  29.     Sheet3.Cells.Clear
  30.     Sheet3.Cells(2, 1).CopyFromRecordset Rs
  31.     Debug.Print Time
  32.     Debug.Print T
  33.     Debug.Print Format(Time - T, "h:mm:ss")
  34.    
  35. End Sub





复制代码














dd.jpg

1.zip

421.52 KB, 下载次数: 6

TA的精华主题

TA的得分主题

发表于 2023-4-22 07:48 | 显示全部楼层
这个需要表达的什么意思,没有看明白?

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-4-22 12:14 | 显示全部楼层
本帖最后由 ning84 于 2023-4-23 18:23 编辑
  1. Function RetuSqlStr(FilePath, oAddress, oDate As Date)

  2.     Dim Str
  3.         Str = "Select "
  4.         Str = Str & "a.日出,a.日落,"
  5.         Str = Str & "b.日出,b.日落,"
  6.         Str = Str & "c.日出,c.日落,"
  7.         Str = Str & "d.日出,d.日落,"
  8.         Str = Str & "e.日出,e.日落,"
  9.         Str = Str & "f.日出,f.日落, "
  10.         Str = Str & "g.日出,g.日落,"
  11.         Str = Str & "h.日出,h.日落"
  12.         Str = Str & " From "
  13.         Str = Str & "[" & FilePath & "].[兰州$" & oAddress & "]a,"
  14.         Str = Str & "[" & FilePath & "].[珠海$" & oAddress & "]b,"
  15.         Str = Str & "[" & FilePath & "].[武汉$" & oAddress & "]c,"
  16.         Str = Str & "[" & FilePath & "].[北京$" & oAddress & "]d,"
  17.         Str = Str & "[" & FilePath & "].[抚远$" & oAddress & "]e,"
  18.         Str = Str & "[" & FilePath & "].[漠河$" & oAddress & "]f, "
  19.         Str = Str & "[" & FilePath & "].[三沙$" & oAddress & "]g, "
  20.         Str = Str & "[" & FilePath & "].[喀什$" & oAddress & "]h"
  21.         Str = Str & " Where "
  22.         Str = Str & "a.日期 = #" & oDate & "# And  "
  23.         Str = Str & "b.日期 = #" & oDate & "# And  "
  24.         Str = Str & "c.日期 = #" & oDate & "# And  "
  25.         Str = Str & "d.日期 = #" & oDate & "# And  "
  26.         Str = Str & "e.日期 = #" & oDate & "# And  "
  27.         Str = Str & "f.日期 = #" & oDate & "# And  "
  28.         Str = Str & "g.日期 = #" & oDate & "# And  "
  29.         Str = Str & "h.日期 = #" & oDate & "# "
  30.         ''
  31.         RetuSqlStr = Str

  32. End Function

  33. Private Sub RecordsetSql()
  34.     Dim Rng As Range
  35.     Dim Str
  36.     Dim FilePath, oAddress, oDate As Date
  37.         FilePath = ThisWorkbook.Path & "\SunriseSunset.xlsx"
  38.         oAddress = "A5:D996"
  39.         oDate = "2022/3/3"
  40.     Dim Cn As ADODB.Connection
  41.     Dim Rs As ADODB.Recordset
  42.         Set Cn = New ADODB.Connection
  43.         Set Rs = New ADODB.Recordset
  44.         Cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties='Excel 12.0;HDR=yes';data source=" & ThisWorkbook.FullName
  45.         Str = RetuSqlStr(FilePath, oAddress, oDate)
  46.         Str = Replace(Str, "\Tmp", "")
  47.         Debug.Print Str
  48.         Set Rs = Cn.Execute(Str)
  49.         Debug.Print Sheet3.Name
  50.         With Sheet3
  51.              .Cells.Clear
  52.              .Cells.Font.Size = 9
  53.              Set Rng = .Cells(2, 2)
  54.         End With
  55.         Rng.CopyFromRecordset Rs
  56.         Rng.Resize(1000, Rs.fields.Count).NumberFormatLocal = "hh:mm;@"
  57.         Stop
  58.         Stop
  59.         Stop

  60. End Sub
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-4-22 12:19 | 显示全部楼层
本帖最后由 ning84 于 2023-4-23 21:23 编辑


执行这条语句,记录无限增加。都是重复记录。达到最大记录。


       Sql = Sql & " 4from [兰州$A5:D20]a,[珠海$A5:D20]b,[武汉$A5:D20]c,[北京$A5:D20]d "
       Sql = Sql & ",[抚远$A5:D20]e,[漠河$A5:D20]f "
       Sql = Sql & ",[三沙$A5:D20]g,[喀什$A5:D20]h  "



  1. Private Sub deldel()

  2.    Dim Str, iiii As Integer
  3.    Dim Sht As Worksheet
  4.    Dim Arr(): Arr = Array("日出", "日落")
  5.        Str = Space(8) & "Str = " & """Select """ & vbCr
  6.        iiii = 0
  7.        For Each Sht In ThisWorkbook.Sheets
  8.             Str = Str & Space(8) & "Str = str & """ & Chr(97 + iiii) & "." & Arr(0) & "," & Chr(97 + iiii) & "." & Arr(1) & ",""" & vbCr
  9.             iiii = iiii + 1
  10.        Next Sht
  11.        ''Str = Str & Space(8) & "Str = str  & " & """ From """ & vbCr
  12.        Str = Str & Space(8) & "Str = str  & " & """ From """ & vbCr
  13.        iiii = 0
  14.        For Each Sht In ThisWorkbook.Worksheets
  15.           Str = Str & Space(8) & "Str = str & " & """["" & " & "filepath" & " & ""].[" & Sht.Name & "$" & Chr(34) & " & oAddress " & " & ""]" & Chr(97 + iiii) & "," & vbCr
  16.           iiii = iiii + 1
  17.        Next Sht
  18.        Str = Str & Space(8) & "Str = str  & " & """ Where """ & vbCr
  19.        iiii = 0
  20.        For Each Sht In ThisWorkbook.Worksheets
  21.           Str = Str & Space(8) & "Str = str & """ & Chr(97 + iiii) & ".日期 = #"" & " & "oDate" & " & ""# and """ & vbCr
  22.           '& ”oDAte" & """#,"" & vbCr"
  23.           iiii = iiii + 1
  24.        Next Sht
  25.        Debug.Print Str
  26. End Sub
  27. '''
复制代码


TA的精华主题

TA的得分主题

发表于 2023-4-22 16:56 来自手机 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-4-22 17:03 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-17 09:26 , Processed in 0.032945 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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