揭开microsoftaccess秘密技巧

上传人:小** 文档编号:46169856 上传时间:2018-06-23 格式:DOC 页数:3 大小:35.50KB
返回 下载 相关 举报
揭开microsoftaccess秘密技巧_第1页
第1页 / 共3页
揭开microsoftaccess秘密技巧_第2页
第2页 / 共3页
揭开microsoftaccess秘密技巧_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《揭开microsoftaccess秘密技巧》由会员分享,可在线阅读,更多相关《揭开microsoftaccess秘密技巧(3页珍藏版)》请在金锄头文库上搜索。

1、揭开揭开 Microsoft Access 秘密技巧秘密技巧在 MicrosoftAccess 中有一些以前无正式文本的特性,它们允许你指定过程,这个过 程是从一个 from 或 report 的属性工作表窗中调用的。要进入最小窗口,只需要同时按下 SHIFT 和 F2 键。 BUILDERFORM 函数如果在一个模块中一个函数的定义是以 “BuilderrForm 开始同时 包含一个类似于 Onclose 属性或事件标识符,按下 SHIFT 和 F2 键就可以调用这个过程。例 如,当你在一个 form 的设计窗口中,而当前的光标落在属性窗口中的 Onclose 事件的编 辑控制上,按下 SH

2、IFT 和 F2 键将能调用 BuilderFormOnclose 函数。这使用于 form 和 reports 的大部分属性和所有事件。下面的代码将说明函数的格式: FunctionBuilderFormOnClose(szFormName As String, szControlName AsString,szCurrentValue As String, szReserved As String)If szCurrentValue= ThenDoCmd SelectObject A_MACRO, , TrueSendKeys %n%fs & New Macro & EnterForms(

3、szFormName).OnClose = New MacroElseDoCmd SelectObject A_MACRO, szCurrentValue, TrueSendKeys %dEnd IfEnd Function 参数 szFormName,szControlName,szCurrentValue, 和 szReserved 必须声明,即使你从不使 用它们。当你的函数被调用时,这些参数总是要 被传递的。如果它们没有被声明,那么 MicrosoftAccess 将不会调用你的函数。如果有一 个参数被分 配到 Onclose 事件上,那么前面的过程将打开一个宏,如果编辑控制是空,那 么

4、代码产生一个名为“NewMacro”的新宏,同时把编辑控制值设置为 “NewMacro”。诚然, 前面的例子并不是非常完美,但它的确说明了要产生一个完美而有效的程序所必须的条件。当你的应用程序启动并且把它们的可见属性设置位false时,如果你安装了你所 有的表格,那么你的应用程序的性能会让你感觉挺快。当你需要显示一个表格时,你只需 要把该表格的可见属性设置为true,这要比安装一个表格要快得 多。需要记住的是, 为你安装的每个表格,你都要从应用程序的全局堆中消耗存储空间。AccessBasic 中的陷 阱在 AccessBasic 中经常碰到的 陷阱是对动态连接库(DLLS)中的外部过程的调用

5、。当你 提供程序给你的用户,调用外部动态链接库时将出现使用警告;否则,你将得到一条错误 信息:试图用 相同的函数定义安装模块。使用唯一的别名在 AccessBasic 中,如果你知道 入口点(动态链接库中函数的名字),你可以调用动态链接库中的外部函数。 不过,使用 这一方法的限制性在于你只能声明外部函数一次。如果你安装了调用了你的模块调用的相 同的 Windows 应用程序接口,你不会得到一个不为人所知 的错误:试图用相同的函数定义 安装模块。 你尝试安装的模块要么是包含有相同的函数名,要么是包含在已存在的模块中有的过 程 名。删除这些过程,在 EDIT 菜单中使用 FIND 命令找到重复的过

6、程名,要解决这一问题, 你需要使用一种叫做“别名使用“的技术。这种技术允许你给你的过 程一个独一无二的名 字。但是,你选择的别名也有可能不是独一无二的,所以要使你取的名字唯一,你可以用 初始值和下划线优先声明你所有从动态链接库中调用的 过程,比如,声明 getActiveWindow 为:Declarebcb_GetActiveWindowLib Kernel Alias GetActiveWindow ()AsInteger.如何传递一个空指针给动态链接库一个空的 32 位指针是有效的或是为一些动 态链接库要求具有参数。要指定一个空值,使用 0&。当你的函数调用一个过程并传递一个 表达式&,

