国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項超值服

開通VIP
Access2007數(shù)據(jù)庫快速開發(fā)教程(七) [Access軟件網(wǎng)]

時 間:2013-11-01 12:24:14
作 者:竹笛   ID:8  城市:上海  QQ:2851379730


摘 要:學(xué)習(xí)要求:本節(jié)預(yù)計學(xué)習(xí)課時為0.5小時,重點是:a.字段屬性中文本框、列表框、組合框;b.如何設(shè)置組合框的行來源。
正 文:

5.2 文本框、列表框與組合框

為了后續(xù)講述的方便,我們先遵照表設(shè)計說明書的標(biāo)準(zhǔn),輸入一些測試數(shù)據(jù)——首先,我們選中tblCodelb表,然后,單擊鼠標(biāo)右鍵,選擇

命令,或直接tblCodelb上雙擊鼠標(biāo)左鍵,都可以進(jìn)入表的【數(shù)據(jù)表視圖】,如下圖所示:



再次強(qiáng)調(diào),在正常情況下,是不允許用戶直接在表中輸入數(shù)據(jù)的,但我們這里為了教學(xué)的方便,先往表中錄入幾行試驗數(shù)據(jù)(注意類別編號的錄入——根據(jù)表設(shè)計的要求,必須是字母L+2位數(shù)字,否則在后續(xù)學(xué)習(xí)中,會出現(xiàn)問題),輸入完成之后,如下圖所示:

 好了,測試數(shù)據(jù),已經(jīng)輸入完畢,現(xiàn)在可以關(guān)閉當(dāng)前的tblCodelb表,繼續(xù)下一步的分析。

當(dāng)前的數(shù)據(jù)庫中,已經(jīng)有了三個用戶建立的表——我們很快就可以發(fā)現(xiàn),當(dāng)前三個表的主體,其實是tblBxmx表,至于tblCodeyg表和tblCodelb表,其實都是為tblBxmx服務(wù)的,通過tblBxmx表中的lbID字段和ygID字段關(guān)聯(lián),為tblBxmx提供選項值,以節(jié)省輸入時間,避免重復(fù)的手工輸入。

首先,請再次打開tblBxmx表的設(shè)計視圖,我們會發(fā)現(xiàn),幾乎所有的字段的【字段屬性】,都有兩個選項卡,一個是【常規(guī)】選項卡,是一個【查閱】選項卡,如下圖所示:

這個時候,我們就會明白,我們先前涉及的所有的【字段屬性】,都是從屬于常規(guī)選項卡的,而對于【查閱】選項卡,幾乎沒有涉及,那么,我們先定位到lbID字段,然后再單擊【查閱】選項卡,如下圖所示:


我們發(fā)現(xiàn),默認(rèn)情況下,【查閱】選項卡,只有一個屬性,那就是【顯示控件】,而當(dāng)前顯示控制的默認(rèn)的值是文本框,所謂文本框,就是只能提供一個可輸入方框的控件——接觸過網(wǎng)絡(luò)和計算機(jī)的,一般都知道,我們在錄入數(shù)據(jù),尤其是城市、性別、類別之類有明確可選值的數(shù)據(jù)的時候,都喜歡在系統(tǒng)所提供的下拉列表中直接點選相應(yīng)的選項,但是,這個文本框卻只能提供錄入方框,而不能同時提供可選擇的下拉列表——那么,如若能提供可選擇的下拉列表,有什么好處呢?那就是,通過點選下拉列表的值,一方面,能顯著地提高輸入的效率,另一方面,輸入的準(zhǔn)確率(防止筆誤)也可以一并提高,顯然,好處是顯而易見的。

那么,如何才能讓【顯示控件】(即顯示可輸入方框的控件)提供可選擇下拉可選列表的功能呢?接下來我們單擊顯示控件的輸入?yún)^(qū),然后點選由于激活輸入?yún)^(qū)而隨之出現(xiàn)的

按鈕,則如下圖所示:



這個時候,我們就可以發(fā)現(xiàn),原來【顯示控件】已經(jīng)提供了3個選項,分別是文本框、列表框、組合框——文本框,我們已經(jīng)解釋了,那么,列表框是什么呢?列表框,也就是說,在輸入?yún)^(qū)域被激活之后,會根據(jù)已指定的數(shù)據(jù)源(也就是可選項的數(shù)據(jù)來源)的當(dāng)前數(shù)據(jù)提供一個可選的值列表——這個列表是動態(tài)的,會根據(jù)數(shù)據(jù)源中數(shù)據(jù)的變化而變化,但在某一個靜止的時間點上,又是相對的靜態(tài)。比如,比如有一個體重類別的數(shù)據(jù)列,被其他表引用,作為其某一個字段的數(shù)據(jù)源,如若這個體重類別的數(shù)據(jù)列中當(dāng)前苗條、正常兩行數(shù)據(jù),那么,引用其作數(shù)據(jù)源的控件的下拉列表中,也只有苗條和正常兩個選項——如若體重類別數(shù)據(jù)列中,又添加了偏瘦和超重,那么,引用其作數(shù)據(jù)源的控件的下拉列表中,也會動態(tài)地增加這兩個選項。

