Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Argumentübergabe und Rückgabe eine gespeicherten Prozedur

Frage Microsoft

Mitglied: PCFJKG

PCFJKG (Level 1) - Jetzt verbinden

27.10.2008, aktualisiert 11:40 Uhr, 9138 Aufrufe, 2 Kommentare

MS-Access 2000, MS SQL-SERVER 2000, VBA ruft mittels *.adp eine gespeicherte Prozedur.
Fehler: Zu viele Argumente übergeben.

Ein *.adp Projekt unter MS-Access 2000 ruft eine gespeicherte Prozedur auf einem MS-SQL 2000 Server auf. (Das Textfeld eines Übungsformulars: hier TF_Param soll nur zum Testen der Übergabe verschiedener Werte dienen.)
I
Private Sub TF_Param_AfterUpdate()

Dim Param As ADODB.Parameter
Dim Com As ADODB.Command
'Neues Befehlsobjekt erstellen
Set Com = New ADODB.Command

'Eingabeparameter erstellen
Set Param = Com.CreateParameter("LB", adVarChar, adParamInput, 4)
Param.Value = Me.TF_Param.Value
Com.Parameters.Append Param

'Rückgabeparameter erstellen
Set Param = Com.CreateParameter("Return", adVarChar, adParamReturnValue, 20)
Com.Parameters.Append Param

Com.CommandType = adCmdStoredProc
Com.CommandText = "Meine_Procedure"

'Auslösen
Com.ActiveConnection = CurrentProject.Connection
Com.Execute

'Ergebnisse anzeigen
MsgBox Com.Parameters(0).Value & " " & Com.Parameters(1).Value
end sub

Die TestProzedur lautet:

CREATE Procedure Meine_Procedure
(
@LB varchar(4)
)
As
SET nocount on
DECLARE @rückgabe char(2)
Set @rückgabe = 'xx'
RETURN @rückgabe

Fehlermeldung: Für die Prozedur ' Meine_Procedure' wurden zu viele Argumente angegeben.
Wenn ich den Rückgabeparameter nicht erstelle, gibt es keine Fehlermeldung. Ich kann so aber nicht testen, ob die Übergabe der Werte und die Rückgabe sauber funktioniert.
Kennt jemand eine Lösung ?
Mitglied: Logan000
27.10.2008 um 09:41 Uhr
Moin Moin

Meine Kenntnisse in VBA und SoreProc Programmierung sind zwar schon etwas eingerostet, aber so wie ich das sehe verwechselst du Rockgabecode und Rückgabeparameter.

Der Rückgabecode ist immer INT und wird mit RETURN gesetzt wie in deinem Bsp.
Rückgabeparameter mussen in der StoreProc deklariert werden, z.B.

01.
CREATE Procedure Meine_Procedure( 
02.
@LB varchar(4), 
03.
@Ret varchar(4) OUTPUT ) 
04.
As 
05.
SET nocount on 
06.
Set @Ret= 'xx'
Gruß L.
Bitte warten ..
Mitglied: PCFJKG
27.10.2008 um 11:40 Uhr
Hallo Logan000,

genau das war es (Nix mit eingerostet: war genau richtig, schnell, effektiv und hat geholfen).

Vielen Dank, PCFJKG
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (14)

Frage von liquidbase zum Thema Windows Update ...

DSL, VDSL
Problem mit variernder Internetgeschwindigkeit (12)

Frage von schaurian zum Thema DSL, VDSL ...