Wie die Rückgabe von Werten aus einer Gespeicherten Prozedur von SQL Server und Nutzen Sie in Access VBA
Ich habe eine Gespeicherte Prozedur in SQL Server, funktioniert gut. Jetzt kann ich es aufrufen aus VBA, aber wollen, um einen Wert zurückzugeben, um zu wissen, ob es irgendwelche Fehler etc. Der Letzte parameter bei meinem SP ist als AUSGABE:
@DataSetID int = 0,
@Destination char(1)='-',
@errStatusOK bit OUTPUT
Meine VBA-Aufruf der SP ist unten, aber es wird nicht funktionieren, jetzt, nach dem hinzufügen der neuen parameter, und ich bin mir nicht sicher, wohin ich gehe falsch, ich bekomme 3708 - Parameter object is improperly defined. Inconsistent or incomplete information was provided.
:
Set cnn = New adodb.Connection
cnn.ConnectionString =
"DRIVER=SQL Server;SERVER=SERVER\SERVER;DATABASE=a_db;Trusted_Connection=Yes"
cnn.Open cnn.ConnectionString
Set cmd = New adodb.Command
cmd.ActiveConnection = cnn
cmd.CommandType = adCmdStoredProc
cmd.CommandText = "stprMoveDataSet"
Set param = cmd.CreateParameter
("@DataSetID", adInteger, adParamInput, , stDataSet)
cmd.Parameters.Append param
Set param = cmd.CreateParameter
("@Destination", adChar, adParamInput, 1, stDestination)
cmd.Parameters.Append param
Set param = cmd.CreateParameter
("@errStatusOK", adBit, adParamReturnValue)
cmd.Parameters.Append param
rs.CursorType = adOpenStatic
rs.CursorLocation = adUseClient
rs.LockType = adLockOptimistic
rs.Open cmd
Wie bekomme ich die vba arbeiten mit der OUTPUT-parameter und stellen Sie den return-Wert 'lesbar' durch die vba.
BEARBEITEN - ich habe mich verändert um die Frage, insbesondere über die Rückgabe der Werte und nicht nur über die Verwendung von OUTPUT-Parametern.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Mehrere Wege möglich sind, um Werte mit Hilfe von VBA.
Mein code zeigt alle vier. Hier ist eine gespeicherte Prozedur, die einen Wert zurückgibt:
Hier ist die sub, die ich in Excel VBA. Sie benötigen Verweis auf Microsoft ActiveX Data Objects 2.8 Library.
Ich würde zunächst sah OUTPUT-Parameter, konnte aber nicht herausfinden, wie man Sie zurück zu Access (VBA), um dann feedback für den Benutzer. Ein Kollege schlug ein WÄHLEN Sie in der Gespeicherten Prozedur und diese zu nutzen.
GESPEICHERTE PROZEDUR:
Hinzugefügt die folgenden am Ende:
VBA:
Dieser gibt die folliwing:
Operation appears to have failed, check the DataSets Listing...
Also, the Server returned the following information: [| errStatusOK /False || countCurrent /0 || countHistorical /10 |]
Unter die anderen parameter, Aufzählungen, von denen die "adParamInput" genommen wird, ein anderes ist "adParamOutput", die an einen out-parameter einer gespeicherten Prozedur, und "adParamInputOutput" für einen parameter, der geht "beide Richtungen", wie Sie es waren. In deinem Fall glaube ich, dass "adParamOutput" angemessen wäre. Ich hoffe, das ist das, was du bist suchen für.