在這里,需要強(qiáng)調(diào)的是,在【顯示控件】被指定為列表框之后,一切在可選值之外的輸入,都是不被允許的,也就是說,我們只能從數(shù)據(jù)源提供的值列表中來選擇輸入,而不再被允許輸入以外的數(shù)據(jù),因此,采用列表框,在提高輸入效率的同時,也可以精確地提高輸入的準(zhǔn)確率,防止非法數(shù)值的出現(xiàn),比如,在報銷數(shù)據(jù)庫的場合中,則可以禁止沒有報銷權(quán)限的人員的報銷單據(jù)的錄入,便于企業(yè)的內(nèi)部管理,以及提高企業(yè)內(nèi)控的安全性。

那么,組合框呢?已經(jīng)解釋了文本框和列表框,那么,組合框就很好說明了——所謂組合框,就是文本框和列表框的組合,也就是說,即可以自由輸入數(shù)據(jù),也可以從列表中選擇,顯得比較自由——針對一些安全性不是很高,并且,可以提供可選項數(shù)據(jù)的場合,可以采用組合框。

在此,需要說明的是,組合框也可以實現(xiàn)列表框的功能——如何實現(xiàn)呢?我們要知道,無論是任何對象,包括字段、控件、窗體和報表在內(nèi),都是通過其一系列的內(nèi)部屬性的設(shè)置來控制其外在的表現(xiàn)的形式——組合框當(dāng)然也不例外,在組合框的屬性中,有一個【限于列表】的屬性,默認(rèn)是不限于列表,即可以輸入列表之外的值,如若我們將其修改為是,即讓其限于列表,那么,當(dāng)前的組合框也不允許錄入下拉列表選項以外的數(shù)據(jù),其效果也就和列表框完全一致。

在當(dāng)前的場合,由于報銷類別和員工姓名,都是比較重要的數(shù)據(jù),因此,看起來,選用列表框,看起來是最為簡便的——其實不然,在這里,我們選擇組合框,其后,如下圖所示:

如上圖所示,當(dāng)我們選擇組合框之后,從屬于組合框的一系列屬性,就立即會被激活,并顯示出來——默認(rèn)的【行來源類型】(也就前面提到的數(shù)據(jù)源的種類,也就是可選項的數(shù)據(jù)來源對象的種類)是表/查詢,而我們前面已經(jīng)提到,tblCodeyg表和tblCodelb表,都是為tblBxmx表服務(wù)的,而tblBxmx表中l(wèi)bID字段的可選項則是來源于tblCodelb表,那么,在這里,顯然應(yīng)該選擇默認(rèn)值,也就是行來源的類型應(yīng)當(dāng)是:表/查詢。

已經(jīng)指定了【行來源類型】(也就是數(shù)據(jù)源對象的種類),那么,下一步就應(yīng)當(dāng)指定具體的數(shù)據(jù)源了——當(dāng)前,也就是需要指定【行來源】,【表/查詢】類型的數(shù)據(jù)源的指定,有兩種方式:

第一種方式,可以直接選擇表或查詢(需要滿足一定的前提條件),另一種方式,可以通過SQL代碼來實現(xiàn)的。

當(dāng)前,我們將先通過第二種方式來進(jìn)行——在以后的窗體開發(fā)的環(huán)節(jié),再來講述第一種方式的設(shè)置和相關(guān)細(xì)節(jié)。

但是,通過第二種方式,也有兩種操作方式,第一種,是直接編寫SQL代碼,第二種,是通過SQL語句生成器來自動生成SQL代碼——由于考慮SQL語句對部分的初學(xué)者,可能有那么的一點難度,因此,我們可以通過Access提供的SQL語句生成器來自動生成我們所需要的SQL代碼,那么,這個自動生成功能如何使用呢?

我們先激活【行來源】的輸入?yún)^(qū)(所謂激活,就是鼠標(biāo)單擊該輸入方框內(nèi)的任意位置),就會發(fā)現(xiàn),在【行來源】輸入方框外的右側(cè),出現(xiàn)了一個

