ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[分享]通用型ACCESS数据库内容查看,修改器

[复制链接]

TA的精华主题

TA的得分主题

发表于 2006-6-8 20:24 | 显示全部楼层 |阅读模式
本帖已被收录到知识树中,索引项:其他插件和工具
想用ACCESS而不会用的请进. ACCESS高手请来指点 本文件适合以下人员下载,学习 对EXCEL熟悉但对ACCESS不懂的人. 对学习不感兴趣,但急于想用的人. 文件来历:在做物流公司从客户建档,制单,客服,统计,流量分析,查帐,对帐,成本等一整套表格时 最开始是用EXCEL做数据存贮,由于EXCEL的强项是分析数据,用是能用,就是不方便 1是EXCEL打开慢,保存慢(数据量大的话) 2是不能多人同时更新修改,经常能听到客服的大喊:柜台的把文件关一下,我要更新数据. 3是存贮数量有限,65536条 只有用数据库才能解决,以上3个问题 虽然从没用过,但好在EH里有不少列子,但远不如VBA和函数丰富, 看来这方面的资料还是少的多啊. 列子中多数是用的常量,如何改为变量,不懂 只好逐条改动看效果,还是掌握了一些用法. 边学边改三天后,数据转换成数据库,使用正常,同时修改互不影响 看了好多列子,但仍有一些关键问题没有找到方法. 用VBA打开有打开密码的数据库,找到一种,还有一种在兰兄的教材中只有打开无密码文件的方法, CNN.Open "provider=Microsoft.jet.OLEDB.4.0;data source=" & Stpath '& ";Jet OLEDB:Database Password=" & "123" Set DB1 = OpenDatabase(ThisWorkbook.Path & "\" & "学生档案.MDB") PWD不知道该放在哪? 居然要这样写才行,为找这个方法花了我一整天的时间 Set DB1 = OpenDatabase(ThisWorkbook.Path & "\" & "学生档案.MDB", False, False, ";Pwd=123") 还有只提取部分内容(逐行逐列),修改后存入数据库的方法,(如在EXCEL中不难) 例子中只找到,全部提取,全部存入的方法,不实用 这个方法正是我最需要的核心,也是摸索出来的 我相信有很多人也在找这个方法, 如何指定时间段,提取数据库中的资料,前几天看到个这样的提问贴,不知道有答案了没有 我是这样处理的: 把日期写到表上,再设置格式为数值,这就可以了 最后再把格式改回日期格式,都通过VBA操作,用户根本不觉得有变化 感觉这个方法是个笨办法,但好在能用,如有其它方法请指点. 虽然手头还有好多工作没完成,但还是觉得应该先把这个发上来, 花了不少时间,修改成通用的,这都是我在EH得到的知识. 不敢说原创,只能说把自己的学习心得和经历与大家分享 毕竟是第一次用ACCESS 对于代码中使用不当之处,请指出.谢谢 功能简介: 所有密码都是"123" 直接在表上显示结果,虽粗陋,但实用 设了简单的用户系统,密码都是123 管理员可删除用户,添加用户, 可向数据库中批量添加,删除数据, 如数据库共有10个字段(我叫它列头) 可以只提取其中的几个来修改,其它不受影响 就是按条件提取,再按条件修改 唯一性列头"姓名"也是能改的 自动记录修改时间,和操作员,用户本人无法干预, 两种检索方案 1.指定列头和时间段 2.只查时间段 显示内容为目录表中第三行所示列头,根据需要,自行设定 方式表中有管理工具,并设了6个查询模式,供用户自定义 自定义表中的A列自动生成指定文件的列头. 自定义表中的B和C列为检索窗口下拉菜单内容 通过这个文件,打开其它指定的*.mdb文件,有方便的选择界面 *.mdb文件必须是已知密码或无密码的,其它数据库类型没试过 此文件是以通讯录为样本设计的 如你的数据库是产品库存,请把其中具有唯一性的列头改为"姓名" 列:把"货号"改为"姓名",这样最省事 如不怕麻烦,可以把代码中所有"姓名"都改成"货号",可能有十几处吧*_* 还有一个必改之处,在"按单号"模块的Macro2中,已做标示 感觉Macro2的写入方法不太好,有高人经过请指点一下. 水平有限只能做到这么多了,现在公司的数据库中已有103列*12000行 放在局域网上,运行良好. 两个隐藏表,运行下面的代码可见 Sheets("b").Visible = 1 Sheets("h").Visible = 1 也不知道这是宝还是草? 觉得有用就用,觉得不足就多指点.不用给我面子,呵呵 EH. ldy888 2006-6-8 hDD0EF8j.rar (99.72 KB, 下载次数: 1284) PS:一些改善的方法,在后面的跟帖中有讨论,有些已方法已找到,但还不完善(俺水平不高) 如有完善的方法,会在一楼更新.
[此贴子已经被作者于2006-6-16 14:50:26编辑过]

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2006-6-8 21:05 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
谢谢分享

