知识大全 Microsoft Access秘密、技巧和陷阱

Posted 函数

篇首语:人有知识,则有力矣。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Microsoft Access秘密、技巧和陷阱相关的知识,希望对你有一定的参考价值。

Microsoft Access秘密、技巧和陷阱  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  这篇文章概括了当使用Microsoft Access 时 通过使用Access Basic可以增加应用程序的执行速度 减少编码量 同时也减少在为Microsoft Windows应用程序接口编程时 在开发应用程序中遇到的问题的技术 谨慎地使用变量和它所占用的存储空间能有效地减少一个应用程序所消耗的资源 同时也全面提高了它的性能     不正确地调用Windows应用程序接口可能会产生一些意想不到的副作用 以及潜在地对一个应用程序的代码及数据段的破坏 正确地使用一个空的 位指针在Microsoft Access 中是十分必要的     当对表格和报表进行操作时 Microsoft Access有一个无正式文本的特性 这个特性允许你从设计视窗性质sheet window中进行过程调用 调用的方法时同时按下shift和F 键      介绍   Microsoft Access Basic提供了一个丰富的开发环境 这个开发环境给你足够的灵活性和对Microsoft Windows应用程序接口的控制 同时保护你使你免遭用高级或低级语言开发环境开发时所碰到的各种麻烦 不过 许多优化 有效数据和模块化方面只能是应用程序设计者才能使用 开发者应致力于谨慎地使用算法 除了一般的程序设计概念 还有一些特别的存储空间的管理技术 正确使用这些技术可以提高应用程序的执行速度 减少应用程序所要好的存储资源     提高速度和减少代码量    你可以用几种技巧来提高你的编码速度 但是却找不到有效的算法的替代者 接下来的几点建议可以提高你的编码速度同时又减少你的应用程序消耗的存储空间     使用整形数据类型进行数学运算    即使Microsoft Access 会使用一个联合处理器来处理浮点型算术 整型数算术也总是要快一些 当你的计算不含有小数 尽量使用整型或长整型而不是变量或双整型 整型除法同样也要比浮点除法要快 在使用其他一些有效的数据类型时会警告 没有任何东西可以替换有效的运算法则     避免使用过程调用    避免在循环体中使用子程序或函数调用 每一次调用都因额外的工作和时间而给编码增大了负担 每一次调用都要求把函数的局部变量和参数压栈 而栈的大小是固定的 不能随便加大 并且同时还要于Microsoft Access共享     谨慎使用不定长数据类型    不定长数据类型提供了更大的灵活性 比如说允许正确处理空值和自动处理溢出 另外这种数据类型比传统的数据类型要大并消耗更多的存储空间 前面还曾经提到过 不定长数据类型的变量在数学计算中比较慢     用变量存放经常使用的属性    对变量进行查找和设置都比对属性进行这些操作要快 如果你要得到或查阅一个属性值许多次 那么把这个属性分配给一个变量 并用这个变量来代替属性 那么你的代码将要运行快得多 例如 在一个循环中 你查阅某表格中得一个控制的属性 那么在循环外把属性分配给一个变量 然后在循环中用查询一个变量来代替查阅一个属性的方法要比较快     预载表格    当你的应用程序启动并且把它们的可见属性设置位 false 时 如果你安装了你所有的表格 那么你的应用程序的性能会让你感觉挺快 当你需要显示一个表格时 你只需要把该表格的可见属性设置为 true 这要比安装一个表格要快得多 需要记住的是 为你安装的每个表格 你都要从应用程序的全局堆中消耗存储空间     Access Basic中的陷阱    在Access Basic中经常碰到的陷阱是对动态连接库(DLLS)中的外部过程的调用 当你提供程序给你的用户 调用外部动态链接库时将出现使用警告 否则 你将得到一条错误信息 试图用相同的函数定义安装模块     使用唯一的别名    在Access Basic中 如果你知道入口点(动态链接库中函数的名字) 你可以调用动态链接库中的外部函数 不过 使用这一方法的限制性在于你只能声明外部函数一次 如果你安装了调用了你的模块调用的相同的Windows应用程序接口 你不会得到一个不为人所知的错误 试图用相同的函数定义安装模块     你尝试安装的模块要么是包含有相同的函数名 要么是包含在已存在的模块中有的过程名 删除这些过程 在EDIT菜单中使用FIND命令找到重复的过程名 要解决这一问题 你需要使用一种叫做 别名使用 的技术 这种技术允许你给你的过程一个独一无二的名字 但是 你选择的别名也有可能不是独一无二的 所以要使你取的名字唯一 你可以用初始值和下划线优先声明你所有从动态链接库中调用的过程 比如 声明getActiveWindow为     Declare bcb_GetActiveWindow Lib Kernel Alias GetActiveWindow () As Integer     如何传递一个空指针给动态链接库    一个空的 位指针是有效的或是为一些动态链接库要求具有参数 要指定一个空值 使用 & 当你的函数调用一个过程并传递一个表达式 & & 指定一个 位的空指针 在函数声明中 一个AS ANY参数指示Access Basic对那个参数不进行类型检查 同时把值传递到被调用的函数     下面的编码示范了一个正确的方法 告诉你如何声明一个给动态链接库中的过程传递一个空指针参数的Access Basic函数 这段声明了WriteProfileString应用程序接口函数 这个函数来自于外部Windows动态链接库 kernel     Declare Function WriteProfileString Lib Kernel (ByVal lpApplicationName As Any ByVal lpKeyName As Any ByVal lpString As Any)    接下来的函数调用了一个外部过程 位每个参数指定一个空值 这将使WriteProfileString充满它的内部高速缓冲区 并且WIN INI的任何变化写到磁盘上     重要的    对这个函数不正确的使用会引起一般性的保护故障或修改你的WIN INI文件     Function nFlushIniCache()  nFlushIniCache = WriteProfileString ( & & &)  End Function    如何从动态链接库中传递和接收无符号整型数    常常有这样一种情况 要从外部动态链接库调用的过程中返回一个两个字节长的无符号整型数 然而Access Basic不支持这种数据类型 正确地计算这种数据类型需要把它从一个无符号整型数转换程Access Basic长数据类型     Access Basic整型数的范围使从 到 一个无符号整型数的范围是从 到 Access Basic用最明显的一位来放置数值的符号位 所以当数值超过 第 位将被置成负数符号 要计算一个无符号整型数 你必须人工调整第 位     从无符号整型数转换到Access Basic长整型数或从Access Basic的长整型转换成无符号整型数有两种方法 第一种方法用到了最基本的数学运算( 被无符号整型值加或减) 第二种方法使用Biise操作 实际上 算术方法和Biise方法工作起来效果一样 只不过 算术方法可能可读性更强一些 而Biise方法在执行时可能更快一些     算术方法    下面的lArithUintToInt (nUint)和lArithIntToUnint(lBytes)过程示范了如何使用转换无符号整型数的算术方法 第一个函数读进一个无符号整型数同时返回一个已经转变位长整型的值 第二个函数读入一个长整型值 然后返回一个转变成无符号整型的值     Function lArithUintToInt (nUint As Integer)  If nUint < 0 Then  lArithUintToInt = nUint + 65536  Else  lArithUintToInt = nUint  End If  End Function    Function nArithIntToUnint (lBytes As Long)  If lBytes > Then  nArithIntToUnint = lBytes   Else  nArithIntToUnint = lBytes  End If  End Function    按位操作方法    下面的nBWUintToInt(lBytes) 和 lBWIntToUint(nUint)过程示范了如何使用Biise方法转换无符号整型数 第一个函数读进一个无符号整型数 然后返回一个已经转换成长整型的值 第二个函数读入一个长整型值 然后返回一个已经转换的无符号整型值 第二个函数中使用了提示框的语句是为了防止当传递到函数的值大于 KB时会出现溢出信息      ( )  AND (FFFF&)      ( )    The functions follow:    Function lBWIntToUint(nUint As Integer)  lBWIntToUint = nUint And &HFFFF&  End Function    Function nBWUintToInt(lBytes As Long)  Dim nTemp As Integer    If lBytes > Then  MsgBox You passed a value larger than   Exit Function  End If    nTemp = lBytes And &H FFF  nBWUintToInt = nTemp Or (lBytes And &H )  End Function    注意 &HFFFF&要求 & 在 进制数的末尾 这样能保证 位的 进制数通过 位的值表示出来     Access Basic中的技巧    在Microsoft Access 中有一些以前无正式文本的特性 它们允许你指定过程 这个过程是从一个from或report的属性工作表窗中调用的 要进入最小窗口 只需要同时按下SHIFT和F 键     BUILDER FORM函数    如果在一个模块中一个函数的定义是以 Builderr Form 开始同时包含一个类似于Onclose属性或事件标识符 按下SHIFT和F 键就可以调用这个过程 例如 当你在一个form的设计窗口中 而当前的光标落在属性窗口中的Onclose事件的编辑控制上 按下SHIFT和F 键将能调用BuilderFormOnclose函数 这使用于form和rep cha138/Article/program/Oracle/201311/18202

