På grunn av at Sybase ikke liker Primary Key og Unique constraint på samme felt så droppet vi Unique constraint på alle PK i alle tabeller.
(For mer info sjekk: http://www.sybase.com/detail?id=1032350)
Noe som gjorde at når vi linket tabellene i Access så visste ikke Access lengre hvilket felt som var unikt. => Access spør for hver tabell som skal linkes inn hvilket felt som er unikt.
Om en skipper og angi hvilket felt som er unikt så blir tabellen skrivebeskyttet.
Så det sier seg selv at med 400+ tabeller og ditto 400+ forekomster av denne dialogen:
Så begynte det å bli litt pes og linke tabellene på nytt.
Etter mye googling fant jeg omsider denne løsningen: http://www.mrexcel.com/forum/showthread.php?t=33366&page=2
Som ga denne funksjonen:
Function BuildTableLink(strDSNName as String,strTableName as String, strExternalTableName as String, strUniqueFieldName as String)
Dim db As Database
Dim tdf As TableDef
Dim strDDL As String
Set db = CurrentDb
'Create linked table
Set tdf = db.CreateTableDef(strTableName)
tdf.Connect = "ODBC;DSN=" & strDSNName
tdf.SourceTableName = strExternalTableName
db.TableDefs.Append tdf
'Set unique information
strDDL = "CREATE UNIQUE INDEX _uniqueindex ON " & _
strTableName & " (" & strFieldName & ")" & _
"WITH PRIMARY;"
db.Execute strDDL
End Function
Ove B-)
|