`

两个未公开的ACCESS方法的使用技巧

阅读更多

软件编程牛人网

在ACCESS中APPLICATION对象有两个未公开的方法,其中一个是SaveAsText, 另一个是LoadFromText。我记得是刚学ACCESS不久,当时在研究FMS一个分析工具时,跟踪发现它总会产生一些临时文件,对这些临时文件分析,发现它与VB里的窗体文件差不多的格式,所以估计微软可以将ACCESS的窗体转换为文本格式,并提供一种逆相转换的方法。所以发现了深厚的兴趣,后来就找到这两个方法。  
  虽然微软还有其它一些比较好用的未公开的属性,但我在这两个方法上花的时间还是最多的,因为它的确有使用价值,所以说说自己多年来的使用心得。  
  这两个方法在以后的ACCESS版本中并不一定支持,所以我并不建议大家使用,但因为有些功能如果使用它来实现,可以节省比较多的时间,所以,在某些情况下,我还是会使用它,至少现有的ACCESS版本都支持这个方法。如果同样的功能你可以通过ACCESS正常的方法来实现,我则建议你使用微软公开的方法。切记!  
  用途1:  

  使用application.saveastext acForm,"我的窗体","c:\test.txt" 将整个窗体导出到一个文本文件,将其打包发送给朋友,让朋友再使用application.loadfromtext acForm,"我的窗体","c:\test.txt" 再导回去。你可以压缩打包传送。  

  用途2:  

  可以将窗体保存到文本文件,然后把文本文件存储到OLE字段里,这样整个窗体的界面与代码都可保存到ACCESS数据表里,这个方法对编写 代码库管理器 非常有用。在使用时,还可即时将文本文件还原到一个窗体,让使用者即时预览到这个技巧产生的效果  

  用途3:  

  将窗体保存到一个文件文件,使用正则表达式对代码进行分析,可以分析语法,代码结构、语法错误、字数统计等等,你可参考一下FMS的一个ACCESS分析工具,它有的功能,你花个半年,做出来应该也没有大问题啦。记得让我试用一下源码哦:)  

  用途4: 

  真正的全局替换,一般我们需要全局替换窗体里一个属性的名称或内容,需要逐个逐个修改,而无法实现像代码中的全局替换,现在将窗体导出到文本文件,在文本文件里进行全局替换,完成后再导回窗体。  

  用途5:  

  繁简转换,中英转换,一般对控件标题、提示文字、默认值等进行文字上繁简转换后并不能真正实现繁简转换,在转换后相应的环境中打开还会出现ACTIVEX控件找不到或者OLE错误,将窗体或其它对象转换为文本文件后再进行繁简转换,然后再转换相应的字符集、字体名称、节的繁简对应名称、CRC校验码等之后,再导回ACCESS相应对象,就可完成整个ACCESS程序的转换,相应的程序效果可参见我做的繁简转换通用程序,记住简体一般是134 繁体是136 

  英文你打开就知了。我奉劝,如果你想做同样的功能,那你最好就别做了,用我的就得了,免得断我财路,我提成20%给你就得了,等两年后积到100元我再一次汇给你:)  

  用途6:  

  中英转换,虽然还需要进行少量手工转换,但已经节省了不少时间,但如何使用正式表达式来正确区别哪些是标题、提示文字、消息框还需要一些技巧。  

  用途7:改变控件的默认属性 

  除了我们在设计状态修改控件的默认属性之外,使用修改文本文件的内容也可达到修改控件默认属性的效果,当窗体或报表导出到文本文件之后,所有的窗体、控件属件以及默认控件属性都在文本文件中体现出来,通过修改这个文本文件里有关默认属性的设置即可达到目的。  

  什么是默认属性?举个例子,你从国外下载一个程序,为什么往窗体里面添加控件,控件字体总是Serif,而在简体中文环境下新建的窗体控件,字体都是"宋体",在繁体中文环境下新建的窗体控件,字体都是"新细明体",就是因为这个控件的默认属性导致的  

  用途8:  

  实现自动创建窗体模板的效果,将做好的具备基本功能的窗体导出到文本文件保存起来,到需要使用的时间,直接导入回来马上就可能产生一个已具备常用功能的窗体,不需要从头来过,再做得自动化一点,做一个丰富的窗体功能代码库,可让用户选择各种不同的功能,然后从这些代码库里选择想要的代码按照窗体文本文件的格式创建一个文本文件,再由这个文本文件自动组合出一个完善的窗体,不需要用户去编程,他只要选择字段,选择窗体功能、选择样式、选择模板就可实现各种录入窗体、查询窗体、分析窗体、报表统计等等,写程序就变成了组装程序。到时大家没事干了,就开发各个专用组件吧。注意,在文本文件中复制功能和代码,在自动编程化方面,相对窗体里复制控件和代码,具有更大的弹性和可塑性。  

  用途9:  

  如果窗体或报表里有图片或OLE对象,在导出的文本文件里会包含它们的二进制文件,使用正则表达式或其它方法提取这部分内容再将其还原到相应的图片文件中,即可实现将窗体和报表的图像保存取文件(ACCESS不支持直接将图像控件的图片保存到文件)  

  用途10:  

  实现将ACCESS窗体和报表转换到VB程序中,现在有一些专业程序提供这种功能,我想基本思路应该是出于此,将窗体和报表导出到文件文件,然后分析它与VB窗体文件之间的分别,然后修改文本文件以适应VB窗体的需要即可实现,只是我没有足够的时间来做这些了:),当然如果你举一反三,你也可能做一个工具,实现将VB的窗体反向转换到ACCESS程序中,毕竟VB的资源和丰富的技巧对ACCESS来讲有很大的利用价值  

  用途11:  

  一次性修改ACCESS对象里面所用的字体名称 字体大小或其它属性,连窗体的数据表的字体及其它属性也可更改到。 

  用途12:  

  查看窗体和控件的GUID ,并用来做相应的用途  

  用途13:  

  修改窗体和报表有关打印机的信息,为什么窗体的打印设置无法保存,为什么打开报表总会提示原来默认打印机不存在,是否使用当前打印机等等,这些信息其实都保存在窗体和报表里,打开文本文件,什么都清楚了,通过这个功能可实现不少强大的功能,大家发挥想像吧。  

  用途14:  

  如果要获取窗体和控件到底有些什么属性,通过文本文件可知道许多  

  用途15:  

  创建一些新的控件,如组合框,列表框等等,都可直接在里面复制代码来创建,而更有用的是,有些带注册信息(license)的控件,如果原来的窗体可用,但你没有LICENSE,你复制窗体会出现错误,说你没有版权,但如果你将窗体导出到文本文件,再导回一个新的窗体,ACCESS就给你蒙过去了,不过,这个方法可别说是我教的:),虽然我试过很多次才试出来的,不过我自己是坚决不用的:),大家都知道啦,我一般在公开场合,都是用正版的:)  

  用途16:  

  可以使用上述的方法对整个ACCESS的所有对象导出到文件进行备份保存,然后想还原哪个就还原哪个,虽然这种方法有其优点,不过,把整个MDB备份可能更实际些:)  

  用途17:  

  可以用于版本控制,不知大家有否在ACCESS中使用过SourceSafe,我研究不短时间,发现,它的签入签出就是使用我上述说的方法,在SourceSafe保存的是每个对象的文本格式。如果你有兴趣,可以写一个类似的版本控制工具,我预计2008年会开始写它,如果你在那年之前已经写出来了,那最好寄份源码给我,否则我控告你窃取我的点子:)  

  用途18:  

  除了窗体和报表外,还有其它几乎大部分对象,如查询、视图、存储过程、关系、宏、模块等等都可导出,你可用来做各种各样的用途,这里就不详述了。
 

分享到:
评论

相关推荐

    几个未公开的ACCESS方法的使用技巧

    在ACCESS中APPLICATION对象有两个未公开的方法,其中一个是SaveAsText, 另一个是LoadFromText.我记得是刚学ACCESS不久,当时在研究FMS一个分析工具时,跟踪发现它总会产生一些临时文件,对这些临时文件分析,发现它...

    Access数据库方法使用技巧

    这两种方法可以将窗体保存到文本文件,然后把文本文件存储到OLE字段里,这样整个窗体的界面与代码都可保存到ACCESS数据表里,这个方法对编写 代码库管理器 非常有用。在使用时,还可即时将文本文件还原到一个窗体,...

    ACCESS中使用SQL语句

    ACCESS中使用SQL语句应注意的地方及几点技巧  Create Unique Index iName ON Tab1 (Name);  完成后ACCESS中字段Name索引属性显示为 - 有(无重复).  下面的语句删除刚才建立的两个索引  Drop Index iDate ...

    Advantech WeAccess 实战技巧宝典1

    Advantech WeAccess 实战技巧宝典1,里面有5个文档分别针对WeAccess的某些功能进行讲解。实战技巧总文件较大,没法一起传,所以分了两个包。这个里面有目录,需要的可以下载另一个包。

    C#编程经验技巧宝典

    98 <br>0153 如何自定义数字小数点左边分组位数 98 <br>0154 格式化输入数据为货币格式 99 <br>0155 如何计算两个整数的乘积 99 <br>0156 如何将二进制数转换为十进制数 100 <br>0157 如何...

    集ACCESS与SQL数据类

    Socut.Data.dll则是经常很多代码优化、整理和归纳出的一个通用的数据库操作类,Access与SQL Server两种数据库同写一种代码。这个类写成组件,方便开发者直接调用。只要调用这个组件,你甚至只需写传统代码的20%的...

    非Access数据库在VB中的编程及应用

    本文从使用数据库存取对象变量的方法出发,实现了非Access格式数据库(以FoxPro数据库为例)的建新库、拷贝数据库结构、动态调入等操作,阐述了从编程技巧上弥补VB对这些外来数据库支持不足的可行性 。 一 、 VB...

    一个学生管理系统 ACCESS版

    主要演示了一些查询技巧,里面的综合评测成绩是这样算的:综合评测(一个学期) 课程*课时/总课时*70%+体育*10%+品德==============================================================这个程序用到了网上的两个控件...

    Excel VBA实用技巧大全 附书源码

    01051使用GetOpenFilename方法时出现错误的处理 01052利用GetSaveAsFilename方法获取文件名 01053利用CentimetersToPoints方法将计量单位从cm转换为磅 01054利用InchesToPoints方法将计量单位从in转换为磅 01055显示...

    数据库原理(第5版)

    由于当前Internet、World Wide Web和分析工具的广泛使用,因此另外增加两个基本概念: ● Web数据库处理 ● 商业智能(BI)系统 像Colin这样的用户(或将来从事类似工作的学生)不需要像信息系统专家那样深入地了解这些...

    量子场论中子系统的迹线距离

    我们开发了一种系统的方法来计算1 + 1维量子场论中两个降密度矩阵之间的迹线距离。 该方法利用了降低密度矩阵的路径积分表示法和临时复制技巧。 然后,我们将这种方法广泛地应用于计算共形场论的本征态中长度为...

    计算机专业毕设ASP+access博客网站的设计与实现(论文+源代码).rar

    通过对ASP技术和Access数据库的研究,探讨了如何利用这两种技术构建一个高效、稳定的博客网站。同时,论文还分析了项目中的关键技术难点和解决方案,如用户身份验证、文章评论等功能的实现。 源代码: 源代码包含了...

    计算机专业毕设ASP+ACCESS期刊稿件处理系统(源代码+初稿论文+终稿论文+系统说明+答辩PPT).rar

    本资源提供了一个全面且功能强大的ASP+ACCESS期刊稿件处理系统的源代码、初稿论文、终稿论文、系统说明以及答辩PPT。该系统专为计算机专业学生设计,旨在满足他们在毕业设计中对期刊稿件管理的需求。 **源代码**:...

    Excel VBA与数据库整合应用范例精讲

    内容简介 《Excel VBA 数据库整合应用范例精讲》用180个实例介绍了利用Excel VBA来操作数据库(包括Access、SQL Server和FoxPro)的实用方法和技巧。  全书共11章。第1~6章是利用Excel VBA操作Access数据库的实例...

    EXCEL 2007 宝典 附光盘文件

    weather combination chart.xlsx:一个演示使用两个数值轴的合并图表的工作簿。 Chapter 21 daily staffing levels.xlsx:一个演示设置条件格式的颜色刻度的工作簿。 conditional formatting formulas.xlsx:一个...

    Excel VBA与数据库整合应用范例精讲书及源代码

    内容简介 《Excel VBA 数据库整合应用范例精讲》用180个实例介绍了利用Excel VBA来操作数据库(包括Access、SQL Server和FoxPro)的实用方法和技巧。  全书共11章。第1~6章是利用Excel VBA操作Access数据库的实例...

    SQL基础第二版(PDG)

    通过详细了解这两种产品,您将掌握使用任何基本SQL 的产品的基本技巧。本书中的每一个概念都用了一个sQL 范例进行说明。在大多数情况下都设置了一个任务,然后给出了完成这项任务的SQL 代码。本书还展示了数据的原表...

    两种SYK模型和永恒遍历虫洞的纠缠熵。

    我们使用复制技巧来计算基态的纠缠熵。 并行地,我们通过Ryu-Takayanagi公式计算重力的纠缠熵。 对于与AdS2中的永恒可穿越虫洞对偶的基态,对纠缠熵的体量子校正与最小表面积相同。 耦合系统的基态在特定温度下接近...

    asp分页方法

    在开始详细介绍各种分页方法前,让我们先创建一个数据库:用Office97中的access自创一个Employee.mdb,其中建一个表emp,只设三个字段:emp ID,last name和first name。为什么这么简单,是因为我们关心的是怎样处理...

Global site tag (gtag.js) - Google Analytics