相关参考

知识大全 哪位大神有2013年下半年计算机二级Access要求的microsoft office 2010 版,麻烦发给我.

哪位大神有2013年下半年计算机二级Access要求的microsoftoffice2010版,麻烦发给我.  以下文字资料是由(全榜网网www.cha138.com)小

知识大全 设计和优化 Microsoft Windows CE .NET

设计和优化MicrosoftWindowsCE.NET  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 使用SQLserver导入和索引Microsoft Word文档

使用SQLserver导入和索引MicrosoftWord文档  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来

知识大全 Oracle与Access表之间的导入和导出实现

Oracle与Access表之间的导入和导出实现  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 用ASP.Net和Access编写留言本

实例编程:用ASP.Net和Access编写留言本  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!用

知识大全 国家秘密的具体秘密事项有哪些

国家秘密的具体秘密事项有哪些国家秘密的基本范围有哪些?《保密法》规定,国家秘密包括下列秘密事项:(1)国家事务的重大决策中的秘密事项;(2)国防建设和武装国量活动中的秘密事项;(3)外交和外事活动中的

知识大全 Microsoft .NET 框架资源基础

Microsoft.NET框架资源基础  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  摘要Chr

公文如需同时标识秘密等级和保密期限,秘密等级和保密期限之间__隔开

公文如需同时标识秘密等级和保密期限,秘密等级和保密期限之间_____隔开。A、用“★”B、用“※”C、用“參”D、空1字答案:A解析:公文中如需标注密级和保密期限,一般用3号黑体字,顶格编排在版心左上

知识大全 microsoft office professional plus2013 安装包的百度云资源

microsoftofficeprofessionalplus2013安装包的百度云资源32位的还是64位的自己下吧,office的安装包都比较大,需要用百度云客户端来下载,里面有安装说明和软件激活操

知识大全 Microsoft .NET Framework安全概述

Microsoft.NETFramework安全概述  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!