Function returning null value instead of string value

S

shivboy

Hi,

I have a combo box with some values in it. Now, I want to make a
function wherein I pass the value of the combo box as a string
parameter and return a specific string value corresponding to the
string parameter passed. I am able to pass the parametric value, but
the value returned is "blank" or "null" instead of the string value
that the function should be returning. Why is this happening? Below is
the code that I am using for the function and how I am passing the
value into it. Please help.


Code:
--------------------

Function convertDiv(oDiv As String) As String
Dim wDiv, oDivID As String
wDiv = oDiv
If wDiv = "A" Then
oDivID = "1"
ElseIf wDiv = "B" Then
oDivID = "2"
ElseIf wDiv = "C" Then
oDivID = "3"
ElseIf wDiv = "D" Then
oDivID = "4"
ElseIf wDiv = "E" Then
oDivID = "5"
ElseIf wDiv = "F" Then
oDivID = "6"
ElseIf wDiv = "G" Then
oDivID = "7"
End If
convertDiv = oDivID
End Sub

--------------------



Code:
--------------------

Sub init()
Dim a As String
a = convertDiv(Trim(combo1.Value))
lblType.Caption = a
End Sub

--------------------


Peace,

Shivboy
 
L

Leith Ross

Hello Shivboy

Try using a Select Case statement in place of the nested If ElseI
statements..

Code
-------------------

Function convertDiv(oDiv As String) As Strin
Dim wDiv, oDivID As Strin
wDiv = oDi
Select Case wDi
Case Is = "A"
oDivID = "1
Case Is = "B"
oDivID = "2
Case Is = "C"
oDivID = "3
Case Is = "D"
oDivID = "4
Case Is = "E"
oDivID = "5
Case Is = "F"
oDivID = "6
Case Is = "G"
oDivID = "7
End Selec
convertDiv = oDivI
End Functio

-------------------

This makes your code easier to read and troubleshoot. Nested I
statements can become a real headache quickly. Not sure if you rename
your ComboBox to Combo1, but if you didn't you need to change it i
your code to ComboBox1

Sincerely
Leith Ros
 
S

shivboy

Thanks Leith, it worked. Thanks a lot buddy.

Leith said:
Hello Shivboy,

Try using a Select Case statement in place of the nested If ElseIf
statements...
Code:
--------------------
Function convertDiv(oDiv As String) As String
Dim wDiv, oDivID As String
wDiv = oDiv
Select Case wDiv
Case Is = "A"
oDivID = "1"
Case Is = "B"
oDivID = "2"
Case Is = "C"
oDivID = "3"
Case Is = "D"
oDivID = "4"
Case Is = "E"
oDivID = "5"
Case Is = "F"
oDivID = "6"
Case Is = "G"
oDivID = "7"
End Select
convertDiv = oDivID
End Function
--------------------

This makes your code easier to read and troubleshoot. Nested If
statements can become a real headache quickly. Not sure if you
renamed your ComboBox to Combo1, but if you didn't you need to change
it in your code to ComboBox1.

Sincerely,
Leith Ross
 
D

Dana DeLouis

Hi. Here is the first and last line of your code...
Function convertDiv(oDiv As String) As String
End Sub

The last line should be "End Function"

Maybe another option?

Function ConvertDiv(oDiv As String) As String
If Len(oDiv) > 1 Then Exit Function
Select Case oDiv
Case "A" To "G"
ConvertDiv = Chr(Asc(oDiv) - 16)
End Select
End Function
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top