按鈕,如下圖所示:   

 



接下來,我們單擊

按鈕,則如下圖所示:



就這樣,我們通過單擊

按鈕,啟動了【查詢生成器】,可以用以生成我們所需的SQL語句——首先,我們要在彈出的【顯示表】對話框中,選擇我們當(dāng)前的控件所需要的數(shù)據(jù),由哪個表來提供,顯然,應(yīng)當(dāng)選擇tblCodelb表,如下圖所示:



然后,我們單擊【添加(A)】按鈕,就可以將表添加到查詢設(shè)計界面,接下來,通過單擊【顯示表】對話框中【關(guān)閉(C)】按鈕,關(guān)閉【顯示表】對話框,然后,如下圖所示:


當(dāng)前的這個設(shè)計界面,上半部分是表和查詢的顯示區(qū)域,下半部分是用以生成SQL語句(或查詢)的設(shè)計區(qū)域,接下來,我們先選中l(wèi)bID字段,如下圖所示:



然后,雙擊lbID字段,lbID字段就會被自動地放置于下半部分的設(shè)計窗格中,如下圖所示:

當(dāng)然,也可以通過拖拽的方式——即先行點選lbID字段,然后,按住鼠標(biāo)左鍵拖拽,將該字段拖拽到適當(dāng)?shù)拇案裆戏綍r,再松開鼠標(biāo)左鍵,也可以達(dá)到同樣的目的。

同理,我們將lbmc字段,也拖放到設(shè)計窗格,如下圖所示:



由于當(dāng)前的查詢設(shè)計,即是為了配合生成以tblCodelb表中兩個字段為主體的查詢,進(jìn)行到這里,兩個字段都已經(jīng)被拖放到設(shè)計窗格中去了,也就是說,我們已經(jīng)完成了全部的設(shè)計工作,不用再做進(jìn)一步的處理,更不需要再進(jìn)行排序、統(tǒng)計或?qū)懴鄳?yīng)的表達(dá)式——這種查詢,可以說,是最為簡單的查詢,簡單到不能再簡單的地步。

接下來,我們單擊設(shè)計區(qū)域頂端右側(cè)的

按鈕,就會彈出一個對話框,如下圖所示:



這個對話框的意思就是說——是否要生成SQL語句,并填寫到【行來源】的輸入方框(也就是行來源的屬性值)中去——這正是我們建立查詢的目的,因此,當(dāng)然要單擊【是(Y)】按鈕加以確認(rèn),然后,則如下圖所示:



很顯然,我們所需要的SQL代碼,已經(jīng)被自動填好了——由系統(tǒng)所生成的SQL語句,如下:


Select tblCodelb.lbID, tblCodelb.lbmc FROM tblCodelb


這一條SQL代碼的意思是說,返回(即Select關(guān)鍵字的作用)來源于(即FROM關(guān)鍵字的作用)tblCodelb表中的lbID和lbmc字段的值的列表。
對于學(xué)過SQL語言的來說,以上的語句,幾乎可以說是最為簡單的SQL代碼——如若先前沒有學(xué)過SQL語句,以后再用到類似到語句的時候,只需要將其中的表名和字段名稱替換成對應(yīng)的表名和字段名稱即可。

接下來,我們再看【綁定列】屬性,默認(rèn)值是1,這個屬性的意思就是說,將從【行來源】中返回的數(shù)據(jù)列表結(jié)果集的哪一列中的數(shù)值保存到表中——我們剛才設(shè)計的查詢,毫無疑問,返回的結(jié)果集,只有2列,第一列是lbID(類別編號),第二列是lbmc(類別名稱)——而我們當(dāng)前的這個屬性是歸屬于tblBxmx表的lbID的字段,其【字段大小】只有3,與第一列相匹配,因此,顯然我們應(yīng)該將第一列的相應(yīng)對的值,保存到表中去,因此,保持默認(rèn)值即可,無需修改。

這個時候,我們不妨再理一下思路——也就是說,我們在激活下拉列表,選擇相應(yīng)值以便完成輸入的時候,當(dāng)然是希望下拉列表中的選項,都是我們所容易理解的,比如,我們可以再次打開tblCodelb表,查看剛才輸入的測試數(shù)據(jù),這個時候,我們就會發(fā)現(xiàn),第一列的數(shù)據(jù)是很難理解的,單單看第一列數(shù)據(jù),我們很難知道L01代表什么,L02代表什么,但是與第一列所對應(yīng)的第二列,則是一目了然的——電話費(fèi)、資料費(fèi)所代表的含義,我們都能理解——不妨再以當(dāng)前的tblCodelb表來舉例——既然L01代表電話費(fèi),L02代表住宿費(fèi),那么,我們當(dāng)然希望點選的時候,看到的是第二列的數(shù)據(jù),而保存在tblBxmx表中的,卻是第1列的數(shù)據(jù)——不然,我們還需要記憶類別編號和類別名稱之間的對應(yīng)關(guān)系——這樣做豈不是太辛苦了?

比如,在現(xiàn)實中,雖然我們身份的唯一標(biāo)識是身份證號(類似于這里的類別編號,同樣不允許重復(fù)),但是,平常我們生活之中彼此相稱,卻是以姓名或別名、昵稱、字號相稱,而不是以身份證號相稱——但是,我們要查驗一個人的真正的身份的時候,卻通常是以身份證號來查驗,而不是以平常所稱的姓名來查驗。

以上的這個道理,與當(dāng)前的tblBxmx表的lbmc字段的道理是一樣的。也正是因為這個道理,所以,我們才在查詢設(shè)計的時候選擇了兩列數(shù)據(jù),第2列數(shù)據(jù)是顯示給前臺界面的操作員看的,就好比我們平常以姓名或別名、昵稱、字號相稱,而第1列的數(shù)據(jù),相當(dāng)于身份證號,則是需要保存到表格中去的(將被選擇的選項所對應(yīng)的第1列的值保存到表中,比如,如若選擇是電話費(fèi),則將所對應(yīng)的L01保存到表格中去)。

因此,理想的設(shè)計便是,可供選擇的列表值是友好的,而存儲在數(shù)據(jù)庫中的值卻是唯一的、高效的,這也是我們?yōu)槭裁匆4娴?列的數(shù)據(jù),而不是保存第2列的原因——當(dāng)然,在表設(shè)計的時候,我們可以設(shè)計成保存第2列的數(shù)據(jù),但我們并沒有那樣去設(shè)計——當(dāng)然,在完成表設(shè)計之后的現(xiàn)在,也只能保存第1列中的數(shù)據(jù)。

為什么呢?這是因為類別名稱或許不會出現(xiàn)的值,但是在實際案例中,有很多字段都會出現(xiàn)重復(fù)的值,比如姓名,因此,為了養(yǎng)成良好的習(xí)慣,我們這里遵循通用的設(shè)計原則。

此外,即便是在tblCodelb表中,類別名稱不會出現(xiàn)重復(fù),但是,如若我們在做表設(shè)計的時候,如若選擇在tblBxmx表的lbmc字段中保存來源于tblCodelb表中第2列數(shù)據(jù),比如,保存是電話費(fèi),而不是L01,那么,如若以后類別名稱有所調(diào)整——那么,tblBxmx表中凡是涉及到電話費(fèi)的記錄,都需要一一調(diào)整——盡管我們有批量調(diào)整的辦法,但是畢竟增加了一項工作——而如若保存的是第1列數(shù)據(jù),比如,保存的是L01,那么,無論以后相對應(yīng)的類別名稱如何調(diào)整,tblBxmx表的lbID字段的值都不用做任何調(diào)整,比如,在現(xiàn)實中,無論我們?nèi)绾胃男彰?、昵稱、字號,而我們的身份證號卻是不變的,因此,只要確定了一個人的身份證號,這個人的姓名、昵稱、字號無論如何變更,都可以將其鎖定并找出來。lbID

因此,數(shù)據(jù)庫的設(shè)計工作,雖然也是一項技術(shù)工作,但是在了解相關(guān)的技術(shù)細(xì)節(jié)的同時,也需要了解其相關(guān)的業(yè)務(wù),不然,設(shè)計工作和實際的工作,可能會產(chǎn)生比較嚴(yán)重的脫節(jié),與此同時,我們還要掌握相關(guān)的開發(fā)技巧,比如,剛才的這個設(shè)計——盡量給前臺用戶提供便利,而把相關(guān)的計算隱藏在用戶所覺察不到的后臺。

接下來,我們繼續(xù),下一個屬性是【列數(shù)】,這里問的是我們需要由【數(shù)據(jù)源】返回的結(jié)果集其中的前幾列——前面討論了那么多,當(dāng)然知道是需要2列,所以,這里由默認(rèn)的1更改為2。

下一個屬性是【列標(biāo)題】,所謂【列標(biāo)題】,就是該字段的【字段屬性】的【常規(guī)】選項卡的【標(biāo)題】屬性的值,在下拉列表彈出的時候,是否附帶顯示在下拉列表的頂端——如若沒有給該標(biāo)題賦值,則直接顯示相應(yīng)的字段名稱,在這里,也就是顯示lbmc。通常來說,列標(biāo)題,會在輸入界面中,以標(biāo)簽的形式出現(xiàn),因此,這里就沒有必要重復(fù)出現(xiàn)了——當(dāng)然,這也根據(jù)需要來定,通常也是需要的,不排除某些特殊場合是需要的。

下一個屬性是【列寬】,我們知道,剛才填寫【列數(shù)】屬性的時候,就已經(jīng)知道當(dāng)前返回的結(jié)果集有兩列,所以,這里應(yīng)當(dāng)分別設(shè)置兩列的寬度——前面已經(jīng)分析過,最理想的情況是,提供的可選項是第2列的數(shù)據(jù),而存儲在數(shù)據(jù)庫中的卻是相對應(yīng)的第1列的編號,因此,點選的時候,是沒有必要同時顯示兩列數(shù)據(jù)——盡管可以這么做。再則,比如,電話費(fèi)所對應(yīng)的編號是什么,完全沒有必要讓普通用戶知道——完全可以將這些計算工作放在后臺進(jìn)行。

因此,盡管我們選擇了2列,仍然可以通過技術(shù)手段將第1列隱藏,即將其列寬設(shè)置為0cm,第2列的列寬,根據(jù)當(dāng)前的情況,設(shè)置為2cm就可以了(可以根據(jù)需要適當(dāng)調(diào)整),因此,這里應(yīng)該這樣填寫:0cm;2cm——需要值得注意的是,列寬屬性中兩個長度之間的分號必須是英文輸入法下的分號,如若是誤用了中文的分號,系統(tǒng)會報錯的——如若遇到系統(tǒng)報錯,請不要疑惑,切換一下輸入法即可。

接下來,是【列表行數(shù)】屬性,這個屬性牽涉到整個下拉列表框的高度,默認(rèn)為8行的高度,在這里,我們可以將其調(diào)整為20行——如若可選值超過20行,則會顯示垂直滾動條。

接下來是【列表寬度】——前面的【列表行數(shù)】實際上是整個可選列表框高度的設(shè)置,而【列表高度】則是整個可選列表框的寬度的設(shè)置,通常保持默認(rèn)的自動即可,當(dāng)然,也可以去規(guī)定一個寬度——當(dāng)這里設(shè)置的寬度小于前面設(shè)置的總的【列寬】(所有字段累加的寬度即總的【列寬】),那么,將會顯示出水平滾動條。

最后就是前面提過的【限于列表】了,默認(rèn)是否,這里應(yīng)該修改為是。

以上設(shè)置全部完成之后,如下圖所示:

進(jìn)行到這里,lbID的【字段屬性】的相關(guān)設(shè)置工作就已經(jīng)全部完成了,接下來,我們可以按照同樣的原理和方法完成ygID字段的【查閱】選項卡中相關(guān)屬性的設(shè)置工作,完成之后,如下圖所示:

接下來,我們可以通過單擊

按鈕來保存表的設(shè)計——進(jìn)行到這里,表的建立工作就已經(jīng)全部完成了。在這個過程中,我們可以發(fā)現(xiàn),技術(shù)是一個方面,設(shè)計思路又是一個方面,只有完善的設(shè)計思路,再搭配比較嫻熟的技術(shù),才可以建立比較完善的系統(tǒng),因此,在學(xué)習(xí)的過程中,一定注意設(shè)計思想的總結(jié)和提高——對于善于領(lǐng)悟的人來說,設(shè)計思想的提高不僅僅可以帶來數(shù)據(jù)庫技術(shù)的改變,也必定可以給個人生活帶來全方位的改變,為什么可以這樣呢?因為各行各業(yè),包括生活、工作、學(xué)習(xí)的基礎(chǔ)和理論,本來就是相通的,所以才可以一以貫之,一通百通,因此,衷心地希望本教程能給大家?guī)聿煌岔懙捏w驗和改變。




Access軟件網(wǎng)QQ交流群 (群號:473665531)      access源碼網(wǎng)店 
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
【Access】SQL語句中自然連接的使用
VB數(shù)據(jù)庫(例子)
2010年全國計算機(jī)二級Access上機(jī)考前指導(dǎo)
經(jīng)典代碼解析4.1:使用ADO整合Excel與Access
Excel表格導(dǎo)入到Access,對雙方格式設(shè)置有何要求?
Access數(shù)據(jù)庫應(yīng)用基礎(chǔ)教程(第三版)習(xí)題及答案
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服