下面是俺的一些經(jīng)驗(yàn)和體會(huì),在平時(shí)設(shè)計(jì)時(shí)請(qǐng)避免以下提到的問(wèn)題
一、庫(kù)項(xiàng)目(表、窗體、控件等)名稱(chēng)中帶有空格、引號(hào)、點(diǎn)號(hào)之類(lèi)的特殊符號(hào)或是純數(shù)字(當(dāng)你想把字符格開(kāi),的辦法是用_格開(kāi))
注:用MS的向?qū)ё龃绑w,特別是子窗體時(shí),容易出有空格的窗體名,這時(shí)應(yīng)該手動(dòng)改過(guò)來(lái)
造成結(jié)果是在VBA、函數(shù)、查詢(xún)中引用該控件時(shí)極易出錯(cuò)
特別是把控件寫(xiě)成純數(shù)字的,你會(huì)發(fā)現(xiàn)在VBA中更本不能用。
另外如果有字段是數(shù)字加字母的,在查詢(xún)中用[]括起來(lái),不然有可能出錯(cuò)
二、控件名和字段名同名引起這個(gè)的原因是用向?qū)纱绑w或報(bào)表時(shí),MS自動(dòng)用字段名做為顯示其內(nèi)容的控件名(這個(gè)MS真是誤人?。。?BR> 造成結(jié)果是引用混淆,搞不清楚是在引用控件,還是引用字段,從而發(fā)生錯(cuò)誤。
三、表中定義數(shù)據(jù)不符合實(shí)際類(lèi)型,如把應(yīng)該是數(shù)字型的字段定義成文本字段
四、不顯示定義變量
例如 你沒(méi)定義 StrA 這個(gè)變量是文本變量(dim Stra as String)就直接用 Stra="你好" 這樣的語(yǔ)句來(lái)給stra變量賦值的解決辦法是 在代碼編輯窗體中的工具菜單-選項(xiàng)-編輯器,把要求變量聲明勾上
造成結(jié)果是 這時(shí)Stra 被系統(tǒng)定義成Variant類(lèi)型,而這個(gè)類(lèi)型是很占系統(tǒng)資源的,另外還容易造成變量類(lèi)型混淆
五、用Excel習(xí)慣來(lái)設(shè)計(jì)access表
如下面
數(shù)量 項(xiàng)目A 項(xiàng)目B 日期
應(yīng)該改成數(shù)量 項(xiàng)目類(lèi)型 日期
六、把可以用查詢(xún)得到的數(shù)據(jù)放在原表中
如
姓名 出生日期 年齡
這個(gè)年齡字段完全可以不要
在你需要用年齡的時(shí)候可以用 當(dāng)前日期-出生日期 得到
七、在查詢(xún)中 當(dāng)比較數(shù)據(jù)或限定條件時(shí) 對(duì)相應(yīng)的格式?jīng)]有采取格式化操作如 where 姓名=張三 在這里姓名是文本格式的字段 應(yīng)該改成 where 姓名="張三" where 日期=2005-1-1 在這里日期是日期格式的字段,改成 where 日期=#2005-1-1#
這樣就不會(huì)出現(xiàn)一些關(guān)于數(shù)據(jù)不匹配的錯(cuò)誤了
八、設(shè)計(jì)需要連續(xù)編號(hào)字段時(shí)采用自動(dòng)編號(hào),自動(dòng)編號(hào)這種格式當(dāng)你刪除了一條記錄后,他并不會(huì)對(duì)編號(hào)進(jìn)行重排
一、庫(kù)項(xiàng)目(表、窗體、控件等)名稱(chēng)中帶有空格、引號(hào)、點(diǎn)號(hào)之類(lèi)的特殊符號(hào)或是純數(shù)字(當(dāng)你想把字符格開(kāi),的辦法是用_格開(kāi))
注:用MS的向?qū)ё龃绑w,特別是子窗體時(shí),容易出有空格的窗體名,這時(shí)應(yīng)該手動(dòng)改過(guò)來(lái)
造成結(jié)果是在VBA、函數(shù)、查詢(xún)中引用該控件時(shí)極易出錯(cuò)
特別是把控件寫(xiě)成純數(shù)字的,你會(huì)發(fā)現(xiàn)在VBA中更本不能用。
另外如果有字段是數(shù)字加字母的,在查詢(xún)中用[]括起來(lái),不然有可能出錯(cuò)
二、控件名和字段名同名引起這個(gè)的原因是用向?qū)纱绑w或報(bào)表時(shí),MS自動(dòng)用字段名做為顯示其內(nèi)容的控件名(這個(gè)MS真是誤人?。。?BR> 造成結(jié)果是引用混淆,搞不清楚是在引用控件,還是引用字段,從而發(fā)生錯(cuò)誤。
三、表中定義數(shù)據(jù)不符合實(shí)際類(lèi)型,如把應(yīng)該是數(shù)字型的字段定義成文本字段
四、不顯示定義變量
例如 你沒(méi)定義 StrA 這個(gè)變量是文本變量(dim Stra as String)就直接用 Stra="你好" 這樣的語(yǔ)句來(lái)給stra變量賦值的解決辦法是 在代碼編輯窗體中的工具菜單-選項(xiàng)-編輯器,把要求變量聲明勾上
造成結(jié)果是 這時(shí)Stra 被系統(tǒng)定義成Variant類(lèi)型,而這個(gè)類(lèi)型是很占系統(tǒng)資源的,另外還容易造成變量類(lèi)型混淆
五、用Excel習(xí)慣來(lái)設(shè)計(jì)access表
如下面
數(shù)量 項(xiàng)目A 項(xiàng)目B 日期
應(yīng)該改成數(shù)量 項(xiàng)目類(lèi)型 日期
六、把可以用查詢(xún)得到的數(shù)據(jù)放在原表中
如
姓名 出生日期 年齡
這個(gè)年齡字段完全可以不要
在你需要用年齡的時(shí)候可以用 當(dāng)前日期-出生日期 得到
七、在查詢(xún)中 當(dāng)比較數(shù)據(jù)或限定條件時(shí) 對(duì)相應(yīng)的格式?jīng)]有采取格式化操作如 where 姓名=張三 在這里姓名是文本格式的字段 應(yīng)該改成 where 姓名="張三" where 日期=2005-1-1 在這里日期是日期格式的字段,改成 where 日期=#2005-1-1#
這樣就不會(huì)出現(xiàn)一些關(guān)于數(shù)據(jù)不匹配的錯(cuò)誤了
八、設(shè)計(jì)需要連續(xù)編號(hào)字段時(shí)采用自動(dòng)編號(hào),自動(dòng)編號(hào)這種格式當(dāng)你刪除了一條記錄后,他并不會(huì)對(duì)編號(hào)進(jìn)行重排