7、“&”指定一个 32 位的空指针,在函数声明中,一个 ASANY 参数指示 AccessBasic 对那个参数不进行类型检查,同时把值传递到被调用的函数。下面的编码示 范了一个正确的方法,告诉你如何声明一个给动态链接库中的过 程传递一个空指针参数的 AccessBasic 函数。这段声明了 WriteProfileString 应用程序接口函数。 这个函数来自于外部 Windows 动态链接库“kernel。 DeclareFunctionWriteProfileString Lib Kernel (ByVallpApplicationNameAs Any, ByVal lpKeyName A

8、s Any, ByVal lpStringAsAny)接下来的函数调用了一个外部过程,位 每个参数指定一个空值。这将使 WriteProfileString 充满它的内部高速缓 冲区,并且 WIN.INI 的任何变化写到磁盘上。重要的对这个函数不正确的使用会引起一般性的保护故 障或修改你的 WIN.INI 文件。 FunctionnFlushIniCache()nFlushIniCache= WriteProfileString (0&,0&, 0&)EndFunction 如何从动态链接库中传递和接收无符号整 型数常常有这样一种情况,要从外部动态链接库调用的过程中返回一个两个字节长 的无符

9、号整型数。然而 AccessBasic 不支持这种数据类型。正确地计算这种数据类型需要把它从 一个无符号整型数转换程 AccessBasic 长数据 类型。 AccessBasic 整型数的范围使从-32768 到 32767。一个无符号整型 数的范围是从 0 到 65535。AccessBasic 用最明显的一位来放置数值的符号位,所以当数值超过 32767,第 16 位将被置成负数符号。要计算一 个无符号整型数,你必须人工调整第 16 位。 从无符号整型数转换到 AccessBasic 长整型数或从 AccessBasic 的 长整型转换成无 符号整型数有两种方法。第一种方法用到了最基本的

10、数学运算(65535 被无符号整型值加 或减)。第二种方法使用 Bitwise 操作。实际 上,算术方法和 Bitwise 方法工作起来效果 一样,只不过,算术方法可能可读性更强一些,而 Bitwise 方法在执行时可能更快一些。 算术方法下面的 lArithUintToInt(nUint)和 lArithIntToUnint(lBytes)过程示范了如何 使用转换无符号整型数的算术方法。第一 个函数读进一个无符号整型数同时返回一个已经 转变位长整型的值。第二个函数读入一个长整型值,然后返回一个转变成无符号整型的值。FunctionlArithUintToInt(nUint As Intege

11、r) If nUint 32767 ThennArithIntToUnint = lBytes - 65536ElsenArithIntToUnint = lBytesEnd IfEnd Function 按位操作方法下面的 nBWUintToInt(lBytes)和 lBWIntToUint(nUint) 过程示范了如何使用 Bitwise 方法转换无符号整型数。第一个函数读进一个无符号整型数,然后返回一个已经转换成长 整型的值。第二个函数读入一个长整型 值,然后返回一个已经转换的无符号整型值。第二 个函数中使用了提示框的语句是为了防止当传递到函数的值大于 64KB 时会出现溢出信息。 10

12、10001111100000 (-23584)AND 1111111111111111 (FFFF&)1010001111100000 (41952)The functionsfollow: FunctionlBWIntToUint(nUint As Integer) lBWIntToUint = nUintAnd&HFFFF&End FunctionFunction nBWUintToInt(lBytes AsLong) DimnTemp As IntegerIf lBytes 65535 ThenMsgBox You passed a value larger than 65535Exit FunctionEnd IfnTemp = lBytes And &H7FFFnBWUintToInt=nTemp Or -(lBytes And&H8000)EndFunction 注意:&HFFFF&要求“&”在 16 进制 数的末尾。这样能保证 32 位的 16 进制数通过 16 位的值表示出来。AccessBasic 中的技巧在 MicrosoftAccess 中有一些以前 无正式文 本的特性,它们允许你指定过程,这个过程是从一个 from 或 report 的属性工作 表窗中调用的。要进入最小窗口,只需要同时按下 SHIFT 和 F2 键。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 经营企划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号