none
Error 3146 beim Aufruf einer stored Procedure von ACcess aus

    Frage

  • Ich rufe mit folgendem Code eine stored Prozedur auf dem SQL-Server auf.

    Der Code nimmt ausgehend von den Parametern eine Datei, fügt sie einer FILESTREAMTABLE hinzu und löscht die QUelldatei.

    EInige ZUsatzschritte, dei den ABlauf dokumentieren sind auch noch dabei.

    Sub DokAnfuegen(Fallnr As Long, filename As String, srcfile As String, subject As String)
        Dim db As DAO.Database
        Dim DokAnfuegen As DAO.QueryDef
        Dim sqlstr As String
        
        Set db = CurrentDb
        Set DokAnfuegen = db.CreateQueryDef("")
            
        sqlstr = "EXEC dbo.DokumentERfassen " & Fallnr & "," & _
                    "'" & filename & "', '" & _
                    srcfile & "', " & _
                    "'" & subject & "'"
        Debug.Print "DokAnfuegen sqlstr=  "; sqlstr
            With DokAnfuegen
                .Connect = "ODBC;DRIVER=SQL Server;SERVER=GALILEO2010;DATABASE=Gutachten;Trusted_Connection=yes"
                .SQL = sqlstr
                .ReturnsRecords = False
                .Parameters.Refresh
                
                Debug.Print .Parameters(1).Name
                .Execute
            End With
    
    End Sub
    

    Der zusammengebaute sqlstr funktioniert (und damit die Prozedur), wenn ich ihn im SQL Management Studio separat ausführen lasse.

    Dennoch kommt im VBA-Code bei .Execute der Fehler 3146. Auch die Zeile mit Ausdurck des ersten Parameternamens schlägt fehl.

    Ich schätze, da ist ein grundlegender Fehler schon beim Connect zur Datenbank.

    Dienstag, 21. Oktober 2014 18:00

Antworten

Alle Antworten