Jag vill mha kod kunna uppdatera länkade tabeller i access2000. Om jag skall rekommendera dig någon sida så borde det vara http://www.mvps.org/access/. Har kommit lite längre. I artikeln enl ovan står Problemet löst.Uppdatera Länkade tabeller i Access2000 mha kod
Min kod ser ut ungefär så här:
LinkSource = "ODBC;DSN=SNAS;SERVER=" & SnasDB & ";UID=" & SNASuser & ";PWD=" & SNASPWD
strTab = "select Name from MSysObjects where connect like '*DSN=SNAS*'"
Set rsTab = db.OpenRecordset(strTab, dbOpenSnapshot, dbSeeChanges)
Do Until rsTab.EOF
db(rsTab!Name).Connect = LinkSource
'db(rsTab!Name).Indexes = ???????
db.TableDefs(rsTab!Name).RefreshLink
rsTab.movenext
loop
Dvs jag loopar genom msobjects för tabeller med viss dsn (går mot en oracle db, ms oracle drivis)
Tyvärr så är alla inlänkade oracle tabeller VYER i oracle. Detta gör att vid omlänkningen försvinner nyckeln i tabellen. Därmed försvinner bl.a. uppdateringsmöjligheten i tabellen.
Hur kan jag i koden få med nyckeln vid uppdateringen?
Hur ska koden se ut?
Går det att automatiskt få med nyckeln, eller måste nyckeln anges i koden?
Om nyckel måste anges manuellt i koden, kan jag lägga nyckelnambet i en sidotabell i access, och vid omlänkningen kolla efter nyckelnamnet i den tabellen.
Det grundläggande problemet är allts att när man kör refreshlink på en inlänkad VY, så försvinner primar key.
Hur kan man förhindra detta.
Det händer även om men kör 'länkhanteraren' manuellt.
Tacksam mycket snabbt svar.
/ MikaelSv: Uppdatera Länkade tabeller i Access2000 mha kod
Hittade 2 länkar på hans sida rörande "refreshlink" men vet inte om det hjälper:
http://www.mvps.org/access/tables/tbl0009.htm
http://www.mvps.org/access/tables/tbl0012.htm
Kolla även igenom http://www.google.se/search?q=access+RefreshLink&ie=UTF-8&oe=UTF-8&hl=sv&meta=
Vore dock väldigt roligt med feedback på detta ärende om du får till det. Lycka till.Sv: Uppdatera Länkade tabeller i Access2000 mha kod
Följande länk beskriver samma problem.
http://www.experts-exchange.com/Databases/Q_20683668.html#8961167
"Reading your 2 last posts, I think you are very close to the solution.
Jet Engine just needs a "fake" unique index on your linked view for it to consider it as updatable.
You may just modify your good script to automatically add this index either by a "CREATE UNIQUE INDEX YourPKOnTheLinkedView ON TheLinkedViewNameInAccess(YourPKColumnName)" or its script equivalent.
The index will of course not be created in MSDE and your problem will be solved.
The SQL syntax may not work with Access200x.
You can display the Index properties on a view that you linked manually (with a manually selected PK, I mean) to understand what exactly is to be scripted"
db(rsTab!Name).Indexes.Append ???
??? skall vara Object as Objekt?
Vad menas?
/ MikaelSv: Uppdatera Länkade tabeller i Access2000 mha kod
"You can display the Index properties on a view that you linked manually (with a manually selected PK, I mean) to understand what exactly is to be scripted"
Hur?
Det finns ju inte msysobjects.
/ MikaelSv: Uppdatera Länkade tabeller i Access2000 mha kod
DoCmd.RunSQL "Create Unique Index PrimaryIndex on dbo_viewExtendedOrderDetails (OrderID, ProductID)"
Dvs jag skapar en TABELL som innehåller VyNamn och VyPK.
Vid omlänkning och om den nya tabeller innehåller Aktuell vy, så körs ovanstående kod.
Access2k behöver en falsk PK för att anse att vyn är uppdateringsbar.
(Påstås av MS vara löst i Access2k3)
/ Mikael