大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 数据库 -> MSAccess -> Access秘密、技巧和陷阱

Access秘密、技巧和陷阱

时间: 2021-08-13 作者:daque

作品详细了当运用microsoft access 时,经过运用access basic不妨减少运用步调的实行速率,缩小源代码量,同声也缩小在为microsoft windows运用步调接口编制程序时、在开拓运用步调中遇到的题目的本领。精心地运用变量和它所占用的保存空间能灵验地缩小一个运用步调所耗费的资源,同声也所有普及了它的本能。    不精确地挪用windows运用步调接口大概会爆发少许预见不到的副效率,以及潜伏地对一个运用步调的代码及数据段的妨害。精确地运用一个空的32位南针在microsoft access 中是格外需要的。    当对表格和报表举行操纵时,microsoft access有一个无正式文本的个性。这个个性承诺你从安排视窗本质sheet window中举行进程挪用,挪用的本领时同声按下shift和f2键。  引见    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.  怎样传播一个空南针给动静链接库  一个空的32位南针是灵验的或是为少许动静链接库诉求具备参数。要指定一个空值,运用0&。当你的因变量挪用一个进程并传播一个表白式0&,“&”指定一个32位的空南针,在因变量证明中,一个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 (0&, 0&, 0&)  end function  怎样从动静链接库中传播和接受无标记整型数    往往有如许一种情景,要从外部动静链接库挪用的进程中归来一个两个字节长的无标记整型数。但是access basic不扶助这种数据典型。精确地计划这种数据典型须要把它从一个无标记整型数变换程access basic长数据典型。    access basic整型数的范畴使从-32768到32767。一个无标记整型数的范畴是从0到65535。access basic用最鲜明的一位来安置数值的标记位,以是当数值胜过32767,第16位将被置成负数标记。要计划一个无标记整型数,你必需人为安排第16位。    从无标记整型数变换到access basic长整型数或从access basic的长整型变换成无标记整型数有两种本领。第一种本领用到了最基础的数学演算(65535被无标记整型值加或减)。第二种本领运用bitwise操纵。本质上,算术本领和bitwise本领处事起来功效一律,只然而,算术本领大概可读性更强少许,而bitwise本领在实行时大概更快少许。  算术本领    底下的larithuinttoint (nuint)和larithinttounint(lbytes)进程演示了怎样运用变换无标记整型数的算术本领。第一个因变量读进一个无标记整型数同声归来一个仍旧变化位长整型的值。第二个因变量读入一个长整型值,而后归来一个变化成无标记整型的值。 [page_break]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 > 32767 then     narithinttounint = lbytes - 65536  else     narithinttounint = lbytes  end if  end function  按位操纵本领    底下的nbwuinttoint(lbytes) 和 lbwinttouint(nuint)进程演示了怎样运用bitwise本领变换无标记整型数。第一个因变量读进一个无标记整型数,而后归来一个仍旧变换生长整型的值。第二个因变量读入一个长整型值,而后归来一个仍旧变换的无标记整型值。第二个因变量中运用了提醒框的语句是为了提防当传播到因变量的值大于64kb时会展示溢出消息。      1010001111100000 (-23584)     and 1111111111111111 (ffff&)       ----------------       1010001111100000 (41952)        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 > 65535 then     msgbox "you passed a value larger than 65535"     exit function  end if  ntemp = lbytes and &h7fff  nbwuinttoint = ntemp or -(lbytes and &h8000)  end function  提防:&hffff&诉求“&”在16进制数的结束。如许能保护32位的16进制数经过16位的值表白出来。  access basic中的本领    在microsoft access 中有少许往日无正式文本的个性,它们承诺你指定进程,这个进程是从一个from或report的属性处事表窗中挪用的。要加入最小窗口,只须要同声按下shift和f2键。  builder form因变量    即使在一个模块中一个因变量的设置是以“builderr form"发端同声包括一个一致于onclose属性或事变操作符,按下shift和f2键就不妨挪用这个进程。比方,当你在一个form的安排窗口中,而暂时的光标落在属性窗口中的onclose事变的编纂遏制上,按下shift和f2键将能挪用builderformonclose因变量。这运用于form和reports的大局部属性和一切事变。底下的代码将证明因变量的方法:  function builderformonclose (szformname as string, szcontrolname as string,                 szcurrentvalue as string, szreserved as string)  if szcurrentvalue = "" then      docmd selectobject a_macro, "", true      sendkeys "%n%fs" & "new macro" & "{enter}"      forms(szformname).onclose = "new macro"  else     docmd selectobject a_macro, szcurrentvalue, true     sendkeys "%d"  end if      end function  参数szformname, szcontrolname, szcurrentvalue, 和 szreserved必需证明,纵然你从不运用它们。当你的因变量被挪用时,那些参数老是要被传播的。即使它们没有被证明,那么microsoft access将不会挪用你的因变量。即使有一个参数被调配到onclose事变上,那么前方的进程将翻开一个宏,即使编纂遏制是空,那么代码爆发一个名为“new macro”的新宏,同声把编纂遏制值树立为“new macro”。固然,前方的例子并不利害常完备,但它简直说领会要爆发一个完备而灵验的步调所必需的前提 

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.