意思:
成都創(chuàng)新互聯(lián)公司是一家專注于網(wǎng)站設(shè)計制作、網(wǎng)站設(shè)計與策劃設(shè)計,南崗網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)十載,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:南崗等地區(qū)。南崗做網(wǎng)站價格咨詢:18980820575
第一個類型 :
傳遞參數(shù)未定義類型,假如參數(shù)在調(diào)用前未定義類型,系統(tǒng)自動將他定義為variant類型,由于和過程或函數(shù)中的對就參數(shù)類型不相同,所以提示”byref參數(shù)類型不符”
第二個類型 :
傳遞參數(shù)類型已定義,但由于定義方法不對,所以提示”byref參數(shù)類型不符”
2、出錯原因
在上機的時候出錯原因是因為第二個類型:傳遞參數(shù)類型已定義,但由于定義方法不對。
錯誤的定義:
Dim msgtext As Integer
正確的定義:
Dim msgtext As String
Dim txtSQL As Integer
Dim mrc As Integer
Dim mrc2 As Integer
擴展資料:
舉例:
傳遞參數(shù)類型已經(jīng)定義,但由于定義方法不對,所以提示"ByRef參數(shù)類型不符"。具體情況如下:
當(dāng)VB中如此定義變量時,將會出現(xiàn)以上錯誤信息的出現(xiàn)
Private Sub Command1_Click()
Dim i , j As Integer
i = 3
j = 4
Call get1(i, j)
Text1.Text = i
End Sub
Private Sub get1(ByRef para1 As Integer, para2 As Integer)
para1 = para1 + para2
End Sub
如果將 Dim i , j As Integer 改為
Dim i? As Integer
Dim i? As Integer
程序執(zhí)行正常。也就是說,第一種方法的變量定義,只是對 J 做了定義,并未對前面的 I 進(jìn)行定義
一般在過程和函數(shù)中定義參數(shù)時采用ByRef,則要求參數(shù)聲明的類型和實際參數(shù)的類型完全相同,否則VB就會報告錯誤。
在Visual Basic中,按地址傳遞方式通過關(guān)鍵字 ByRef來實現(xiàn)。也就是說,在定義通用過程時,如果形參前面有關(guān)鍵字ByRef,則該參數(shù)用按地址方式傳送。
按地址傳遞參數(shù)時,把實參變量的地址傳送給被調(diào)用過程,形參和實參共用內(nèi)存的同一地址。在被調(diào)用過程中,形參的值一旦改變,相應(yīng)實參的值也跟著改變。如果實參是一個常數(shù)或表達(dá)式,Visual Basic 6.0會按"傳值"方式來處理。
擴展資料:
與之相對應(yīng)的則為ByRef關(guān)鍵字。使用 ByRef 關(guān)鍵字時,參數(shù)的傳遞方式就是按地址傳遞。
需要注意:
1.按值傳遞方式只能用于外部向被調(diào)用過程內(nèi)部傳遞數(shù)據(jù)。
2.按地址傳遞方式可以實現(xiàn)數(shù)據(jù)的雙向傳遞。
參考資料來源:百度百科-ByVal
參考資料來源:百度百科-ByRef
按地址向子程序傳送參數(shù),當(dāng)子程序中改變發(fā)這個參數(shù)時,返回的參數(shù)隨之改變;
而ByVal是按數(shù)值傳送參數(shù),當(dāng)子程序中改變發(fā)這個參數(shù)時,返回的參數(shù)不改變。
VB的幫助中的詳細(xì)介紹。