注冊 登錄
Office中國論壇/Access中國論壇 返回首頁

roych的個人空間 http://ctxi.cn/?179386 [收藏] [復(fù)制] [分享] [RSS]

日志

不要在一棵樹上吊死——再談Access

熱度 11已有 4389 次閱讀2011-6-19 12:21 |個人分類:隨便說說

       在Access的學(xué)習(xí)過程中,如果你開始接觸代碼了,會發(fā)現(xiàn)這是一個神秘而又神奇的國度,在代碼的世界里,幾乎無所不能。于是很多朋友開始膜拜起來了,覺得什么都可以用代碼來實現(xiàn)。
       確實,代碼可以實現(xiàn)的功能很多,而且個性化很強。但是,我還想說,這種想法是錯誤的。
       其實,這種想法在我很多帖子里都有提到,普通情況下可以完成的不必編寫代碼。例如代碼可以創(chuàng)建表、創(chuàng)建查詢,但是難道我們不可以直觀地在相應(yīng)的界面來創(chuàng)建嗎,為什么非要抽象地這樣創(chuàng)建呢?記得一個版友提及她的某個朋友,說查詢、關(guān)系都是用代碼創(chuàng)建的,我就納悶了,這到底是在炫耀編程能力呢,還是在表明對Access不熟悉呢。我想,如果窗體也可以通過代碼來創(chuàng)建,不知道ta是不是直接在模塊(Module)里處理。
        說到這里,不得不提的一點是,還經(jīng)?梢钥吹接腥藛枺@句查詢語句在VBE里怎么寫?一看,這些普通語句難道就不能在設(shè)計視圖里做嗎?為什么非要把它復(fù)雜化呢?如果出于安全的考慮,不希望用戶了解這些查詢而非要使用代碼,我可以肯定地說,你錯了,至少你的出發(fā)點是錯的。因為這樣一來,后臺維護就顯得很麻煩了,如果以后需要更新一些查詢的話(例如,用戶需要多增加某些字段),估計找代碼和調(diào)試時間絕對不會少。而且,并不見得這就是安全的。Access的安全性不算太高,這已是不爭的事實了,真要破解,未必是不可能的事情。如果出于安全的考慮,可以通過設(shè)置工作組對查詢編輯運行等權(quán)限進行重分配比這個來得更實際些。
       關(guān)于查詢語句,其實還有更多可以說的。例如,在ExcelHome里就常常見到一些人不希望多做幾個查詢,然后一路嵌套,最后把本可以做三四個查詢的做成一個查詢。這估計是被SQL Sever毒害過的后遺癥吧,Access里嵌套查詢不是不可以,但過多的嵌套會降低查詢效率。特別是使用In語句,往往比左聯(lián)接或者右聯(lián)接查詢的效率降低很多。在Access里,不要什么都希望一步到位。實際上,只要結(jié)果達到了,分幾步又如何呢?正所謂“不管黑貓白貓,捉到老鼠”就是好貓,說的就是這個道理。
       我想說的是,代碼只是一項工具,把結(jié)果處理好才是目的。對代碼研究深入固然是好事,但這也只是普通功能無法實現(xiàn),或者需要一些個性化的工作的情況下才使用的。一般來說,我是這樣建議的,正常情況能實現(xiàn)的(例如創(chuàng)建表和創(chuàng)建查詢),可以不用考慮代碼執(zhí)行,宏能實現(xiàn)的,也可以不必考慮。從代碼執(zhí)行的效率來看,宏的確比代碼慢零點幾秒,但是有這個必要嗎?在某個角度來看,宏也應(yīng)該算是代碼了吧?至少可以執(zhí)行很多命令。
       前面說了,“一步到位”是很多朋友的一個夢想,甚至成為思維慣性。例如,希望在Access里執(zhí)行Excel函數(shù)求結(jié)果。用代碼來實現(xiàn),這當然不是不可能的事情。但是有這個必要嗎?在Excel里處理完畢再導(dǎo)入追加上去就不行嗎?的確,這看起來不方便,但是實際呢?如果有這空閑功夫去調(diào)試代碼,我在Excel里用公式很可能早就完成了,孰優(yōu)孰劣,這不用我多說了吧?

剛表態(tài)過的朋友 (0 人)

發(fā)表評論 評論 (9 個評論)

回復(fù) 輕風 2011-6-20 22:54
期待下文
回復(fù) caoguangyao 2011-6-21 12:31
說的有道理,花一分錢,辦十分的事,不管理用什么方法,只要能達到效果和目的就行。。。
是用代碼?用向?qū)?那只是手段,各人所?br /> 前段時間,客戶下了個任務(wù),一個.MDB文件,里面有上百張表,每張表字段數(shù)量有上百個,大部分是數(shù)值型的,其它類型的(日期和文本),只作聯(lián)接用或條件,根據(jù)配置表信息,要求有選擇(每張表的部分字段)地(50張表,每十張表為一生成表查詢)生成五張大表,如果修改配置表信息,組合表的數(shù)量和字段數(shù)量也有變化,有兩個方法:手動和代碼,手動工作量大,只能用一次,只好用代碼,創(chuàng)建生成查詢,通用性好。。。
回復(fù) nxjswt 2011-9-22 14:21
很好,用ACCESS的所有能簡潔的功能
回復(fù) 陽城 2012-2-13 16:18
大俠 就是大俠。!
回復(fù) renyucai1963 2012-7-22 13:13
  
過猶不及,用中為好。
回復(fù) renyucai1963 2012-7-22 13:16
前面說了,“一步到位”是很多朋友的一個夢想,甚至成為思維慣性。例如,希望在Access里執(zhí)行Excel函數(shù)求結(jié)果。用代碼來實現(xiàn),這當然不是不可能的事情。但是有這個必要嗎?在Excel里處理完畢再導(dǎo)入追加上去就不行嗎?的確,這看起來不方便,但是實際呢?如果有這空閑功夫去調(diào)試代碼,我在Excel里用公式很可能早就完成了,孰優(yōu)孰劣,這不用我多說了吧
版主精辟的見解!頂。
回復(fù) renyucai1963 2012-7-22 13:17
  
取長補短,相互轉(zhuǎn)換。
回復(fù) \~暀倳洳煙 2014-12-22 21:38
同意,以前剛接觸ACCESS的時候,完全是不懂代碼,也解決了不少看起來不可能的問題。
回復(fù) WFH6898 2015-11-29 09:39
很好,用ACCESS的所有能簡潔的功能

facelist doodle 涂鴉板

您需要登錄后才可以評論 登錄 | 注冊

QQ|站長郵箱|小黑屋|手機版|Office中國/Access中國 ( 粵ICP備10043721號-1 )  

GMT+8, 2024-10-23 06:17 , Processed in 0.091808 second(s), 18 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

返回頂部