SO ungefähr hatte ich mir das gedacht:
db.executeSQL („exec
(’“&in1&"’,’"&in2&"’, ‚"&in3&"‘, :out1, :out2)")
erstens, was ist die fehlermeldung?
hast du es mal ohne das exec probiert, wenn du in einem pl-sql block eine stored procedure aufrufst, brauchst du es ja auch nicht…
bist du dir sicher, dass die lustige parameteruebergabe mit den & zeichen so stimmt?
koennte natuerlich sein, dass db.executeSQL genau dies bedeutet, naemlich sql und kein pl-sql…
Wenn Du mit ADO arbeitetest, dann mußt Du das Command-Object benutzen. Hier ein kleines Beispiel zum Aufruf einer Stored Procedure eines SQL-Server mit 2 Input und einer Outputvariable:
Private Sub Command1\_Click()
Dim adoCnn As New ADODB.Connection
Dim adoCmd As New ADODB.Command
adoCnn.Open "DSN=test"
With adoCmd
.ActiveConnection = adoCnn
.CommandType = adCmdStoredProc
.CommandText = "sp\_makefilename"
'input var
.Parameters(1).Value = "PRE"
.Parameters(2).Value = "BAK"
.Execute
'output var
Debug.Print .Parameters(3).Value
End With
Set adoCmd = Nothing
adoCnn.Close
Set adoCnn = Nothing
End Sub
Je nach Rückgabetyp kannst Du auch ein Recordset damit befüllen:
Set adoRecordSet = adoCommand.Execute
Oder auch jeden einzelnen Paramter über das Parameter-Object erstellen, anhängen etc. Sieh Dir die Details am besten in der MSDN an.