1. Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm
    Information ausblenden

PassThrough per VBA erstellen: 3131 Syntaxfehler in FROM-Klausel

Dieses Thema im Forum "Microsoft Access" wurde erstellt von grünkohl, 20 März 2019.

  1. grünkohl

    grünkohl Benutzer

    Hallo Experten,

    nutze eine bewährte Funktion, die PT-Abfragen auf SQL-Server erstellt.
    Habe nun eine neue Tabellenwertfunktion auf dem SQL-Server erstellt, auf die ich über PT zugreifen möchte.
    Die Fuktion bringt oben stehende Fehlermeldung.
    Verwende ich eine einfache Select-Anweisung, wird die PT erstellt.
    Setzte ich das Select-Statement in die so erzeugte PT ein, wird es ausgeführt.
    Wo könnte der Fehler liegen?

    Vielen Dank im voraus für jeden Tipp
    Matze

    -------------------------------------------------------------

    select Datum,Nr,GP,Artikel,Charge from dbo.ELF_AnhangBeleg ('WEEK','20190319','20190320','HW') order by op desc

    -------------------------------------------------------------
    Public Function makePT(ByVal sql As String, Optional ptname As String = "P_PT", Optional SQLSVR As String = "Standard", Optional timeout = 90)

    On Error GoTo Err

    Dim DB As DAO.Database
    Dim qdf As QueryDef

    start:
    Set DB = CurrentDb

    On Error Resume Next
    DB.QueryDefs.Refresh
    DB.QueryDefs.Delete ptname
    DB.QueryDefs.Refresh
    On Error GoTo Err

    Set qdf = DB.CreateQueryDef()
    With qdf
    .Name = ptname
    .connect = getConSQL(True, SQLSVR)
    .ODBCTimeout = timeout
    .sql = KillTheBlanks(Nz(sql, ""))
    End With

    DB.QueryDefs.Append qdf


    Ende:
    Set qdf = Nothing
    Set DB = Nothing
    Exit Function

    Err:
    Select Case Err
    Case Else
    DoCmd.Hourglass False
    MsgBox Err.Number & ": " & Err.Description, vbCritical
    Resume Ende
    End Select


    End Function
     
  2. ukulele

    ukulele Datenbank-Guru

    Nunja die SQL Syntax sieht falsch aus. Ich vermute dbo.ELF_AnhangBeleg ('WEEK','20190319','20190320','HW') ist dein Funktionsaufruf und keine Tabelle, daher wäre FROM hier falsch. Es müsste dann einfach nur SELECT dbo.ELF_AnhangBeleg ('WEEK','20190319','20190320','HW') AS spalte heißen.
     
  3. grünkohl

    grünkohl Benutzer

    Guten Morgen,
    danke für den Hinweis, aber es handelt sich um eine Tabellenwert-Funktion. Für eine Skalar-Funktion wäre das FROM natürlich falsch. Das Statement funktioniert.
    Hatte nicht erwähnt, dass die Datenbank "neu" ist.
    Es scheint wohl etwas mit den Berechtigungen des Benutzers oder anderer Einstellungen zu tun zu haben. Wenn ich nämlich über eine andere DB auf dem Server auf diese Datenbank zugreife, funktionert ist.
    Grüße
    Matze
     
  4. ukulele

    ukulele Datenbank-Guru

    Dann muss ich leider passen, kenne mich mit VBA nicht aus. Eigentlich müsste der ja alles direkt gegen die DB ausführen, somit sollte auch ein Funktionaufruf kein Problem sein. Irgendwer ist aber wohl der Meinung die Syntax sei falsch, ein DB Server würde das nicht sagen wenn es an den Rechten läge.
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden