I have a function in VB6 where I am trying to return a string from the function
So here is a code snippet. The error I am getting is "Function call on left side of assignment must return Variant or Object". I changed the function return to a variant data type, but that did not help.
I am trying to generate a random string using function calls. Because it is a large number of sub tables I want to maintain the tables separated like so instead of in a single long series of code for ease of maintainability.
If this is not viable, can anyone suggest an alternative method of doing this?
Private Function GenAstStrategicResouce() As Variant
Dim X As Integer
X = Int((200 * Rnd) + 1)
If X < 10 Then
GenStrategicResouce = "Bose-Einstein Condensates"
ElseIf X < 20 Then
GenStrategicResouce = "Diamonds"
End If
End Function
Re: I have a function in VB6 where I am trying to return a string from the function
Code:
Private Function GenAstStrategicResouce() As Variant
Dim X As Integer
X = Int((200 * Rnd) + 1)
If X < 10 Then
GenStrategicResouce = "Bose-Einstein Condensates"
ElseIf X < 20 Then
GenStrategicResouce = "Diamonds"
End If
End Function
See bolded. Your names are mismatched, the variable name needs to match the function name.
Re: I have a function in VB6 where I am trying to return a string from the function
Also if you want to return a string you should probably change Variant to String on that first line.
A side from that is the intention not to return anything 90% of the time? If not then you may want to look at the logic a bit.
Re: I have a function in VB6 where I am trying to return a string from the function
Yes, just to follow-up on Data's comment, if X >= 20 then you'll return an Empty type Variant. And it's not at all clear that that's what you'd want. If the function were declared as a String, then you'd return a zero-length-string. Or, another alternative is to add an Else with a GenAstStrategicResouce = vbNullString statement in it.
And, as Option stated, fix your name-mis-matches.
Good Luck,
Elroy