Access數(shù)據(jù)庫(kù)開(kāi)發(fā)技巧(三)_Access數(shù)據(jù)庫(kù)教程
推薦:建立Access 數(shù)據(jù)庫(kù)的安全門在Office 2000下,Access數(shù)據(jù)庫(kù)的安全機(jī)制已經(jīng)更為完善。除了對(duì)數(shù)據(jù)庫(kù)設(shè)置密碼保護(hù),對(duì)數(shù)據(jù)庫(kù)進(jìn)行編碼壓縮,還可以啟用用戶級(jí)的安全機(jī)制,在用戶級(jí)別上控制對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)。 一、數(shù)據(jù)庫(kù)設(shè)置密
模塊的使用技巧
Access最重要的特征就是一般不必去寫程序,然而可能因?yàn)橐獔?zhí)行復(fù)雜或?qū)I(yè)的操作而必須在模塊中用Visual Basic編寫程序,然后通過(guò)窗體中的命令按鈕來(lái)執(zhí)行相應(yīng)的程序完成相應(yīng)的任務(wù)。比如排名次、分段統(tǒng)計(jì)等。在編寫Visual Basic程序時(shí)要注意以下一些問(wèn)題和技巧。
1、變量的運(yùn)用
�、賹�(duì)象變量的運(yùn)用
在Access中運(yùn)用Visual Basic編寫程序,需要運(yùn)用其數(shù)據(jù)訪問(wèn)對(duì)象。它包括數(shù)據(jù)庫(kù)引擎(DBEngine)、工作空間(Workspace)、數(shù)據(jù)庫(kù)以及數(shù)據(jù)庫(kù)對(duì)象中的表、查詢、記錄集等對(duì)象。如缺省工作空間:DBEngine.Workspaces(0),當(dāng)前數(shù)據(jù)庫(kù):DBEngine.Workspaces(0).Databases(0)。我們可以用一個(gè)對(duì)象變量來(lái)表示一個(gè)對(duì)象,這樣將為編程帶來(lái)很大方便。為對(duì)象變量賦值要用Set語(yǔ)句,而不要直接賦值。例如:
Dim thedb As Database
Set thedb = DBEngine.Workspaces(0).Databases(0)
�、赩ariant 數(shù)據(jù)類型的運(yùn)用
Variant 數(shù)據(jù)類型是所有沒(méi)被顯示聲明(如 Dim、Private、Public 或 Static等語(yǔ)句)為其他類型變量的數(shù)據(jù)類型。Variant 是一種特殊的數(shù)據(jù)類型,除了定長(zhǎng) String 數(shù)據(jù)及用戶定義類型外,可以包含任何種類的數(shù)據(jù)。Variant 也可以包含 Empty、Error、Nothing 及 Null特殊值。Empty 值用來(lái)標(biāo)記尚未初始化(給定初始值)的 Variant 變量。內(nèi)含 Empty 的 Variant 在數(shù)值的上下文中表示 0,如果是用在字符串的上下文中則表示零長(zhǎng)度的字符串 ("")。Null 表示未知數(shù)據(jù)或丟失的數(shù)據(jù),即無(wú)效數(shù)據(jù)。不應(yīng)將 Empty 與 Null 弄混。Null 是表示 Variant 變量確實(shí)含有一個(gè)無(wú)效數(shù)據(jù)。
當(dāng)有些量可能出現(xiàn)Null值時(shí),可將該變量定義為Variant 數(shù)據(jù)類型。Variant 數(shù)據(jù)類型為編程者提供很大的靈活性,但犧牲了代碼的速度和長(zhǎng)度。
�、弁ㄟ^(guò)變量來(lái)間接引用數(shù)據(jù)庫(kù)對(duì)象及限定條件
為了增加靈活性,提高控制能力,減少代碼的重復(fù)和運(yùn)用循環(huán)語(yǔ)句,在程序中應(yīng)充分運(yùn)用變量來(lái)間接引用數(shù)據(jù)庫(kù)對(duì)象和限定條件。比如各個(gè)年級(jí)學(xué)生成績(jī)排名次的處理程序,只是各年級(jí)的成績(jī)表名不同,我們可以將程序中的成績(jī)表名用一個(gè)變量如“bzcjb”來(lái)表示,具體處理時(shí)再替換為具體的表名,如替換為高一年級(jí)的成績(jī)表名“g1cjb”。
在具體運(yùn)用中有一些問(wèn)題要注意,如:
Dim thedb As Database
Set thedb = DBEngine.Workspaces(0).Databases(0)
Dim thecsb As Recordset
Set thecsb = thedb.OpenRecordset(bzcjb, DB_OPEN_DYNASET)
這里“bzcjb”可代表任意一個(gè)成績(jī)表,若“bzcjb”本身就是一個(gè)已存在的數(shù)表名,則上述最后一個(gè)語(yǔ)句中的“bzcjb”應(yīng)加上引號(hào),如下所示:
Set thecsb = thedb.OpenRecordset("bzcjb", DB_OPEN_DYNASET)
再比如Dcount 函數(shù)可用于確定特定記錄集中的記錄數(shù)�?梢栽� Visual Basic、宏、查詢表達(dá)式,或計(jì)算控件中使用 DCount 函數(shù)。
語(yǔ)法是:DCount(expr, domain[, criteria])
其參數(shù)如下:
expr 表達(dá)式,用于標(biāo)識(shí)將統(tǒng)計(jì)其記錄數(shù)的字段�?梢允且粋(gè)標(biāo)識(shí)表或查詢中字段的字符串表達(dá)式。 Expr可為字段的名稱或“*”,除非是“*”, Dcount 函數(shù)對(duì)包含空字段的記錄不記數(shù),若為“*”,Dcount 函數(shù)計(jì)算記錄總數(shù)。domain字符串表達(dá)式,代表組成域的記錄集,可以是表的名稱或查詢的名稱。criteria 可選的字符串表達(dá)式,用于限制 DCount 函數(shù)執(zhí)行的數(shù)據(jù)范圍。對(duì)于其限制條件criteria 可用一個(gè)變量來(lái)代替,比如要統(tǒng)計(jì)表“g1cjb”中字段“語(yǔ)文”分?jǐn)?shù)大于等于80分的人數(shù),可用下式來(lái)完成:
DCount("*", "g1cjb", " [班級(jí)]>=80")
假若用數(shù)字型變量“n”來(lái)替換“80”則如下:
DCount("*", "g1cjb", " [班級(jí)]>=" & n)
假若用字符型變量“n”來(lái)替換“80”則如下:
DCount("*", "g1cjb", " [班級(jí)]>='" & n & "'")
要注意替代的形式是不同的。上面的符號(hào)“&”是連接運(yùn)算符。
2、如何產(chǎn)生程序運(yùn)行進(jìn)度框
若在程序運(yùn)行時(shí)能產(chǎn)生一個(gè)程序運(yùn)行進(jìn)度框?qū)?huì)增加不少樂(lè)趣,Access可以實(shí)現(xiàn)這一要求。本人在實(shí)踐中摸索出一種簡(jiǎn)單的方法,就是通過(guò)在窗體中建兩個(gè)文本框,一個(gè)大一點(diǎn)的長(zhǎng)條形文本框(填充色為白色),作為外框,一個(gè)窄一點(diǎn)的長(zhǎng)條形文本框(填充色為其他彩色,長(zhǎng)度取為0.011厘米),作為產(chǎn)生程序運(yùn)行流水線用,它們的初始狀態(tài)均為不可見(jiàn)。然后在程序中控制其屬性為可見(jiàn)的且修改進(jìn)度流水線文本框的寬度來(lái)顯示程序的進(jìn)展情況。要注意的是為了讓進(jìn)度框在程序運(yùn)行時(shí)能及時(shí)顯示出來(lái)必須用SetFocus 方法將焦點(diǎn)移動(dòng)到進(jìn)度框上,并且要調(diào)整好流水線文本框與外框文本框的初始位置。注意,在用Width 屬性改變控件寬度時(shí)其單位為“Twip”,1Twip=1/1440英寸,約為1/567厘米。
分享:兩個(gè)未公開(kāi)的ACCESS方法的使用技巧在ACCESS中APPLICATION對(duì)象有兩個(gè)未公開(kāi)的方法,其中一個(gè)是SaveAsText, 另一個(gè)是LoadFromText.我記得是剛學(xué)ACCESS不久,當(dāng)時(shí)在研究FMS一個(gè)分析工具時(shí),跟蹤發(fā)現(xiàn)它總會(huì)產(chǎn)生一些臨時(shí)文件,對(duì)這些
- Access數(shù)據(jù)庫(kù)安全策略之ASP式
- 第N次被ACCESS的關(guān)鍵字涮
- Access中用Jet SQL語(yǔ)句刪除表關(guān)系
- Access報(bào)表打印如何自動(dòng)分頁(yè)
- Access完成累計(jì)余額的計(jì)算
- 搭建Access為主的Mdb數(shù)據(jù)庫(kù)
- 一句sql更新兩個(gè)表并可更新對(duì)應(yīng)的字段值具體實(shí)現(xiàn)
- MySQL查詢優(yōu)化:連接查詢排序limit(join、order by、limit語(yǔ)句)介紹
- 內(nèi)網(wǎng)ssh/mysql登錄緩慢的解決方法
- 使用準(zhǔn)則進(jìn)行條件查詢--1.4.從窗體中選擇查詢的條件
- 中文Access2000速成教程--1.1 使用“向?qū)А痹O(shè)計(jì)數(shù)據(jù)庫(kù)
- 中文Access2000速成教程--1.3 在“設(shè)計(jì)”視圖中設(shè)計(jì)表
Access數(shù)據(jù)庫(kù)教程Rss訂閱編程教程搜索
Access數(shù)據(jù)庫(kù)教程推薦
- 在Access數(shù)據(jù)庫(kù)中實(shí)現(xiàn)密碼管理的另一種方式
- Access 2007通過(guò)查詢來(lái)計(jì)算累計(jì)余額
- 使用Access提高企業(yè)管理器功能
- 數(shù)據(jù)庫(kù)設(shè)計(jì)范式
- 怎樣解決Access數(shù)據(jù)庫(kù)出現(xiàn)0x80004005的問(wèn)題
- PHP高級(jí)技巧:使用PHP模擬HTTP認(rèn)證
- Access 2007的飛躍
- 談Access為后臺(tái)數(shù)據(jù)庫(kù)的網(wǎng)站統(tǒng)計(jì)系統(tǒng)
- Access數(shù)據(jù)庫(kù)出現(xiàn)“無(wú)法保存;正被別的用戶鎖定”的原因
- ACCESS表達(dá)式生成器
- 相關(guān)鏈接:
- 教程說(shuō)明:
Access數(shù)據(jù)庫(kù)教程-Access數(shù)據(jù)庫(kù)開(kāi)發(fā)技巧(三)
。