Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: datekk am April 17, 2020, 12:13:23

Titel: Aktualisierbare verknüpfte Tabelle aus SQL Server via VBA
Beitrag von: datekk am April 17, 2020, 12:13:23
Hi,

mit folgendem Code erstelle ich eine Pass-Though / verknüpfte Tabelle in meiner Access Datenbank, um diese Tabelle dann z.B. an ein Formular zu koppeln (me.recordsource = DAOPassThroug(me.name, sql))



Public Function DAOPassThroug(Formularname As String, SqlCommand As String) As String

    Dim db As DAO.Database
    Dim qdf As DAO.QueryDef
    Dim sql As String
    Dim strQueryName As String
   
    Const strPrefix As String = "tempQuery"
   
    strQueryName = strPrefix & Formularname
   
    Set db = CurrentDb
    On Error Resume Next
    db.QueryDefs.Delete strQueryName
    On Error GoTo 0
    Set qdf = db.CreateQueryDef(strQueryName)
    With qdf
        .Connect = p_ODBCVerbZV
        .sql = SqlCommand
       
    End With
   
    Set db = Nothing
    DAOPassThroug = strQueryName

End Function


Das klappt auch ganz gut, jedoch ist die Tabelle nicht aktualisierbar. Kann mir jemand sagen, wie ich diese aktualisierbar bekomme? Mir ist auch aufgefallen, dass die Tabelle damit als Abfrage und nicht als Tabelle eingebunden wird.
Titel: Re: Aktualisierbare verknüpfte Tabelle aus SQL Server via VBA
Beitrag von: datekk am April 17, 2020, 12:41:10
...Uppps.. Fehler jetzt doch selbst erkannt. Da ich hier nicht löschen kann, hier die Lösung:

Habe die Tabelle als Abfrage eingebunden und nicht als Tabelle. Mit diesem Code klappt es dann auch:


Public Function VerknüpfteTabelle(Tabellenname As String) As String

    Dim db As DAO.Database
    Dim tdf As DAO.TableDef
    Dim sql As String
    Dim strQueryName As String
   

    Set db = CurrentDb
   
    Set tdf = db.CreateTableDef(Tabellenname, 0, Tabellenname)
    tdf.Connect = p_ODBCVerbZV
    db.TableDefs.Append tdf
   
    Set db = Nothing
    VerknüpfteTabelle = Tabellenname
   

End Function