亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發(fā)設計 > 正文

MicrosoftAccess秘密、技巧和陷阱

2019-11-18 17:46:43
字體:
供稿:網(wǎng)友
Microsoftaccess秘密、技巧和陷阱

布萊恩C.布萊克曼

系統(tǒng)支持工程師,MicrosoftAccessBasic

摘要

  這篇文章概括了當使用MicrosoftAccess時,通過使用AccessBasic可以增加應用程序的執(zhí)行速度,減少編碼量,同時也減少在為MicrosoftWindows應用程序接口編程時、在開發(fā)應用程序中遇到的問題的技術(shù)。謹慎地使用變量和它所占用的存儲空間能有效地減少一個應用程序所消耗的資源,同時也全面提高了它的性能。

  不正確地調(diào)用Windows應用程序接口可能會產(chǎn)生一些意想不到的副作用,以及潛在地對一個應用程序的代碼及數(shù)據(jù)段的破壞。正確地使用一個空的32位指針在MicrosoftAccess中是十分必要的。

  當對表格和報表進行操作時,MicrosoftAccess有一個無正式文本的特性。這個特性允許你從設計視窗性質(zhì)sheetwindow中進行過程調(diào)用,調(diào)用的方法時同時按下shift和F2鍵。

介紹

  MicrosoftAccessBasic提供了一個豐富的開發(fā)環(huán)境。這個開發(fā)環(huán)境給你足夠的靈活性和對MicrosoftWindows應用程序接口的控制,同時保護你使你免遭用高級或低級語言開發(fā)環(huán)境開發(fā)時所碰到的各種麻煩。不過,許多優(yōu)化、有效數(shù)據(jù)和模塊化方面只能是應用程序設計者才能使用。開發(fā)者應致力于謹慎地使用算法。除了一般的程序設計概念,還有一些特別的存儲空間的管理技術(shù),正確使用這些技術(shù)可以提高應用程序的執(zhí)行速度,減少應用程序所要好的存儲資源。

提高速度和減少代碼量

  你可以用幾種技巧來提高你的編碼速度,但是卻找不到有效的算法的替代者。接下來的幾點建議可以提高你的編碼速度同時又減少你的應用程序消耗的存儲空間。

使用整形數(shù)據(jù)類型進行數(shù)學運算

  即使MicrosoftAccess會使用一個聯(lián)合處理器來處理浮點型算術(shù),整型數(shù)算術(shù)也總是要快一些。當你的計算不含有小數(shù),盡量使用整型或長整型而不是變量或雙整型。整型除法同樣也要比浮點除法要快。在使用其他一些有效的數(shù)據(jù)類型時會警告:沒有任何東西可以替換有效的運算法則。

避免使用過程調(diào)用

  避免在循環(huán)體中使用子程序或函數(shù)調(diào)用。每一次調(diào)用都因額外的工作和時間而給編碼增大了負擔。每一次調(diào)用都要求把函數(shù)的局部變量和參數(shù)壓棧,而棧的大小是固定的,不能隨便加大,并且同時還要于MicrosoftAccess共享。

謹慎使用不定長數(shù)據(jù)類型

  不定長數(shù)據(jù)類型提供了更大的靈活性,比如說允許正確處理空值和自動處理溢出。另外這種數(shù)據(jù)類型比傳統(tǒng)的數(shù)據(jù)類型要大并消耗更多的存儲空間。前面還曾經(jīng)提到過,不定長數(shù)據(jù)類型的變量在數(shù)學計算中比較慢。

用變量存放經(jīng)常使用的屬性

  對變量進行查找和設置都比對屬性進行這些操作要快。如果你要得到或查閱一個屬性值許多次,那么把這個屬性分配給一個變量,并用這個變量來代替屬性,那么你的代碼將要運行快得多。例如,在一個循環(huán)中,你查閱某表格中得一個控制的屬性,那么在循環(huán)外把屬性分配給一個變量,然后在循環(huán)中用查詢一個變量來代替查閱一個屬性的方法要比較快。

