在access中application對象有兩個未公開的方法,其中一個是Save As Text, 另一個是Load From Text。我記得是剛學Access不久,當時在研究FMS一個分析工具時,跟蹤發現它總會產生一些臨時文件,對這些臨時文件分析,發現它與VB裡的窗體文件差不多的格式,所以估計微軟可以將Access的窗體轉換為文本格式,並提供一種逆相轉換的方法。所以發現了深厚的興趣,後來就找到這兩個方法。
雖然微軟還有其它一些比較好用的未公開的屬性,但我在這兩個方法上花的時間還是最多的,因為它的確有使用價值,所以說說自己多年來的使用心得。
這兩個方法在以後的Access版本中並不一定支持,所以我並不建議大家使用,但因為有些功能如果使用它來實現,可以節省比較多的時間,所以,在某些情況下,我還是會使用它,至少現有的ACCESS版本都支持這個方法。如果同樣的功能你可以通過Access正常的方法來實現,我則建議你使用微軟公開的方法。切記!
用途1:
使用application.saveastext acForm,“我的窗體”,“c:test.txt”將整個窗體導出到一個文本文件,將其打包發送給朋友,讓朋友再使用application.loadfromtext acForm,“我的窗體”,“c:test.txt”再導回去。你可以壓縮打包傳送。
用途2:
可以將窗體保存到文本文件,然後把文本文件存儲到OLE字段裡,這樣整個窗體的界面與代碼都可保存到ACCESS數據表裡,這個方法對編寫 代碼庫管理器 非常有用。在使用時,還可即時將文本文件還原到一個窗體,讓使用者即時預覽到這個技巧產生的效果
用途3:
將窗體保存到一個文件文件,使用正則表達式對代碼進行分析,可以分析語法,代碼結構、語法錯誤、字數統計等等,你可參考一下FMS的一個Access分析工具,它有的功能,你花個半年,做出來應該也沒有大問題啦。記得讓我試用一下源碼哦:)
用途4:
真正的全局替換,一般我們需要全局替換窗體裡一個屬性的名稱或內容,需要逐個逐個修改,而無法實現像代碼中的全局替換,現在將窗體導出到文本文件,在文本文件裡進行全局替換,完成後再導回窗體。
用途5:
繁簡轉換,中英轉換,一般對控件標題、提示文字、默認值等進行文字上繁簡轉換後並不能真正實現繁簡轉換,在轉換後相應的環境中打開還會出現ACTIVEX控件找不到或者OLE錯誤,將窗體或其它對象轉換為文本文件後再進行繁簡轉換,然後再轉換相應的字符集、字體名稱、節的繁簡對應名稱、CRC校驗碼等之後,再導回Access相應對象,就可完成整個Access程序的轉換,相應的程序效果可參見我做的繁簡轉換通用程序,記住簡體一般是134繁體是136。
英文你打開就知了。我奉勸,如果你想做同樣的功能,那你最好就別做了,用我的就得了,免得斷我財路,我提成20%給你就得了,等兩年後積到100元我再一次匯給你:)
用途6:
中英轉換,雖然還需要進行少量手工轉換,但已經節省了不少時間,但如何使用正式表達式來正確區別哪些是標題、提示文字、消息框還需要一些技巧。
用途7:改變控件的默認屬性
除了我們在設計狀態修改控件的默認屬性之外,使用修改文本文件的內容也可達到修改控件默認屬性的效果,當窗體或報表導出到文本文件之後,所有的窗體、控件屬件以及默認控件屬性都在文本文件中體現出來,通過修改這個文本文件裡有關默認屬性的設置即可達到目的。
什麼是默認屬性?舉個例子,你從國外下載一個程序,為什麼往窗體裡面添加控件,控件字體總是Serif,而在簡體中文環境下新建的窗體控件,字體都是“宋體”,在繁體中文環境下新建的窗體控件,字體都是“新細明體”,就是因為這個控件的默認屬性導致的。