1、On Error 語句 (啟動一個錯誤處理程式並指定該子程式在一個過程中的位置;也可用來禁止一個錯誤處理程式。)
如果不使用 On Error 語句,則任何執行階段錯誤都是致命的;也就是說,結果會導致顯示錯誤資訊並中止運行。
注意 :一個錯誤處理程式不是 Sub過程或 Function過程。它是一段用列標籤或行號標記的代碼。
文法
On Error GoTo line
On Error Resume Next
On Error GoTo 0
On Error 語句的文法可以具有以下任何一種形式:
語句 描述
On Error GoTo line 啟動錯誤處理程式,且該常式從必要的 line 參數中指定的 line 開始。line 參數可以是任何列標籤或行號。如果發生一個執行階段錯誤,則控制項會跳到 line,啟用錯誤處理程式。指定的 line 必須在一個過程中,這個過程與 On Error 語句相同; 否則會發生編譯時間錯誤。
On Error Resume Next 說明當一個執行階段錯誤發生時,控制項轉到緊接著發生錯誤的語句之後的語句,並在此繼續運行。訪問對象時要使用這種形式而不使用 On Error GoTo。
On Error GoTo 0 禁止當前過程中任何已啟動的錯誤處理程式。
在執行個體1中,遇到的On Error GoTo 指程式運行出錯時跳轉(並能找出錯誤的類型和編號使人能方便地分析或可以使我們的程式更加的結構化出錯時進入專門的錯誤處理程式)
來源文件 <http://topic.csdn.net/t/20030330/12/1595069.html>
2、遊標的屬性
1、 AdOpenForwardOnly (預設值)一次只能向前移動一行。
2、 AdOpenKeyset 開啟鍵集類型遊標。
3、 AdOpenDynamic 開啟動態類型遊標
4、 AdOpenStatic 開啟靜態類型遊標。
具體的:AdOpenForwardOnly和AdOpenStatic這兩種遊標使得記錄集唯讀,它表示建立資料的一個快照。後者比前者靈活,因為它可以允許任意方向移動。
AdOpenKeyset允許任意移動,並且允許更改記錄集。其他使用者對記錄集的添加和刪除,這個遊標反映不出來。但它能反映出其他使用者對記錄集的更改。
AdOpenDynamic允許所有操作,其他使用者對記錄集的添加、刪除、更改在此記錄集中
都是可見的。
AdLockReadOnly (預設值)唯讀 --- 不能改變資料。
AdLockPessimistic 悲觀鎖(逐個)--- 為確保成功完成編輯記錄所需的工作,
在編輯時立即鎖定資料來源的記錄。
AdLockOptimistic 樂觀鎖(逐個)--- 只在調用Update 方法時才鎖定記錄。
AdLockBatchOptimistic 樂觀批更新---用於批更新模式(與立即更新模式相對)。
來源文件 <http://hi.baidu.com/jhpjszy/item/4f42e443a8966596833ae1d2>
3、DefinedSize與ActualSize的區別
DefinedSize 屬性會返回一個 long 值,該值指示一個欄位被定義的長度(位元組)。
ActualSize 屬性是一個唯讀屬性。它會返回一個 long 值,該值指示某個欄位的值的實際長度。如果 ADO 無法確定該 Field 對象的值的長度,則返回 adUnknown。
使用 DefinedSize 屬性可確定 Field 對象的資料容量,而 ActualSize 則表明其實際長度。
來源文件 <http://www.w3school.com.cn/ado/prop_field_size.asp>
4、什麼是欄位、記錄和值?
在資料庫中,對錶的行和列都有特殊的叫法,每一列叫做一個“欄位”。每個欄位包含某一專題的資訊。就像“通訊錄”資料庫中,“姓名”、“聯絡電話”這些都是表中所有行共有的屬性,所以把這些列稱為“姓名”欄位和“聯絡電話”欄位。
我們把表中的每一行叫做一個“記錄”,每一個記錄包含這行中的所有資訊,就像在通訊錄資料庫中某個人全部的資訊,但記錄在資料庫中並沒有專門的記錄名,常常用它所在的行數表示這是第幾個記錄。
在資料庫中存放在表行列交叉處的資料叫做“值”,它是資料庫中最基本的儲存單元,它的位置要由這個表中的記錄和欄位來定義。在通訊錄的表中就可以看到第一個記錄與“單位”欄位交叉處的值就是“中國人民銀行上海分行”。“王嵐”所在的記錄和“電話”的這個欄位交叉位置上的“值”就是“0551-7238321”。
來源文件 <http://zhidao.baidu.com/question/4332840.html>
舉例:
5、“objDataSource!使用者名稱=objRs!使用者名稱 ”???
在Visual Basic中,驚歎號“!”與圓點“.”都用於給對象命名,但兩者文法上卻存在很大的區別,這點在編程時尤其需要注意。
圓點操作符“.”用來表示對象的屬性和方法,在引用時,需要用到對象的Name、圓點和需要的屬性或方法。例如要引用文字框Textl中的文字屬性時可用reponse$=Text1.Text,再如要改變Form1表單返回或讀取對象高度的單位時用Form1.ScaleHeigh=2000表示。
驚嘆號“!”常用於當一個控制項作為一個特性訪問的情況下,例如引用Fomr2中Text1文字框文字屬性時,可採用response$=Form2!text1.text文法格式。
雖然兩者的文法應用結構有較大差異,但兩條語句的效能是相同的,值得注意的是如果你在驚嘆號“!”的位置使用“.”可以獲得對表單上Text1特性的直接存取權。
為了進一步增加感性認識,你不妨運行下面的例子來試試:
1.建立一個新項目,並在Form1表單中增加一個命令控制項。
2.雙擊Form1表單,編輯Form-Load事件並輸入:
Form1!Command1.Caption=”Text”
Form1.Command1.Caption=”It Works”
3.運行試項目,這時你就會在Command1命令框中看到字串It Works。
為了在程式中清楚地界定引用的控制項名和該控制項的屬性或方法,增加程式的可讀性,最好使用驚嘆號“!”,這也是VB的推薦方式。
來源文件 <http://www.accessoft.com/article-show.asp?id=1811>
6、0、""(空字串)、Null、Empty、與
Nothing 的區別
先回答以下問題吧! 經過以下的敘述之後, 變數 A、B、C、D 分別等於 0、""、Null、 Empty、 Nothing 的哪一個?
Dim A
Dim B As String
Dim C As Integer
Dim D As Object
A 等於 Empty, 因為尚未初始化的「不定型變數」都等於 Empty。但如果檢測 A = "" 或 A = 0, 也都可以得到 True 值。
B 等於 "", 因為尚未初始化的非固定長度「字串」都等於 "" 。 但請注意 B<> Null。
C 等於 0, 這個還有問題嗎?
D 等於 Nothing, 尚未設定有物件的「物件變數」都等於 Nothing, 但請不要使用 D = Nothing , 而要使用 D Is Nothing 來判斷 D 是否等於 Nothing, 因為判斷 是否相等的符號是 Is 不是 = 。
最令人迷惑的地方是 Null 這個保留字, 請看以下語句:
Print X = Null
Print X <> Null
結果都是輸出 Null(不是 True 也不是 False), 這是因為任何一個運算式只要含有 Null , 則該運算式就等於 Null, 實際上想要判斷某一資料是否為 Null 絕對不能使用:
If X = Null Then \' 永遠都會得到 Null
而要使用:
If IsNull(X) Then
哪一種資料會等於 Null 呢? 除了含有 Null 運算式之外, 就屬沒有輸入任何資料的「資料欄位」(在資料庫中) 會等於 Null。
來源文件 <http://www.accessoft.com/article-show.asp?id=1811>
7、使用對象編程
對象使用方法:
<1>、(引用)對象的聲明 dim 對象名 as new [庫名.]類名 (此時為載入,直到第一次使用時才真正的建立)
<2>、dim 物件變數名 = [庫名.]類名
set 物件變數名=new [庫名.]類名 (真正建立)
new ,建立一個新的執行個體,執行個體的引用賦給對象名,即就是新的執行個體的名字就是此對象名了
例:dim myform2 as form1
表明myform2的類型是Form1,此時myform2還是沒有對象與它相對應,再加上set myform2=new form1語句時,才與dim myform2 as new form1 一樣