ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 根据条件查找另一个数据表的数据并在已创建的窗体中显示

[复制链接]

TA的精华主题

TA的得分主题

发表于 2016-3-30 11:00 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
求助各位前辈,我有一张基础数据表是单位所有员工的年假信息,然后我做了一个查询界面并创建了一个用户窗体,我想根据数据表中的title来查询相关人员的年假信息并在用户窗体中显示,求各位前辈指点!!!不胜感激!!!

年假查询.zip

167.68 KB, 下载次数: 31

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-3-30 11:02 | 显示全部楼层
补充一句:是根据单位员工的员工号做索引来查询其相关的年假信息

TA的精华主题

TA的得分主题

发表于 2016-3-30 12:25 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
  1. Dim arr
  2. Sub 按钮2_Click()
  3. Dim Sql_str As String
  4.     If IsEmpty(Range("D14").Value) Then
  5.         MsgBox ("Please input your employee number!")
  6.         End
  7.     Else
  8.         Sql_str = "select 工号,姓名,Name,工作起始,上年剩余年假,当年年假天数,当年已用年假,剩余可用年假,年假使用情况2016 from [2016$] where 工号=" & Range("D14").Value & ""
  9.         Call 查询(Sql_str)
  10.     End If
  11.     With UserForm1
  12.         .TextBox1 = arr(1, 0)
  13.         .TextBox2 = arr(2, 0)
  14.         .TextBox3 = arr(0, 0)
  15.         .TextBox4 = arr(3, 0)
  16.         .TextBox5 = arr(4, 0)
  17.         .TextBox6 = arr(5, 0)
  18.         .TextBox7 = arr(6, 0)
  19.         .TextBox8 = arr(7, 0)
  20.         .TextBox9 = arr(8, 0)
  21.         .Show
  22.     End With
  23. End Sub

  24. Sub 查询(sql As String)
  25.     Dim cnn As Object, rs As Object, i%, j%
  26.     Set cnn = CreateObject("ADODB.Connection")
  27.     Set rs = CreateObject("ADODB.Recordset")
  28.    
  29.     cnn.Open "Provider=Microsoft.ACE.OleDb.12.0;Extended Properties=Excel 12.0;Data Source=" & ThisWorkbook.Path & "\年假查询2016基础数据.xlsx"
  30.     rs.Open sql, cnn
  31.    
  32.     arr = rs.getrows
  33.    
  34.     rs.Close
  35.     cnn.Close
  36.     Set rs = Nothing
  37.     Set cnn = Nothing
  38. End Sub
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-3-30 13:24 | 显示全部楼层

您好前辈,我试了,好像不行,报错说是
在End Sub,End Funcation或End属性后面只能出现注释。

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-3-30 13:38 | 显示全部楼层
我有改了下,最后它提示

    cnn.Open "Provider=Microsoft.ACE.OleDb.12.0;Extended Properties=Excel 12.0;Data Source="C:\Users\david.li.OFTJ\Desktop\年假查询2016基础数据.xlsx""
编译错误
缺少:语句结束

TA的精华主题

TA的得分主题

发表于 2016-3-30 13:44 | 显示全部楼层
给你附件,我的运行正常

年假查询.rar

168.79 KB, 下载次数: 339

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-3-30 13:47 | 显示全部楼层
多谢前辈,我自己改了改,好像行了,太感谢了,谢谢您。

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-3-30 14:14 | 显示全部楼层
dyp1610 发表于 2016-3-30 13:44
给你附件,我的运行正常

谢谢您,另外还想问下您如何判断如果输入的员工号是错误的时的判断?

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-3-30 14:38 | 显示全部楼层
前辈,我的意思是说当输入错误的员工号时,表就报错了,怎么才能加上判断来避免这个问题啊?

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-3-30 14:59 | 显示全部楼层
dyp1610 发表于 2016-3-30 13:44
给你附件,我的运行正常

前辈,可不可以再加个if来判断当工号输入错误的时候给一个msgbox信息,如果输入正确的话显示结果?
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

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

GMT+8, 2024-4-25 18:02 , Processed in 0.043563 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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