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.
...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