Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Izmjena Access-ove linked tabele iz koda

[es] :: Access :: Izmjena Access-ove linked tabele iz koda

Strane: 1 2

[ Pregleda: 6135 | Odgovora: 27 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

MrNash

Član broj: 200926
Poruke: 155
192.102.17.*



Profil

icon Izmjena Access-ove linked tabele iz koda05.09.2013. u 10:06 - pre 129 meseci
Pozdrav!

U okviru Access aplikacije imam tabelu link-ovanu sa odgovarajucom tabelom u Oracle bazi podataka.
Potrebno je da realizujem VBA kod koji ce u zavisnosti od odabrane opcije tabelu linkovati sa produkcionim ili
testnim Oracle serverom (oba servera imaju potrebnu tabelu).

Koristio sam kod:

Dim Db As Database
Set Db = CurrentDb()

Db.TableDefs("ACCESS_TABLE_NAME").Connect = "ODBC;DSN=DSN_CONN;SERVER=MAINSERVER;UID=USERNAME;PWD=PASSWORD;TABLE=ORACLE_TABLE_NAME"
Db.TableDefs("ACCESS_TABLE_NAME").RefreshLink
Db.Close

za linkovanje na produkcioni server. Kod za link-ovanje sa testnim serverom je identican samo u konekcionom stringu stoji SERVER=TESTSERVER.
Medjutim svaki put kada izvrsim kod vidim da linkovanje nije izvrseno (na osnovu podataka u Acces tabeli i njenih kolona). Tek nakon sto resartujem Access aplikaciju
i izvrsim Resfresh pomocu "Linked Table Manager-a" tabela se zaista linkuje.

Imate li prijedloge?
 
Odgovor na temu

Zoran.Eremija
Zoran Eremija
SYSTEM ANALYST
Freelancer
Beograd

Član broj: 251342
Poruke: 855
*.kbcnet.rs.

Sajt: zoraneremija.wix.com/erem..


+47 Profil

icon Re: Izmjena Access-ove linked tabele iz koda05.09.2013. u 17:03 - pre 129 meseci
Ako sam Vas dobro razumeo Vama treba nesto sto sam radio za linkovnje na SQL Server. Imate primer "LinkSQLServer.zip" na lokaciji http://zoraneremija.wix.com/eremijacv#!downloads/c1qda

Posto nemam Oracle instalisan ne mogu da probam. Pogledajte KonektString u kodu, treba da ga promenite sa parametrima za Oracle.
 
Odgovor na temu

MrNash

Član broj: 200926
Poruke: 155
192.102.17.*



Profil

icon Re: Izmjena Access-ove linked tabele iz koda06.09.2013. u 08:20 - pre 129 meseci
Preuzeo sam dokument.

Da provjerim, komandom

DoCmd.TransferDatabase acLink, "ODBC Database", KonektString, acTable, "sysobjects", "LinkTables", , True

Vi link-ujete Access-ovu "LinkTables" tabelu sa "sysobjects" tabelom na MS SQL Serveru. Je li tako?
 
Odgovor na temu

Zoran.Eremija
Zoran Eremija
SYSTEM ANALYST
Freelancer
Beograd

Član broj: 251342
Poruke: 855
*.kbcnet.rs.

Sajt: zoraneremija.wix.com/erem..


+47 Profil

icon Re: Izmjena Access-ove linked tabele iz koda06.09.2013. u 09:53 - pre 129 meseci
Odgovor je NE.
Parametar "sysobjects" je SQLServer sistemska tabela u kojoj se nalazi popis svih tabela i pogleda baze koju posmatramo. Pretpostavljam, jer odavno nisam radio s Oracle jos od verzije 6, da Oracle takodje ima neku sistemsku tabelu u kojoj ima popis svih tabela i pogleda i na mesto tog parametra "sysobjects" treba upisati ime Oracle sistemske tabele.

Parametar "LinkTables" je preimenovan naziv sistemske tabele "sysobjects", sto znaci da ce se u Access-u linkovana tabela zvati ne izvorno kako se zove u Oracle vec ce joj ime biti LinkTables.

Kada se linkuje ta tabela onda treba da korigujete upit QLinkTables prema pravim nazivima kolona koji su u toj linkovanoj tabeli...
 
Odgovor na temu

MrNash

Član broj: 200926
Poruke: 155
192.102.17.*



Profil

icon Re: Izmjena Access-ove linked tabele iz koda06.09.2013. u 10:02 - pre 129 meseci
OK, ali nakon izvrsenja komande u Access-u cemo imati tabelu "LinkTables" sa istom strukturom i podacima kao
"sysobjects" SQL server sistemska tabela?
 
Odgovor na temu

Zoran.Eremija
Zoran Eremija
SYSTEM ANALYST
Freelancer
Beograd

Član broj: 251342
Poruke: 855
*.kbcnet.rs.

Sajt: zoraneremija.wix.com/erem..


+47 Profil

icon Re: Izmjena Access-ove linked tabele iz koda06.09.2013. u 10:14 - pre 129 meseci
Tako je s time sto struktura i naziv tabele u Oracle nije ista najverovatnije. SQLServer-ova tabela "sysobjects" u sebi ima popis vise razlicitih objekata koji se dikriminiraju putem atributa "xtype". Koliko sam video na internetu Oracle ima posebnu tabelu za listu tabela i posebnu tabelu za listu View.
 
Odgovor na temu

MrNash

Član broj: 200926
Poruke: 155
192.102.17.*



Profil

icon Re: Izmjena Access-ove linked tabele iz koda06.09.2013. u 10:19 - pre 129 meseci
Probao sam s Vasom komandom, s tim sto sam izmjenio konekcioni string i nazive tabela.
Medjutim nakon izvrsenja komande koja treba da poveze Access tabelu sa testnim serverom vidim
da je i dalje povezana sa tom tabelom na produkcionom serveru (na osnovu podataka i strukture).
 
Odgovor na temu

Zoran.Eremija
Zoran Eremija
SYSTEM ANALYST
Freelancer
Beograd

Član broj: 251342
Poruke: 855
*.kbcnet.rs.

Sajt: zoraneremija.wix.com/erem..


+47 Profil

icon Re: Izmjena Access-ove linked tabele iz koda06.09.2013. u 10:22 - pre 129 meseci
Verovatno niste promenili naziv baze u KonektString
 
Odgovor na temu

MrNash

Član broj: 200926
Poruke: 155
192.102.17.*



Profil

icon Re: Izmjena Access-ove linked tabele iz koda06.09.2013. u 10:31 - pre 129 meseci
Unio sam isti konekcioni string koji koristim za povezivanje iz Accessa na Oracle bazu i izvrsavanje upita
(taj dio funkcionise).

KonektString = "ODBC;DSN=DSN;SERVER=TESTSERVER;UID=USERNAME;PWD=PASSWORD;"
DoCmd.TransferDatabase acLink, "ODBC Database", KonektString, acTable, "Oracle_Table_Name", "Access_Table_Name", , True

Na Oracle serveru koliko vidim ne postoje odvojene baze podataka (kao kod MS SQL Servera) nego samo spisak objekata.
 
Odgovor na temu

Zoran.Eremija
Zoran Eremija
SYSTEM ANALYST
Freelancer
Beograd

Član broj: 251342
Poruke: 855
*.kbcnet.rs.

Sajt: zoraneremija.wix.com/erem..


+47 Profil

icon Re: Izmjena Access-ove linked tabele iz koda06.09.2013. u 10:44 - pre 129 meseci
Ipak nisam u mogucnosti da vam 100% pomognem ali pogledajte na ovom linku primer pa ga prilagodite prema Vasem slucaju http://www.dbforums.com/micros...rdatabase-odbc-dsn-string.html
 
Odgovor na temu

MrNash

Član broj: 200926
Poruke: 155
192.102.17.*



Profil

icon Re: Izmjena Access-ove linked tabele iz koda06.09.2013. u 11:34 - pre 129 meseci
Nije frka, jos cu malo da proguglam.

Hvala.
 
Odgovor na temu

Trtko
Koprivnica

Član broj: 69494
Poruke: 695
*.adsl.net.t-com.hr.



+8 Profil

icon Re: Izmjena Access-ove linked tabele iz koda09.09.2013. u 07:47 - pre 129 meseci
davno je to bilo, al evo kako sam se spajao na Oracle i pretrazivao po systemskoj tabeli Tabele, Viewe ......

trt = "Driver={Microsoft ODBC for Oracle}; Server=" + serv + "; Uid=" + loz + "; Pwd=" + pas

Dim wstemp As Workspace
Dim dbtemp As Database
Dim rstemp As Recordset

Set wstemp = DBEngine.Workspaces(0)

Set dbtemp = wstemp.OpenDatabase("", True, True, trt)

Set rstemp = dbtemp.OpenRecordset("select * from all_objects", dbOpenDynaset, dbSQLPassThrough)


If pcek = -1 And tcek = -1 And scek = -1 Then
rstemp.MoveFirst

Do While Not rstemp.EOF()

imeow = rstemp.Fields(0)
If imeow = loz Then

imetabele = rstemp.Fields(1)

If rstemp.Fields(3) = "TABLE" Then
brtab = brtab + 1
End If

If rstemp.Fields(3) = "VIEW" Then
brview = brview + 1
End If
If rstemp.Fields(3) = "SYNONYM" Then
brsyn = brsyn + 1
End If
If rstemp.Fields(3) = "TABLE" Or rstemp.Fields(3) = "VIEW" Or rstemp.Fields(3) = "SYNONYM" Then
aa = aa + rstemp.Fields(3) + ":" + imetabele + ";"
End If
End If
rstemp.MoveNext

Loop
End If


i drugi primjer linkovanja

serv = curserver
loz = curowner
pas = curowner
imelink = loz + "." + tabele

oddb = "ODBC;DSN=" + serv + "; Uid=" + loz + "; Pwd=" + pas + ";DATABASE=" + serv
DoCmd.TransferDatabase acLink, "ODBC Database", oddb, acTable, imelink, "orakle"
imptrt = "select * from orakle"



možda ti pomogne, pozdrav
 
Odgovor na temu

MrNash

Član broj: 200926
Poruke: 155
192.102.17.*



Profil

icon Re: Izmjena Access-ove linked tabele iz koda09.09.2013. u 09:59 - pre 129 meseci
Hvala ali nazalost situacija je ista. Koju god VBA komandu da izvrsim tabela je i dalje Link-ovana sa prethodnim database serverom.
 
Odgovor na temu

Zidar
Canada

Moderator
Član broj: 15387
Poruke: 3085
*.100.46-69.q9.net.



+79 Profil

icon Re: Izmjena Access-ove linked tabele iz koda09.09.2013. u 14:38 - pre 129 meseci
Ako tabela tvrdoglavo odbija da promeni link, zasto ne obrises tabledef pa je onda zakacis ponovo, iz izvora koji ti treba?
 
Odgovor na temu

MrNash

Član broj: 200926
Poruke: 155
192.102.17.*



Profil

icon Re: Izmjena Access-ove linked tabele iz koda09.09.2013. u 15:10 - pre 129 meseci
Mislite da se prvo obrise postojeci link te tabele pa onda kreira novi?

 
Odgovor na temu

Zoran.Eremija
Zoran Eremija
SYSTEM ANALYST
Freelancer
Beograd

Član broj: 251342
Poruke: 855
*.kbcnet.rs.

Sajt: zoraneremija.wix.com/erem..


+47 Profil

icon Re: Izmjena Access-ove linked tabele iz koda09.09.2013. u 17:51 - pre 129 meseci
Zipujte i okacite Vas primer da vidimo sta je.
 
Odgovor na temu

Zidar
Canada

Moderator
Član broj: 15387
Poruke: 3085
65.94.113.*



+79 Profil

icon Re: Izmjena Access-ove linked tabele iz koda09.09.2013. u 23:50 - pre 129 meseci
"Mislite da se prvo obrise postojeci link te tabele pa onda kreira novi?" - tacno tako.
 
Odgovor na temu

MrNash

Član broj: 200926
Poruke: 155
192.102.17.*



Profil

icon Re: Izmjena Access-ove linked tabele iz koda10.09.2013. u 08:01 - pre 129 meseci
Situacija mi je nejasna, imam Access tabelu link-ovanu sa glavnim serverom (MAINSERVER). Kada izvrsim kod ispod
situacija ostane nepromjenjena (iako prva linija koda ukloni Access tabelu, provjerio sam).


DoCmd.DeleteObject acTable, "ACCESS_TABLE_NAME"

Dim KonektString As String
KonektString = "ODBC;DSN=DSN_NAME;Server=TESTSERVER;UID=USERNAME;PWD=PASSWORD"

DoCmd.TransferDatabase acLink, "ODBC Database", KonektString, acTable, "ORACLE_TABLE_NAME", "ACCESS_TABLE_NAME", False, True
 
Odgovor na temu

Zidar
Canada

Moderator
Član broj: 15387
Poruke: 3085
*.100.46-69.q9.net.



+79 Profil

icon Re: Izmjena Access-ove linked tabele iz koda10.09.2013. u 16:29 - pre 129 meseci
Zakacio sam MDB sa skupom funkcija koje rade ovo sto se trazi. Pogledati funkciju RefreshAttachedTAble, pa gledati dalje ako je potrebno.

Kod je baziran na knjizi "Essential Access 95" autori Allen Browne i Alison Balter. Dalje od ovoga ne znam.

Kod namerno nema error handling da bi se videlo sta se desava.

[Ovu poruku je menjao Zidar dana 10.09.2013. u 17:49 GMT+1]

[Ovu poruku je menjao Zidar dana 10.09.2013. u 17:50 GMT+1]
Prikačeni fajlovi
 
Odgovor na temu

MrNash

Član broj: 200926
Poruke: 155
192.102.17.*



Profil

icon Re: Izmjena Access-ove linked tabele iz koda11.09.2013. u 08:21 - pre 129 meseci
Implementirao sam kod koji ste mi poslali (koristeci moje nazive tabela). Kod se izvrsi bez
greske ali nova tabela je i dalje linkovana sa starim serverom.

Ispod je format konekcionog stringa koji sam koristio (za Oracle bazu).

"ODBC;DSN=DSN_NAME;SERVER=TESTSERVER;UID=USERNAME;PWD=PASSWORD"
 
Odgovor na temu

[es] :: Access :: Izmjena Access-ove linked tabele iz koda

Strane: 1 2

[ Pregleda: 6135 | Odgovora: 27 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.