預載表格

  當你的應用程序啟動并且把它們的可見屬性設置位‘false'時,如果你安裝了你所有的表格,那么你的應用程序的性能會讓你感覺挺快。當你需要顯示一個表格時,你只需要把該表格的可見屬性設置為‘true',這要比安裝一個表格要快得多。需要記住的是,為你安裝的每個表格,你都要從應用程序的全局堆中消耗存儲空間。

AccessBasic中的陷阱

  在AccessBasic中經(jīng)常碰到的陷阱是對動態(tài)連接庫(DLLS)中的外部過程的調(diào)用。當你提供程序給你的用戶,調(diào)用外部動態(tài)鏈接庫時將出現(xiàn)使用警告;否則,你將得到一條錯誤信息:試圖用相同的函數(shù)定義安裝模塊。

使用唯一的別名

  在AccessBasic中,如果你知道入口點(動態(tài)鏈接庫中函數(shù)的名字),你可以調(diào)用動態(tài)鏈接庫中的外部函數(shù)。不過,使用這一方法的限制性在于你只能聲明外部函數(shù)一次。如果你安裝了調(diào)用了你的模塊調(diào)用的相同的Windows應用程序接口,你不會得到一個不為人所知的錯誤:試圖用相同的函數(shù)定義安裝模塊。

  你嘗試安裝的模塊要么是包含有相同的函數(shù)名,要么是包含在已存在的模塊中有的過程名。刪除這些過程,在EDIT菜單中使用FIND命令找到重復的過程名,要解決這一問題,你需要使用一種叫做“別名使用“的技術(shù)。這種技術(shù)允許你給你的過程一個獨一無二的名字。但是,你選擇的別名也有可能不是獨一無二的,所以要使你取的名字唯一,你可以用初始值和下劃線優(yōu)先聲明你所有從動態(tài)鏈接庫中調(diào)用的過程,比如,聲明getActiveWindow為:

  Declarebcb_GetActiveWindowLib"Kernel"Alias"GetActiveWindow"()AsInteger.

如何傳遞一個空指針給動態(tài)鏈接庫

  一個空的32位指針是有效的或是為一些動態(tài)鏈接庫要求具有參數(shù)。要指定一個空值,使用0&。當你的函數(shù)調(diào)用一個過程并傳遞一個表達式0&,“&”指定一個32位的空指針,在函數(shù)聲明中,一個ASANY參數(shù)指示AccessBasic對那個參數(shù)不進行類型檢查,同時把值傳遞到被調(diào)用的函數(shù)。

  下面的編碼示范了一個正確的方法,告訴你如何聲明一個給動態(tài)鏈接庫中的過程傳遞一個空指針參數(shù)的AccessBasic函數(shù)。這段聲明了WriteapplicationNameAsAny,ByVallpKeyNameAsAny,ByVallpStringAsAny)

  接下來的函數(shù)調(diào)用了一個外部過程,位每個參數(shù)指定一個空值。這將使WriteProfileString充滿它的內(nèi)部高速緩沖區(qū),并且WIN.INI的任何變化寫到磁盤上。

重要的

  對這個函數(shù)不正確的使用會引起一般性的保護故障或修改你的WIN.INI文件。

FunctionnFlushIniCache()
  nFlushIniCache=WriteProfileString(0&,0&,0&)
EndFunction

