Hallo,
ich möchte eine gespeicherte Prozedur auf dem SQL Server ausführen. Diese funktioniert auch auf dem SQL Server.
Der Code ist
Function DaoPassThroughExecute()
Dim db As DAO.Database
Dim qd As DAO.QueryDef
Dim strSqlExpr As String
Dim strConnection As Variant
Set db = CurrentDb
Set qd = db.CreateQueryDef("")
' als Pass-Through
strSqlExpr = "EXEC dbo.SP_NewTabelle"
strConnection = "[odbc;DSN=VIS_V10]"
With qd
.Connect = strConnection
.ReturnsRecords = False
.SQL = strSqlExpr
End With
' Pass-Through ausführen
qd.Execute dbSQLPassThrough
Set qd = Nothing
Set db = Nothing
End Function
Nach dem Ausführen bekomme ich den Laufzeitfehler 3305: Ungültige Verbindungszeichenfolge in Pass-Through-Abfrage.
Was mache ich falsch? Mache jetzt schon den ganzen Tag damit rum und langsam verzweifel ich.
Bin dankbar für jeden Tipp oder Lösungsvorschlag!
Gruß
Tom
Und das heißt auch NewTabelle,
nicht NewTable
oder
NeueTabelle ????
Aber egal, anderes Forum sagt, sobald Du es nicht mehr als Passthrough ausführen willst, also auf dem lokalen Rechner, musst Du returnsrecords auf true setzen.
Zitat von: 69bruno am Mai 22, 2013, 16:27:49
Und das heißt auch NewTabelle,
nicht NewTable
oder
NeueTabelle ????
Aber egal, anderes Forum sagt, sobald Du es nicht mehr als Passthrough ausführen willst, also auf dem lokalen Rechner, musst Du returnsrecords auf true setzen.
Ja, NewTabelle :-) Zu Testzwecken -> Quick and dirty. Wird geändert wenn es läuft
Probier ich morgen gleich aus. Hoffe das klappt...
Thx
Zitat von: 69bruno am Mai 22, 2013, 16:27:49
Aber egal, anderes Forum sagt, sobald Du es nicht mehr als Passthrough ausführen willst, also auf dem lokalen Rechner, musst Du returnsrecords auf true setzen.
Ergänzung: Also ich möchte die Prozedur schon auf dem SQL Server ausführen und nicht bei mir auf dem Rechner. Die gespeicherte Prozedur erstellt eine neue Tabelle auf dem SQL Server.
Immer noch der gleiche Fehler...
Hat jmd ne Idee?
Zitat von: TomTom2903 am Mai 22, 2013, 16:08:47strSqlExpr = "EXEC dbo.SP_NewTabelle"
strConnection = "[odbc;DSN=VIS_V10]"
Mich macht das odbc stutzig. Eine stored procedure läuft in der Datenbankinstanz auf dem Server und obdc ist ein Protokoll zur Verbindung zwischen Datenbank und Client-Rechner.
so hab es hinbekommen.
Code:
Function DaoPassThroughExecute()
Dim qd As DAO.QueryDef
Set qd = CurrentDb.QueryDefs("Abfrage1")
'Verbindung Pass-Through zu SQL-Server
qd.Connect = "ODBC;DSN=VIS_V10" ';DATABASE=VIS_V10;Trusted_Connection=YES"
'Gitb Pass-Through Rückgabewert
qd.ReturnsRecords = False
'Pass-Through ausführen
DoCmd.OpenQuery "Abfrage1"
Set qd = Nothing
End Function
Auf dem SQL Server mussten nachdem die Abfrage läuft noch die Berechtigungen angepasst werden.
Thx @all!
Grüße
Tom