| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3186 人关注过本帖
标题:数据导入,选取最近一笔时间数据
取消只看楼主 加入收藏
cmo9020
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2020-7-8
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:2 
数据导入,选取最近一笔时间数据
请问有大牛哥牛姐在吗?
小弟遇到一个sql查询问题
主档tt要导入shipp+scra数据
主档在G列输入条形码后,按鈕导入shipp+scra数据 I列代码中的内容,如果G列条形码重复的话,依照N列提取最近一笔时间为2020/7/7日,
可是一直都导入6/30那笔数据....(反橘色)
请问是那裡有问题?请大神们帮个忙修正一下数据,谢谢

TEST.rar (31.54 KB)


Sub xx()
Dim Cn As Object, ar, i&, p$, f$, Sq$(2), s$
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Set Cn = CreateObject("ADODB.Connection")
If Application.Version < 12 Then
  s = "Excel 8.0;Database="
  Cn.Open "Provider=Microsoft.JET.OLEDB.4.0;Extended Properties=Excel 8.0;Data Source=" & ThisWorkbook.FullName
Else
  Cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=Excel 12.0;Data Source=" & ThisWorkbook.FullName
  s = "Excel 12.0;Database="
End If
With Worksheets(1)
  .Activate
  Sq(0) = "[" & .Name & "$g1:g" & .Cells(.Rows.Count, "g").End(xlUp).Row & "]a"
End With
p = ThisWorkbook.Path & "\"
ar = Array("scra.xls", "SHIPP.xls")
For i = 0 To UBound(ar)
  f = p & ar(i)
  If Dir(f, vbDirectory) <> "" Then
   Sq(1) = Sq(1) & " UNION ALL SELECT 條碼,代碼,狀態,時間 FROM [" & s & f & "].[$A1:N] WHERE 條碼 IS NOT NULL"
  End If
Next
Sq(1) = "SELECT * FROM (" & Mid(Sq(1), 12) & ") ORDER BY 時間"
Sq(1) = "SELECT 條碼,LAST(代碼) AS 代碼,LAST(狀態) AS 狀態,MAX(時間) AS 時間 FROM (" & Sq(1) & ") GROUP BY 條碼"
Sq(2) = "SELECT b.代碼 FROM " & Sq(0) & " LEFT JOIN (" & Sq(1) & ")b ON a.條碼=b.條碼"
Range("i2").CopyFromRecordset Cn.Execute(Sq(2))
Cn.Close
Set Cn = Nothing
Application.DisplayStatusBar = True
Application.ScreenUpdating = True
End Sub


[此贴子已经被作者于2020-7-8 00:05编辑过]

搜索更多相关主题的帖子: 导入 Excel Application End 数据 
2020-07-08 00:02
cmo9020
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2020-7-8
收藏
得分:0 
回复 3楼 厨师王德榜
好~先谢谢大哥了,我在研究一下~谢谢
2020-07-09 19:09
cmo9020
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2020-7-8
收藏
得分:0 
回复 3楼 厨师王德榜
大神~我测试成功,谢谢你
不过想请教...这段程序能精简吗?
要是我要导入5个~多档,可能会很麻烦

Dim Cn As Object, ar, i&, p$, f$, Sq$(2), s$, qstr$   'qstr -- 淏腔脤戙逄曆
qstr = "select ee.代碼 from  [Sheet1$g1:g1000]  as aa left join ( select  bb.條碼,bb.代碼,cc.sj as 時間 from  " & _
"(SELECT 條碼,代碼,狀態,時間 FROM [Excel 12.0;Database=C:\Users\X\Desktop\TEST\scra.xls].[$A1:N] " & _
"            WHERE 條碼 IS NOT NULL UNION ALL " & _
"            SELECT 條碼,代碼,狀態,時間 FROM [Excel 12.0;Database=C:\Users\X\Desktop\TEST\SHIPP.xls].[$A1:N]  " & _
"            WHERE 條碼 IS NOT NULL) as bb inner join  (SELECT 條碼, max(時間) as sj FROM  ( " & _
"SELECT 條碼,代碼,狀態,時間 FROM [Excel 12.0;Database=C:\Users\X\Desktop\TEST\scra.xls].[$A1:N]  " & _
"WHERE 條碼 IS NOT NULL      UNION ALL  " & _
"            SELECT 條碼,代碼,狀態,時間 FROM [Excel 12.0;Database=C:\Users\X\Desktop\TEST\SHIPP.xls].[$A1:N]  " & _
"            WHERE 條碼 IS NOT NULL) group by 條碼 ) as cc   " & _
"on bb.條碼  = cc.條碼  and  bb.時間 = cc.sj) as ee on aa.條碼  = ee.條碼  "
2020-07-09 19:58
快速回复:数据导入,选取最近一笔时间数据
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018821 second(s), 12 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved