ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 查询某月里有哪些单号

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-6-22 13:19 | 显示全部楼层 |阅读模式
本帖最后由 shalisi 于 2018-6-22 13:19 编辑

点查询按钮后输入年月,点确定后在P列显示单号。如果单号相同则显示1个单号
比如:5月份有两个单,但是单号是相同的,输入2018/5后在P1显示单号10,不要在P2再显示10
如果点查询这种做不了,在M2选年份,在N2选月份后,在P列显示单号也行
麻烦老师们帮一下!

1.JPG

查询单号.rar

129.38 KB, 下载次数: 9

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-6-22 13:22 | 显示全部楼层
EXCEL是2010版的

TA的精华主题

TA的得分主题

发表于 2018-6-22 13:37 | 显示全部楼层
  1. Sub Test()
  2.     Dim intYear As Integer, intMonth As Integer
  3.    
  4.     intYear = Sheet7.Range("L2").Value
  5.     intMonth = Sheet7.Range("M2").Value
  6.    
  7.     SelectIDByYearMonth intYear, intMonth
  8. End Sub


  9. Function SelectIDByYearMonth(intYear As Integer, intMonth As Integer)
  10.     Dim Conn As Object, Rst As Object, strPath As String
  11.     Dim strConn As String, strSQL As String
  12.    
  13.     Set Conn = CreateObject("ADODB.Connection")
  14.     Set Rst = CreateObject("ADODB.Recordset")
  15.     strPath = ThisWorkbook.FullName '设置工作簿的完整路径和名称
  16.     Select Case Application.Version * 1 '设置连接字符串,根据版本创建连接
  17.         Case Is <= 11
  18.             strConn = "Provider=Microsoft.Jet.Oledb.4.0;Extended Properties=excel 8.0;Data source=" & strPath
  19.         Case Is >= 12
  20.             strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strPath & ";Extended Properties=""Excel 12.0;HDR=YES"";"""
  21.     End Select

  22.     Conn.Open strConn '打开数据库链接

  23.     strSQL = "SELECT 单号 " & _
  24.               "FROM [数据库$A1:K12] " & _
  25.               "WHERE Year(录单日期) = " & intYear & " And Month(录单日期) = " & intMonth & " " & _
  26.               "Group By 单号"

  27.     Rst.Open strSQL, Conn, 3, 1 '执行查询,并将结果输出到记录集对象

  28.     ActiveSheet.Range("P1").CopyFromRecordset Rst

  29.     Set Rst = Nothing
  30.     Set Conn = Nothing
  31. End Function


复制代码

TA的精华主题

TA的得分主题

发表于 2018-6-22 14:03 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

少了去掉重复的

TA的精华主题

TA的得分主题

发表于 2018-6-22 14:14 | 显示全部楼层
窗体控件 两个复合框,然后选择年月后,确定

Private Sub UserForm_Initialize()
Dim i%
Me.ComboBox1.List = Array(2018, 2019, 2010)
Me.ComboBox1.Style = fmStyleDropDownList
For i = 1 To 12
    Me.ComboBox2.AddItem i
Next
Me.ComboBox2.Style = fmStyleDropDownList
End Sub

Private Sub 确定_Click()
If Me.ComboBox1 = "" Or Me.ComboBox2 = "" Then Exit Sub
Dim cnn As Object
Dim Sql As String
Set cnn = CreateObject("ADODB.CONNECTION")
cnn.Open "Provider=Microsoft.ACE.OleDb.12.0;Extended Properties='Excel 12.0;HDR=YES'; Data Source=" & ThisWorkbook.FullName
Sql = "select distinct 单号 from [数据库$A1:J] WHERE  FORMAT(录单日期,""YYYYM"")='" & Me.ComboBox1 & Me.ComboBox2 & "'"
MsgBox Sql
[p:p].ClearContents
[p2].CopyFromRecordset cnn.Execute(Sql)
cnn.Close: Set cnn = Nothing
End Sub

TA的精华主题

TA的得分主题

发表于 2018-6-22 15:41 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-6-22 16:04 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
魂断蓝桥 发表于 2018-6-22 14:14
窗体控件 两个复合框,然后选择年月后,确定

Private Sub UserForm_Initialize()

谢谢老师,运行后出现对话框  select distinct 单号 from [数据库$A1:J] WHERE  FORMAT(录单日期,""YYYYM"")=“20186”


2.JPG

TA的精华主题

TA的得分主题

发表于 2018-6-22 16:05 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
shalisi 发表于 2018-6-22 16:04
谢谢老师,运行后出现对话框  select distinct 单号 from [数据库$A1:J] WHERE  FORMAT(录单日期,""YYYYM ...

那句 MSGBOX 注释掉。

'MsgBox Sql

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-6-22 16:14 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

老师,这里       strPath = ThisWorkbook.FullName '设置工作簿的完整路径和名称
    Select Case Application.Version * 1 '设置连接字符串,根据版本创建连接

路径是写      D:\桌面\数据库.xls    保存后这一个变成红色
设置连接字符串,根据版本创建连接   这个怎么搞,
我这几天才接触VBA,完全不懂,可以做成XECEL,通过附件给我吗

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-6-22 16:17 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 shalisi 于 2018-6-22 16:18 编辑
魂断蓝桥 发表于 2018-6-22 16:05
那句 MSGBOX 注释掉。

'MsgBox Sql

去掉'MsgBox Sql 这句吗

我删掉了可以用
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-12-26 15:18 , Processed in 0.047533 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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