24

Using VBA with Access 2010, I have a sub:

Public Sub setInterest(account As String, dmonth As Integer)
    ...somecode...
End Sub

And I am calling it with

setInterest("myAccount",3)

And I get syntax errors.
Modifying the sub to only take one argument and leaving out the 3 gives no errors, the problem is only when I have 2 arguments.

shA.t
  • 16,580
  • 5
  • 54
  • 111
user1302398
  • 253
  • 1
  • 3
  • 7
  • 1
    duplicate of [Calling a Sub in VBA](http://stackoverflow.com/questions/7715044/calling-a-sub-in-vba)... and many others. This issue has been answered multiple times already. – Jean-François Corbett Apr 14 '12 at 11:41

2 Answers2

58

When using multiple arguments, you can either write:

 setInterest "myAccount", 3

Or

 Call setInterest("myAccount", 3)

In both examples you can name the arguments:

setInterest account:="myAccount", dmonth:= 3
assylias
  • 321,522
  • 82
  • 660
  • 783
2

I add this answer, for Why your syntax works with one argument ?

Public Sub setInterest(account As String)
    '...somecode...
End Sub

setInterest ("myAccount")

Note :
When there is not any , between ( and ), VBA thinks it's a formula and exactly one argument.

When formula calculate the result will be like this:

Dim str As String
str = ("TEST")
Debug.Print str

[Output:]
TEST
shA.t
  • 16,580
  • 5
  • 54
  • 111