那就是说Sub只能是用它的方法,只有Function才能得到返回值?例如: Public Function ConnectionDB(strServerName As String, strDBName As String, strUserName As String, strPass As String) As Long 'strServerName---数据库服务器名 'strDBName---数据库名 'strUserName---登录用户名 'strPass---用户密码 Dim blnConnState As Boolean On Error GoTo errHandle Set cn = New ADODB.Connection cn.ConnectionTimeout = 5 cn.CursorLocation = adUseClient cn.Provider = "SQLOLEDB.1;Persist Security Info=False;Initial Catalog=" & strDBName & ";User Id=" & strUserName & ";Password=" & strPass & ";Data Source=" & strServerName cn.Open blnConnState = GetState(cn.State) If blnConnState Then ConnectionDB = 1 '连接成功 End If
Exit Function errHandle: Select Case Err.Number Case -2147467259 ConnectionDB = 0 '连接失败 Case -2147217843 ConnectionDB = 3 '非法用户 Case Else ConnectionDB = 100 End Select End Function 在其它地方引用可以使用 X=ConnectionDB(……),X会被付值是不是用Sub就不能用 X=ConnectionDB(……)这样的格式??
Sub(过程)不能返回处理结果
sub 没有!
Public Function ConnectionDB(strServerName As String, strDBName As String, strUserName As String, strPass As String) As Long
'strServerName---数据库服务器名
'strDBName---数据库名
'strUserName---登录用户名
'strPass---用户密码
Dim blnConnState As Boolean
On Error GoTo errHandle
Set cn = New ADODB.Connection
cn.ConnectionTimeout = 5
cn.CursorLocation = adUseClient
cn.Provider = "SQLOLEDB.1;Persist Security Info=False;Initial Catalog=" & strDBName & ";User Id=" & strUserName & ";Password=" & strPass & ";Data Source=" & strServerName
cn.Open
blnConnState = GetState(cn.State)
If blnConnState Then
ConnectionDB = 1 '连接成功
End If
Exit Function
errHandle:
Select Case Err.Number
Case -2147467259
ConnectionDB = 0 '连接失败
Case -2147217843
ConnectionDB = 3 '非法用户
Case Else
ConnectionDB = 100
End Select
End Function
在其它地方引用可以使用 X=ConnectionDB(……),X会被付值是不是用Sub就不能用 X=ConnectionDB(……)这样的格式??
Function x()
.....
end Function
用的是后可以直接写个
X
还可以用函数带返回值的形式
把一个变量的值改变
sub仅仅是个过程
Sub()不能带参数.没有返回值.
而
function 有返回值!
其他的好像没有什么!
望大虾们指教!