如何從動態(tài)鏈接庫中傳遞和接收無符號整型數(shù)

  常常有這樣一種情況,要從外部動態(tài)鏈接庫調(diào)用的過程中返回一個兩個字節(jié)長的無符號整型數(shù)。然而AccessBasic不支持這種數(shù)據(jù)類型。正確地計算這種數(shù)據(jù)類型需要把它從一個無符號整型數(shù)轉(zhuǎn)換程AccessBasic長數(shù)據(jù)類型。

  AccessBasic整型數(shù)的范圍使從-32768到32767。一個無符號整型數(shù)的范圍是從0到65535。AccessBasic用最明顯的一位來放置數(shù)值的符號位,所以當數(shù)值超過32767,第16位將被置成負數(shù)符號。要計算一個無符號整型數(shù),你必須人工調(diào)整第16位。

  從無符號整型數(shù)轉(zhuǎn)換到AccessBasic長整型數(shù)或從AccessBasic的長整型轉(zhuǎn)換成無符號整型數(shù)有兩種方法。第一種方法用到了最基本的數(shù)學運算(65535被無符號整型值加或減)。第二種方法使用Bitwise操作。實際上,算術(shù)方法和Bitwise方法工作起來效果一樣,只不過,算術(shù)方法可能可讀性更強一些,而Bitwise方法在執(zhí)行時可能更快一些。

算術(shù)方法

  下面的lArithUintToInt(nUint)和lArithIntToUnint(lBytes)過程示范了如何使用轉(zhuǎn)換無符號整型數(shù)的算術(shù)方法。第一個函數(shù)讀進一個無符號整型數(shù)同時返回一個已經(jīng)轉(zhuǎn)變位長整型的值。第二個函數(shù)讀入一個長整型值,然后返回一個轉(zhuǎn)變成無符號整型的值。

FunctionlArithUintToInt(nUintAsInteger)
  IfnUint<0Then
    lArithUintToInt=nUint 65536
  Else
    lArithUintToInt=nUint
  EndIf
EndFunction

FunctionnArithIntToUnint(lBytesAsLong)
  IflBytes>32767Then
    nArithIntToUnint=lBytes-65536
  Else
    nArithIntToUnint=lBytes
  EndIf
EndFunction

按位操作方法

  下面的nBWUintToInt(lBytes)和lBWIntToUint(nUint)過程示范了如何使用Bitwise方法轉(zhuǎn)換無符號整型數(shù)。第一個函數(shù)讀進一個無符號整型數(shù),然后返回一個已經(jīng)轉(zhuǎn)換成長整型的值。第二個函數(shù)讀入一個長整型值,然后返回一個已經(jīng)轉(zhuǎn)換的無符號整型值。第二個函數(shù)中使用了提示框的語句是為了防止當傳遞到函數(shù)的值大于64KB時會出現(xiàn)溢出信息。

    1010001111100000(-23584)
  AND1111111111111111(FFFF&)
    ----------------
    1010001111100000(41952)

Thefunctionsfollow:

FunctionlBWIntToUint(nUintAsInteger)
  lBWIntToUint=nUintAnd&HFFFF&
EndFunction

FunctionnBWUintToInt(lBytesAsLong)
  DimnTempAsInteger

  IflBytes>65535Then
    MsgBox"Youpassedavaluelargerthan65535"
    ExitFunction
  EndIf

  nTemp=lBytesAnd&H7FFF
  nBWUintToInt=nTempOr-(lBytesAnd&H8000)
EndFunction

注意:&HFFFF&要求“&”在16進制數(shù)的末尾。這樣能保證32位的16進制數(shù)通過16位的值表示出來。

AccessBasic中的技巧

  在MicrosoftAccess中有一些以前無正式文本的特性,它們允許你指定過程,這個過程是從一個from或report的屬性工作表窗中調(diào)用的。要進入最小窗口,只需要同時按下SHIFT和F2鍵。

BUILDERFORM函數(shù)

  如果在一個模塊中一個函數(shù)的定義是以“BuilderrForm”開始同時包含一個類似于Onclose屬性或事件標識符,按下SHIFT和F2鍵就可以調(diào)用這個過程。例如,當你在一個form的設計窗口中,而當前的光標落在屬性窗口中的Onclose事件的編輯控制上,按下SHIFT和F2鍵將能調(diào)用BuilderFormOnclose函數(shù)。這使用于form和reports的大部分屬性和所有事件。下面的代碼將說明函數(shù)的格式:

