Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-模块/函数/VBA

隐藏系统中所有的查询,以确保不会被非法链接 [查看原文]


最新评论8人参与评论

2012/6/30 12:12:00AngelHis
If left(db.QueryDefs(i).name,3) <>"~sq" then
CurrentDb.QueryDefs(db.QueryDefs(i).name).Attributes = 1
end if
'在for语句下面加入以上代码即可避开系统查询表

2008/8/21 19:10:5254.℡80後2oO
然后在窗体事件中调用即可.  CALL YINCANGCHAXUN()  
在哪个窗体的什么事件中写代码啊?????

2008/6/21 12:58:45小魏
我有发表过一篇彻底隐藏表的方法,再结合这篇隐藏查询的方法,就可以起到保护系安全的可能了.因为这时如果有导出的方法,是看不到基本表的,但是可以看到查询,但是如果导不出基本表,那导出的查询也没有用的.因为没有数据源,查询是不能运行的.
另外一点,对于较为敏感的数据,就将查询改为SQL代码放在模块中,将重要的链接表也放在模块中,当编译成MDE的时候,这些模块是打不开的,也可以起到保护的作用.
不过,如果微软公司能够将ACCESS的这些缺陷改掉,那就太好了,不必再去花这么多的心思了.只是,不知比尔能不能体会我们的心声哦.

2008/6/21 9:55:38小宝
用隐藏的方法根本不能防止查询和表被链接,即使编译为mde也不行,只有在模块中使用Runsql的方法运行查询,才能确保安全性!实际上,微软如能修改编译为mde后所有对象均不能导出,则Access的应用将更为安全,编程将更加容易.

2008/6/19 17:38:58小魏
另外,最好是再配合下面的两个语句,将系统对象及隐藏对像的属性修改一下。
最好是将这两句放在数据库的启动窗体的加载项中,让系统每次启动时都执行一次。

Application.SetOption "Show Hidden Objects", 0

Application.SetOption "Show System Objects", 0 


2008/6/10 10:27:10小魏
呵呵,道理是一样的呀.我喜欢用函数而己,说实话,上面这段代码在编写和调试的时候,就是在SUB过程中做出来的.所以有明显的SUB过程中的标志.呵呵.

2008/6/10 0:49:25cad
weizw55 老师:你好!
  我个人认为,上面应该是一个过程,而不应该是一个函数,为此应该将 Function 换成 Sub ,在引用你这段代码时,我是以调用过程的方法实现的,效果不错。


总记录:7篇  页次:1/1 9 1 :

发表评论您的评论将提升作者分享的动力!快来评论一下吧!

用户名:
密 码:
内 容:
 

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助