ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

关于查询输出(反录入)功能的有关问题

[复制链接]

TA的精华主题

TA的得分主题

发表于 2013-5-4 22:27 | 显示全部楼层 |阅读模式
本帖最后由 明天の太遥远! 于 2013-5-4 22:48 编辑

出警信息.zip (255.37 KB, 下载次数: 14) 本人做的一个录入查询系统,第一部分的录入功能基本上做好了现在第二部分(查修)功能有点难为我了,有没有老师或者兄弟们出来指点指点,,先谢!!{:soso_e121:}{:soso_e157:}

问题:当输入“姓名”和“年龄”,按“查修”按钮后应该在当前工作表中查找到同时符合此两种条件信息(如果存在同时符合上述条件的两个或两个以上信息时择取最后一条),并反馈到窗体里相应的位置(如图所示)。然后删除目标所在的正行信息。
    如果查无此信息,则出来一个提示框(msgbox“输入信息有误或者无此人信息”)
说明:这个的意思,主要是对于先前录入时有错误的信息,予以调出。调出来需要的部分修改好后再按“确定”按钮后修改过的信息再次被保存下来。

QQ截图20130504215505.png

TA的精华主题

TA的得分主题

发表于 2013-5-7 16:41 | 显示全部楼层
你的查询算法比较有问题,一般用双重循环嵌套来查找是不太好的方法。
更何况是单元格循环,不是数组等,效率会很低。
帮你重新写了查询模块,你原来的代码都注释了,没有动。简单使用了find 和findnext 方法
具体代码方法的问题可查阅相关资料。

我试了一下应该是正常工作的,你再多做测试。特别是同名病人年龄不同的,看看是否会出错误记录。

出警信息.zip

23.48 KB, 下载次数: 24

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-5-8 00:14 | 显示全部楼层
本帖最后由 明天の太遥远! 于 2013-5-8 00:35 编辑
hehex 发表于 2013-5-7 16:41
你的查询算法比较有问题,一般用双重循环嵌套来查找是不太好的方法。
更何况是单元格循环,不是数组等,效 ...


谢谢你,,你写的代码很正常。但是我才发现我的设计思路有问题,,这里关键词应该为“日期+姓名”,而不是上述例子的“姓名+性别”,主要是要把性别和日期要互换一下功能。但是,,很惭愧,我没办法修改你的代码,我替换成日期后它还是看性别呢,,麻烦你再把代码亲手改一下好吗,,非常的感谢你!
还有,如果可以的话,你把这里的代码再简化一下,我看你的定义和我对“确定-change()”的定义有很多不同,那么我的代码能不能再简化呢?

TA的精华主题

TA的得分主题

发表于 2013-5-8 11:02 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
明天の太遥远! 发表于 2013-5-8 00:14
谢谢你,,你写的代码很正常。但是我才发现我的设计思路有问题,,这里关键词应该为“日期+姓名”,而不 ...

修改查修关键字为姓名+日期,上一篇你要求的是姓名+年龄作为关键字,不是姓名+性别,这点请注意。
优化了查修的算法语句,去掉了循环,速度上会更快速。目前没区别,记录少看不出来。
还是那句话,现在这种设计模式还是有隐患,你必须清楚。 比如两个同名的病人同一天被你们接收,那么按你的设计逻辑只有当天最后被录入的病人记录能被查询出来。这个概率比起前面的姓名+年龄都相同的情况恐怕也不好说那个更高。
具体参考附件吧

出警信息.zip

23.96 KB, 下载次数: 20

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-5-9 10:59 | 显示全部楼层
hehex 发表于 2013-5-8 11:02
修改查修关键字为姓名+日期,上一篇你要求的是姓名+年龄作为关键字,不是姓名+性别,这点请注意。
优化了 ...

谢谢您这么认真仔细的指正,祝你好运!

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-5-9 13:48 | 显示全部楼层
hehex 发表于 2013-5-8 11:02
修改查修关键字为姓名+日期,上一篇你要求的是姓名+年龄作为关键字,不是姓名+性别,这点请注意。
优化了 ...

哎呀,,又要麻烦你了,你给我写的代码,如果病人不存在时(姓名输入有误时)程序就崩溃了。这个有没有办法修正一下啊?

TA的精华主题

TA的得分主题

发表于 2013-5-9 14:16 | 显示全部楼层
本帖最后由 hehex 于 2013-5-9 14:20 编辑
明天の太遥远! 发表于 2013-5-9 13:48
哎呀,,又要麻烦你了,你给我写的代码,如果病人不存在时(姓名输入有误时)程序就崩溃了。这个有没有办 ...


编码不仔细啊,想偷懒,想用一个输出代表2个错误信息,还是老实来吧。
参考附件,并请详细测试。

附件例子中的这段提示信息改为下面的描述更贴切:

ElseIf fName.Offset(, -2) <> CDate(日期.Value) Then
        MsgBox "未输入病人姓名或该病人信息输入日期有误", vbExclamation, "错误提示"
        Exit Sub
Else
   ......

当然只是提示而已不影响正常的应用。

出警信息.zip

24.3 KB, 下载次数: 11

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-5-9 16:00 | 显示全部楼层
hehex 发表于 2013-5-9 14:16
编码不仔细啊,想偷懒,想用一个输出代表2个错误信息,还是老实来吧。
参考附件,并请详细测试。

美女,,这个还是有个错误,明明是(2013-05-02)的日期,在检索时怎么输进去都不被认识(试了 2013-05-02,2013-5-2,2013-05-2,2013-5-02等等),这么怪事我也第一次见,这个你有没有办法啊?
呵呵,太麻烦你了,很不好意思,耽误你的时间,如果可以的能不能QQ聊再交流啊?呵呵,你可放心我不会经常打扰你的,,
我的QQ:1966788293

TA的精华主题

TA的得分主题

发表于 2013-5-9 16:53 | 显示全部楼层
明天の太遥远! 发表于 2013-5-9 16:00
美女,,这个还是有个错误,明明是(2013-05-02)的日期,在检索时怎么输进去都不被认识(试了 2013-05-0 ...

俺不是美女。这头像是CSDN 上找的。
看看这次的附件,再测试一下。

出警信息.zip

25.17 KB, 下载次数: 43

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-5-9 21:10 | 显示全部楼层
hehex 发表于 2013-5-9 16:53
俺不是美女。这头像是CSDN 上找的。
看看这次的附件,再测试一下。

呵呵,不好意思,,傻猜的,也猜错了,,,,
这次的代码运行很正常。不知道怎么回事,别人写的代码,我很快就学会来,高搞明白的,,你的代码稍微改动就出错,,呵呵,,好吧,我再慢慢研究吧,,谢谢你!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-23 13:01 , Processed in 0.039276 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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