関数から値を返す方法
コード
Private Function LeaveCheck(empid As String)
Dim rdoRs1 As rdoResultset
Dim desc As String
Dim sSQL As String
sSQL = "Select name from table1 wher empcode = '" & empid & "'"
Set rdoRs1 = Rdoconn.OpenResultset(sSQL, rdOpenStatic)
If rdoRs1.RowCount > 0 Then
desc = rdors1!name
return desc 'Showing error in this line
End If
rdoRs1.Close
End Function
上記のコードから値を返す方法。
Vb6コードのヘルプが必要
返品タイプを指定する必要があります。
Private Function LeaveCheck(empid As String) As String ' Notice the As String
Dim rdoRs1 As rdoResultset
Dim desc As String
Dim sSQL As String
sSQL = "Select name from table1 wher empcode = '" & empid & "'"
Set rdoRs1 = Rdoconn.OpenResultset(sSQL, rdOpenStatic)
If rdoRs1.RowCount > 0 Then
desc = rdors1!name
End If
rdoRs1.Close
LeaveCheck = desc ' This will be blank or populated
End Function
これは リンク です。これはVB6の関数を理解するための良い読み物です。
[〜#〜]編集[〜#〜]
コメントを読んだ後、値を格納するクラスを作成します。
Public Class MyClass
Dim name As String
Dim dept As String
Dim country As String
End Class
次に、コード内でこのクラスの新しいインスタンスをインスタンス化できます。
Private Function LeaveCheck(empid As String) As MyClass
Dim myClass As New MyClass
Dim rdoRs1 As rdoResultset
Dim sSQL As String
sSQL = "Select name, dept, country from table1 wher empcode = '" & empid & "'"
Set rdoRs1 = Rdoconn.OpenResultset(sSQL, rdOpenStatic)
If rdoRs1.RowCount > 0 Then
myClass.name = rdors1!name
myClass.dept = rdors1!dept
myClass.country = rdors1!country
End If
rdoRs1.Close
LeaveCheck = myClass
End Function
値を関数名と戻り値の型に設定する必要があります。
Private Function LeaveCheck(empid As String) As String
Dim rdoRs1 As rdoResultset
Dim desc As String
Dim sSQL As String
sSQL = "Select name from table1 wher empcode = '" & empid & "'"
Set rdoRs1 = Rdoconn.OpenResultset(sSQL, rdOpenStatic)
If rdoRs1.RowCount > 0 Then
desc = rdors1!name
End If
rdoRs1.Close
LeaveCheck = desc
End Function
詳細については、 このドキュメント を参照してください。
Function returnArray() As Variant
RTA[ab]=0
if a=b then RTA[ab]=1
RTA[xy]=0
if a=b then RTA[xy]=1
returnArray=RTA
end function