ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[已解决] 原库存-生产用量=现库存

[复制链接]

TA的精华主题

TA的得分主题

发表于 2011-11-16 14:44 | 显示全部楼层 |阅读模式
本帖最后由 fsc163198 于 2011-12-1 20:28 编辑

用SQl做到 原库存-生产用量=现库存 按原库存颜色排序原库存没有的颜色为负数添加到现库存
原库存-生产用量=现库存.rar (12.58 KB, 下载次数: 1223)

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-11-16 20:42 | 显示全部楼层
能做到 原库存-用量=现库存  不排序现库存内有所有的 颜色 数据 这样也行

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-11-17 22:59 | 显示全部楼层
  1. Sub SQL计算现库()
  2.   Dim cnn As New ADODB.Connection
  3.   Dim rs As New ADODB.Recordset
  4.   cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=Excel 8.0;Data Source=" & ThisWorkbook.FullName
  5.       strSQL = "SELECT A.颜色,(A.短厚L线-iif(isnull(B.短厚L线),0,B.短厚L线))as 短厚L线,(A.长厚L线-iif(isnull(B.长厚L线),0,B.长厚L线))as 长厚L线,(A.短薄L线-iif(isnull(B.短薄L线),0,B.短薄L线))as 短薄L线,(A.长薄L线-iif(isnull(B.长薄L线),0,B.长薄L线))as 长薄L线 FROM [L线库存运算$A2:E40] AS A Left  JOIN [L线库存运算$G2:K40] AS B ON B.颜色=A.颜色"
  6.   rs.Open (strSQL), cnn, adOpenKeyset, adLockReadOnly
  7.   For Each Field In rs.Fields
  8.       [S2].Offset(0, i) = Field.Name
  9.        i = i + 1
  10.   Next
  11. Sheets("L线库存运算").Range("S3").CopyFromRecordset rs
  12. Set rs = Nothing
  13. Set cnn = Nothing
  14. End Sub
复制代码
INNER JOIN匹配返回行 Left  JOIN 左表返回所有的行  RIGHT JOIN 右表返回所有的行  如何能做到两表所有关键行?

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-11-19 13:00 | 显示全部楼层
本帖最后由 fsc163198 于 2011-11-19 13:35 编辑

汗! 弄了两天 结果是出来了 还是不理想  请高手指点
  1. Sub SQL计算现库存()
  2.   Dim CNN As New ADODB.Connection
  3.   Dim rs As New ADODB.Recordset
  4.   CNN.Open "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=Excel 8.0;Data Source=" & ThisWorkbook.FullName
  5.   strSQL = "SELECT * FROM (SELECT A.颜色,(A.短厚L线-iif(isnull(B.短厚L线),0,B.短厚L线))as 短厚L线,(A.长厚L线-iif(isnull(B.长厚L线),0,B.长厚L线))as 长厚L线,(A.短薄L线-iif(isnull(B.短薄L线),0,B.短薄L线))as 短薄L线,(A.长薄L线-iif(isnull(B.长薄L线),0,B.长薄L线))as 长薄L线 FROM [L线库存运算$A2:E40] AS A Left  JOIN [L线库存运算$G2:K40] AS B ON B.颜色=A.颜色)  union SELECT * FROM (SELECT B.颜色,(iif(isnull(A.短厚L线),0,A.短厚L线)-B.短厚L线)as 短厚L线,(iif(isnull(A.长厚L线),0,A.长厚L线)-B.长厚L线)as 长厚L线,(iif(isnull(A.短薄L线),0,A.短薄L线)-B.短薄L线)as 短薄L线,(iif(isnull(A.长薄L线),0,A.长薄L线)-B.长薄L线)as 长薄L线 FROM [L线库存运算$A2:E40] AS A RIGHT  JOIN [L线库存运算$G2:K40] AS B ON B.颜色=A.颜色)"
  6.   rs.Open (strSQL), CNN, adOpenKeyset, adLockReadOnly
  7.   For Each Field In rs.Fields
  8.       [S2].Offset(0, i) = Field.Name
  9.        i = i + 1
  10.   Next
  11. Range("S3").CopyFromRecordset rs
  12. Set rs = Nothing
  13. Set CNN = Nothing
  14. End Sub
复制代码

原库存-预计出库=现库存.rar

13.59 KB, 下载次数: 19

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-12-1 19:55 | 显示全部楼层
{:soso_e113:} 搞定了 数组和SQL计算结果一模一样
  1. Sub SQL计算现库()
  2.   Dim cnn As New ADODB.Connection
  3.   Dim rs As New ADODB.Recordset
  4.   X = Range("A65536").End(xlUp).Row
  5.   Y = Range("G65536").End(xlUp).Row
  6.   Range("S3:W40").ClearContents
  7.   cnn.Open "provider=microsoft.jet.oledb.4.0;extended properties='Excel 8.0;hdr=no;imex=1';data source=" & ThisWorkbook.FullName
  8.     For i = 2 To 5
  9.   XCM = XCM & ",(iif(isnull(A.f" & i & "),0,A.f" & i & ")-iif(isnull(B.f" & i & "),0,B.f" & i & "))as f" & i
  10.   Next
  11.   strSQL = "SELECT A.f1" & XCM & " FROM [L线库存运算$A3:E" & X & "] AS A Left  JOIN [L线库存运算$G3:K" & Y & "] AS B ON A.f1=B.f1 UNION ALL select *  from (SELECT B.f1" & XCM & " FROM [L线库存运算$A3:E" & X & "] AS A Right JOIN [L线库存运算$G3:K" & Y & "] AS B ON A.f1=B.f1) AS C WHERE NOT EXISTS (SELECT 1 FROM (SELECT * FROM [L线库存运算$A3:E" & X & "])AS D where C.f1=D.f1)"
  12.   rs.Open (strSQL), cnn, adOpenKeyset, adLockReadOnly
  13. Range("S3").CopyFromRecordset rs
  14. Set rs = Nothing
  15. Set cnn = Nothing
  16. End Sub
复制代码

原库存-生产用量=现库存.rar

15.57 KB, 下载次数: 85

TA的精华主题

TA的得分主题

发表于 2011-12-4 14:21 | 显示全部楼层
fsc163198 发表于 2011-12-1 19:55
搞定了 数组和SQL计算结果一模一样

学习了。。。

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-12-7 16:33 | 显示全部楼层
ftfox 发表于 2011-12-7 15:59
有意思,自己出问题自己解决,呵呵

{:soso_e101:} 高手不露 哪自己也不能不想办法解决呀

TA的精华主题

TA的得分主题

发表于 2011-12-7 15:59 | 显示全部楼层
有意思,自己出问题自己解决,呵呵
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-11 01:27 , Processed in 0.023645 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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