FunctionBuilderFormOnClose(szFormNameAsString,szControlNameAsString,szCurrentValueAsString,szReservedAsString)

IfszCurrentValue=""Then
  DoCmdSelectObjectA_MACRO,"",True
  SendKeys"nfs"&"NewMacro"&"{Enter}"
  Forms(szFormName).OnClose="NewMacro"

Else
  DoCmdSelectObjectA_MACRO,szCurrentValue,True
  SendKeys"d"

EndIfEndFunction

參數(shù)szFormName,szControlName,szCurrentValue,和szReserved必須聲明,即使你從不使用它們。當你的函數(shù)被調(diào)用時,這些參數(shù)總是要被傳遞的。如果它們沒有被聲明,那么MicrosoftAccess將不會調(diào)用你的函數(shù)。如果有一個參數(shù)被分配到Onclose事件上,那么前面的過程將打開一個宏,如果編輯控制是空,那么代碼產(chǎn)生一個名為“NewMacro”的新宏,同時把編輯控制值設置為“NewMacro”。誠然,前面的例子并不是非常完美,但它的確說明了要產(chǎn)生一個完美而有效的程序所必須的條件。->


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
黄色在线观看www| 一区二区三区中文字幕电影| 亚洲日韩成人| 久久免费国产视频| 妞干网这里只有精品| 男女性杂交内射妇女bbwxz| 日韩 国产 一区| 国产精品成人69xxx免费视频| fc2ppv国产精品久久| 国产精品一区二区三区视频网站| 免费看成人a| 精品视频在线免费观看| 天堂av在线免费观看| 中文天堂网在线www| 中文字幕制服丝袜在线| 亚洲国产成人私人影院tom| 欧美aaa大片视频一二区| 你懂得视频在线观看| 欧美影视资讯| 国产精品成人自拍| 国产亚洲在线| 黄色小视频在线看| 亚洲福利一区二区三区| 国产精品免费观看视频| 国产真人做爰毛片视频直播| 日本免费在线精品| 中文字幕第五页| 福利在线国产| 免费黄色在线| 秋霞欧美视频| 91麻豆精品| 久久嫩草精品久久久精品| 99精品欧美一区二区三区综合在线| 中文字幕欧美在线观看| 国产伦精品一区二区三区免.费| 亚洲最新在线视频| 国产九九精品视频| 免费看日韩av| 国产福利一区在线观看| xxx国产hd| 中文字幕av在线播放| 久草在线视频精品| 国产91亚洲精品一区二区三区| 国产精品日韩久久久久| 国产最新网站| 成人蜜臀av电影| 97视频在线免费| 特级毛片在线免费观看| 亚洲一二三四久久| 欧美福利影院| 亚洲国产精品久久卡一| 李丽珍裸体午夜理伦片| 在线观看国产高清视频| 国产综合精品一区| 91精品国产综合久久久蜜臀粉嫩| 五月激情综合婷婷| 欧美一区 二区| 2021国产精品视频| 欧美五码在线| 欧美成人免费在线| 亚洲少妇中文字幕| eeuss国产一区二区三区四区| 日韩国产欧美一区二区三区| 91免费视频播放| 麻豆成人久久精品二区三区小说| 老头吃奶性行交视频| 性生活免费网站| 国产国产人免费人成免费视频| 九九热视频免费在线观看| 91成人网在线观看| 亚洲一二区在线| 亚洲精品大全| 国产又粗又大又爽的视频| 日韩欧美国产综合在线| 久久精品视频在线播放| 91高清免费视频| 91在线视频免费看| 人禽交欧美网站| 午夜精品久久久| 国产极品久久久久久久久波多结野| 亚洲先锋影音| 国精产品99永久一区一区| 快色在线观看| 中文字幕日韩欧美精品高清在线| 性色av一区二区三区红粉影视| 国产精品久久久久久久泡妞| 欧美一区2区视频在线观看| 亚洲精品中文字幕乱码三区91| 成人h在线观看| 亚洲视频一区| 欧美久久久久久一卡四| 91人人爽人人爽人人精88v| 国产一区二区三区免费看| 91麻豆精品国产综合久久久久久| av av片在线看| 日本少妇毛茸茸| 国产乱码精品一区二区三区不卡| 国产精品毛片久久久久久| 黑人操亚洲女人| 在线一区亚洲| 欧美三级中文字幕在线观看| 99视频精品全部免费在线| 国产精品99久久久久久似苏梦涵| 日韩一区有码在线| 青娱乐国产视频| 欧美成ee人免费视频| 五月婷婷伊人网| 免费吸乳羞羞网站视频| 国产乱码精品1区2区3区| 欧美美女一级片| 亚洲乱码一区二区| 亚洲aaaaaaa| 精品午夜一区二区| 午夜视频在线观看一区二区三区| 亚洲日本无吗高清不卡| 国精产品一区一区三区mba下载| 北岛玲日韩精品一区二区三区| 亚洲在线免费播放| 久久久久久久久久成人| 天天综合久久| 97视频在线看| 九色91popny| 四虎影视精品| 91国在线高清视频| 欧洲精品码一区二区三区免费看| 亚洲无人区一区| 国产传媒欧美日韩成人| 国产一二三在线视频| 国产精品久久久久av免费| 欧美丰满艳妇bbwbbw| 成人污污视频在线观看| 国产一区二区区别| 日韩精品分区| av电影高清在线观看| 91精品国产乱码| 最近免费观看高清韩国日本大全| 黄色亚洲在线| 一级黄色片在线免费观看| 成人一级视频在线观看| 午夜精品福利一区二区三区av| 亚洲天堂一区在线| 美女久久久久久久久| 久久久久久com| 国产成人精品一区二区三区在线观看| 欧美中在线观看| 国产精品久久99| 青青草视频在线青草免费观看| 国产精品va在线播放我和闺蜜| 欧美亚洲免费高清在线观看| 午夜精品久久久久久久久久蜜桃| 亚洲国产老妈| 九九热只有这里有精品| 亚洲成色最大综合在线| 美日韩精品视频| 一区二区三区四区五区视频| 小黄鸭精品aⅴ导航网站入口| 草草影院在线观看| 国产黄色av网站| 日韩网站中文字幕| 一区二区三区偷拍| 午夜国产福利一区二区| 欧美性videosxxxxx| 日韩欧美一区二区三区视频| 26uuu成人网| 成人激情免费电影网址| 成人午夜电影小说| 久久久久久久黄色片| 91精品国产福利在线观看麻豆| 欧美日韩国产综合视频在线观看| 琪琪亚洲精品午夜在线| 夜夜躁狠狠躁日日躁婷婷小说| 超碰在线免费av| 亚洲免费视频一区二区三区| 亚洲av成人片无码| 精品国产三区在线| 亚洲欧美日韩成人在线| 欧美xxxx做受欧美.88| 天堂网在线中文| 成年人在线观看网站| 国产欧美久久一区二区| 欧美亚洲高清一区| 免费观看国产成人| av网站导航在线观看免费| 高潮精品一区videoshd| 专区另类欧美日韩| 伊人久久一区二区三区| 亚洲国产wwwccc36天堂| 99色在线观看| 日韩伦理在线免费观看| 亚洲一区二区三区中文字幕在线观看| 久久国产精品第一页| 青青一区二区三区| 欧美性感美女h网站在线观看免费| 亚洲色婷婷久久精品av蜜桃| 亚洲欧美自拍另类| 国产视频三区四区| blackedav金发美女大战黑人| 9.1人成人免费视频网站| 精品一区二区6| 国产小视频国产精品| 欧美暴力调教| 四虎最新网站| 一区免费观看视频| 你懂的在线观看视频网站| 欧美日韩国产综合视频| 69看片网站| 亚洲精选一二三| 中文字幕一区二区三区在线观看| 蜜臀91精品国产高清在线观看| 日韩一级高清毛片| 国内精品久久久久久| 亚洲精品乱码久久久久久蜜桃动漫| 亚洲毛片在线免费观看| 国产高清一区在线观看| 先锋a资源在线看亚洲| 中文网丁香综合网| 波多野结衣网页| 国产1区2区3区中文字幕| 欧洲xxxxx| 俺去啦在线观看| 亚洲跨种族黑人xxx| 无码内射中文字幕岛国片| 国产女女做受ⅹxx高潮| 久久久久久国产精品免费免费| 高清不卡一区二区| 99精品热视频| 国产野外战在线播放| 亚洲视频在线二区| 精品爽片免费看久久| 自慰无码一区二区三区| 精品国产一区二区三区久久久狼牙| 日本少妇xxx| 乱码一区二区三区| 精品卡一卡二| 国产三级自拍| 欧美精品videos性欧美| 亚洲精品久久久久| 国内在线免费高清视频| zjzjzjzjzj亚洲女人| 人人妻人人澡人人爽精品欧美一区| 国产剧情在线视频| 成年人黄色大片在线| 免费在线看污| 亚洲精品毛片| 中文国产字幕在线观看| 日韩美女在线播放| 久久久久免费| 亚洲一区免费在线观看| 人妻体内射精一区二区| 亚洲成a人v欧美综合天堂| 日韩在线视频免费看| 午夜福利视频一区二区| 国产精品欧美一区二区三区奶水| 免费看一级黄色| 日韩亚洲第一页| 国产91在线高潮白浆在线观看| 91精品国产乱码久久| 男人在线视频资源| 久久久久9999| 91精品国产综合久久久久久久久久| 黄色网址在线免费播放| 不卡的电视剧免费网站有什么| 国产高清视频免费在线观看| 麻豆视频免费在线观看| 欧美日韩在线精品一区二区三区激情综合| 原千岁中文字幕| 成人网站免费观看| 四虎精品在永久在线观看| 色先锋影音岛国av资源| 在线免费观看羞羞视频一区二区| 国产一级片麻豆| 欧美性受xxxx黑人爽| 羞羞视频在线观看不卡| 国产69久久精品成人看| 日本一级免费视频| 日韩av在线网站| 国产一区二区三区日韩| 在线播放国产一区| 日本一区二区三区视频在线播放| 91一区二区三区| 一二三四国产精品| 亚洲欧美日本另类| 黑人性受xxxx黑人xyx性爽| 久久精品综合视频| 久久婷婷人人澡人人喊人人爽| 久久免费一级片| 神马影院一区二区| 四虎影视免费永久在线| 久久人人精品| 国产网站麻豆精品视频| 韩国专线一区二三区| 国产一二三区av| 特级丰满少妇一级aaaa爱毛片| av老司机久久| 制服 丝袜 综合 日韩 欧美| 日本福利视频在线| 精品视频久久久久久| 91成人福利社区| 欧美爱爱小视频| 亚洲电影一级黄| av大片在线看| 亚洲人妻一区二区| 国产伦精品一区| 欧美视频中文字幕在线| 调教+趴+乳夹+国产+精品| 日美av在线| 成年人网站大全| 国产又爽又黄免费视频| 婷婷国产成人久久精品激情| 黄色成人在线视频| 人与牲动交xxxxbbbb高清| 日韩欧美一区二区视频| 亚洲精品亚洲人成人网在线播放| 538prom精品视频线放| 久久丁香四色| а√资源新版在线天堂| 午夜免费精品视频| 午夜精品亚洲| 日本美女一区二区三区| 久久久福利视频| 中文字幕免费在线观看视频一区| 亚洲欧洲综合另类| 中文字幕资源在线观看| 久久人人爽人人人人片| 欧美黑人疯狂性受xxxxx野外| 精品久久久久久无| 色婷婷av一区| 成人性生交大免费看|