TA的精华主题

TA的得分主题

发表于 2006-6-8 21:12 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2006-6-8 21:46 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

下载后大体留览了一下,做得很不错.谢谢分享.([em23])

感觉Macro2的写入方法不太好,有高人经过请指点一下.

没感觉有什么不好,俺不是要当高手哦
不知你具体所指不满意的是什么.
倒是想提一些题外的建议:
1 兄台的代码水平与书写格式不协调,阅读起来总有些别扭,这些包括:退格使层次分明,一行尽量不要两句代码,DIM句使用及前置,不多说了,就是这个意思吧.
2 我现在也困惑,不知道是否这样应成为一种规范.就是ADO和DAO混合使用的问题.反正我现在在同一个工程中只用其中的一种.既然微软宣称要用ADO替代DAO,就尽量少用DAO吧.虽然ADO还不成熟,2.x的ADO与3.6的DAO相比无论是功能和书写后者都似乎更方便.
先说这么多.

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-6-9 00:54 | 显示全部楼层

to 用兄

先谢谢你的肯定.

关于Macro2 还有按姓名提取 ,不够理想,是和检索模块中两个宏相比(按时间查 和 模糊检索)这两个代码,查出5条结果和5000条结果在时间上没什么分别,都是不到1秒.

但Macro2 还有按姓名提取操作5000条数据,用时50多秒.

我在想有没有对按时间查 和 模糊检索 反操作的方法.

兄弟的这点东西都是瞎学来的,没看过一本书,不够系统.有很多该懂的地方不懂.

我所有的代码90%是CTRL+C 和 CTRL+V 后再插入,修改后得来.本来想搞整齐一点,搞到自己都晕[em06].

看来以后要在这方面下点功夫,否则高手没心情看,又何来指点.

用兄有空多指点.

TA的精华主题

TA的得分主题

发表于 2006-6-10 13:21 | 显示全部楼层

嫌速度慢啊?我向来把速度慢看为享受的,只要在8小时之内完成,别让我陪着加班就行.
如果在读行的时候直接就写入记录集相应行(二者应相等的吧?),可以省掉find的时间,当然,小节上通过WITH的使用等也会省些时间.
如果还不够快,不防把数据库的更新和工作表的事件(change等)绑定,化整为零,这样的话,增加/删除/修改几个按钮好象也多余了.

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-6-13 17:55 | 显示全部楼层
以下是引用[I]qee用[/I]在2006-6-10 13:21:18的发言:[BR]

嫌速度慢啊?我向来把速度慢看为享受的,只要在8小时之内完成,别让我陪着加班就行.
如果在读行的时候直接就写入记录集相应行(二者应相等的吧?),可以省掉find的时间,当然,小节上通过WITH的使用等也会省些时间.
如果还不够快,不防把数据库的更新和工作表的事件(change等)绑定,化整为零,这样的话,增加/删除/修改几个按钮好象也多余了.

粉有启发.俺要四一哈.

TA的精华主题

TA的得分主题

发表于 2006-6-13 21:28 | 显示全部楼层

我想问一个问题

h,b两表是如何隐藏的?

[em06][em06][em06]

另提几个建议,1\所有按钮及功能放到一个 userform上,如功能多的的话可用分页控件,2\做成加载宏,用户等信息在数据库中单独加表,3\在excel中查询数据用querytable对象查询更灵活更快速,

TA的精华主题

TA的得分主题

发表于 2006-6-13 21:55 | 显示全部楼层

我想问一个问题
h,b两表是如何隐藏的?

h,b两个表是宏表.
我非常不赞成使用宏表,个人认为让用户必须选择执行宏不是好程序员应该做的,换一下位,你是否喜欢这种感觉,为什么非要强加于人呢?(注意:我并非针对研究,毕竟知道和做是两回事)
使用宏表的代价就是你放弃了通过数字签名被人信任的正常通道.你应该能判断,是失大还是得大?

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-6-14 00:50 | 显示全部楼层

呵呵,没办法的办法,我们单位的人,用EXCEL长的5年,短的也有1年,95%的人,连

CTRL+C 和 CTRL+V 都不会用, 会查找但不会替换.....把日期设为1904年系统,然后告诉你,以前的日期都错了,取消了自动重算功能,然后告诉你,开出来的单子都是一个价钱,禁用了宏,然后说,文件坏了.等等.让人郁闷.

如不是设了一道道限制,不气死也要累死.

数字签名是个好办法,等全做完了给它加个数字签名.

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-12-12 05:07 , Processed in 0.053540 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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