Programmatiske oprettede lænkede tabeller
Jeg har oprettet en database der lænker til tabeller på en SQL server.Disse styres fint via indstillinger i Access-databasen.
Men Jeg kan IKKE ændre data i de lænkede tabeller. jeg kan kun læse data, og det er skam også fint nok, men nogle data har behov for at blive ændret.
Den eneste måde hvorpå jeg kan få lov til at ændre i data er ved manuelt at oprette lænkerne i Access databasen.
Hvad gør jeg galt???
Metoden jeg har brugt til at vedligeholde lænkerne er fundet i utallige spørgsmål her på Eksperten så den virker rimeligt gennemtænkt....så hvad gør jeg galt?
Koden der opretter lænkerne til SQL databasen:
Function linkTables(strErrMSg As String) As Boolean
Dim strTblName As String
Dim strConn As String
Dim objDB As DAO.Database
Dim objRSSettings As DAO.Recordset
Dim objRSTables As DAO.Recordset
Dim objTbl As DAO.TableDef
On Error GoTo errorhandler
Set objDB = CurrentDb
Set objRSSettings = objDB.OpenRecordset("tblSettings")
Set objRSTables = objDB.OpenRecordset("tblLinkedTables")
strConn = "ODBC;"
strConn = strConn & "Driver=SQL Server;"
strConn = strConn & "Server=" & objRSSettings("Data Source") & ";"
strConn = strConn & "DATABASE=" & objRSSettings("Initial Catalog") & ";"
strConn = strConn & "UID=" & objRSSettings("UserId") & ";"
strConn = strConn & "PWD=" & objRSSettings("Password") & ";"
While Not objRSTables.EOF
If (tblExist(objRSTables("LocalTableName")) = False) Then
Set objTbl = objDB.CreateTableDef(objRSTables("LocalTableName"), dbAttachSavePWD, objRSTables("RemoteTableName"), strConn & "TABLE=" & objRSTables("RemoteTableName"))
objDB.TableDefs.Append objTbl
Else
Set objTbl = objDB.TableDefs(objRSTables("LocalTableName"))
objTbl.Connect = strConn & "TABLE=" & objRSTables("RemoteTableName")
objTbl.RefreshLink
End If
objRSTables.MoveNext
Wend
linkTables = True
strErrMSg = ""
before_exit:
objRSSettings.Close
objRSTables.Close
Set objDB = Nothing
Set objRSTables = Nothing
Set objRSSettings = Nothing
Exit Function
errorhandler:
strErrMSg = Err.Description
GoTo before_exit
End Function