2013-03-18 8 views
8

Mam Access 2010 bazy danych A.mdb z listy tabel, z których jeden jest związany tabeli, połączonego z innej bazy danych Access B.mdb na ten sam serwer. Te bazy danych znajdują się na komputerze programistycznym xxx.xxx.xxx.xxx, który jest mapowany na moim komputerze pod numerem R://, a następnie jest publikowany online na serwerze yyy.yyy.yyy.yyy.Aktualizacja programu Access tabela połączona użyć ścieżki UNC

Jeśli chcę pracować lokalnie w bazie danych, muszę zmienić link do tabeli. Ale jeśli zmienię to poprzez system plików (używając "Linked Table Manager"), link staje się R://.... i kiedy patrzę na stronę ASP, która żąda tych danych, jest zepsuta, ponieważ ścieżka jest błędna. Ponadto, jeśli zmienię link lokalnie, nie będzie działać na serwerze online.

Czy istnieje sposób na zmianę linku "programowo"? Oznacza to, że bez użycia menedżera tabeli połączonej?

Szukałem odpowiedzi, ale nie jestem ekspertem, po prostu zrozumiałem, że muszę napisać "Moduł"? "Makro"?

Odpowiedz

15

Łącza tabeli mogą być ścieżkami UNC. Na przykład powiedzmy, że mam połączoną tabelę wskazującą na bazę danych o numerze \\192.168.1.2\Public\, która jest mapowana na dysk P:. Gdybym uruchomić edytor VBA (Alt + F11), otwarta oknie Immediate (Ctrl + G) i typ ...

?CurrentDB.TableDefs("remoteTable").Connect

... powróci. ..

;DATABASE=P:\B.accdb

... bo wskazał jazdy P: kiedy utworzony link.

Teraz jeśli utworzyć i uruchomić funkcję VBA ...

Function linkToUnc() 
Dim cdb As DAO.Database 
Set cdb = CurrentDb 
cdb.TableDefs("remoteTable").Connect = ";DATABASE=\\192.168.1.2\Public\B.accdb" 
cdb.TableDefs("remoteTable").RefreshLink 
Set cdb = Nothing 
End Function 

... link jest obecnie ścieżka UNC.

Nawiasem mówiąc, możesz utworzyć linki UNC w menedżerze połączonych tabel, jeśli przeglądasz "Sieć", "nazwa komputera", "nazwa udziału", ale to da ci nazwę komputera (w moim przypadku \\PICO\Public\B.accdb) .

+0

Dziękuję bardzo! Tylko jedno pytanie (początkujący tutaj): w jaki sposób mogę utworzyć funkcję VBA? Makro? Moduł? Makro połączone z modułem? Boh! Co się tyczy "Browse to Network, Machine Name, ..." w rzeczywistości nie mogę tego zrobić, ponieważ z jakiegoś powodu poddaję się zrozumieniu, że nie widzę maszyny z Newtwork (jestem w dużej i ogromnej organizacji, więc dostęp jest ograniczony i dziwny!) –

+1

Stwórz nowy moduł, a następnie wklej kod i edytuj, aby pasował. Możesz uruchomić tę funkcję, klikając pierwszą linię i wciskając '[F5]' (lub wybierz "Run" z paska menu), a także możesz utworzyć Makro, aby go uruchomić (poprzez akcję 'RunCode'). –

+0

Dzięki, próbowałem, ale mówi "Błąd kompilacji: Zdefiniowany przez użytkownika typ nie zdefiniowany" ... –

0

można kliknąć prawym przyciskiem myszy połączoną tabelę i wybrać Menedżer tabeli połączonej. Wybierz połączoną tabelę, nad którą chcesz pracować, i zaznacz pole wyboru pod oknem, które mówi: Zawsze pytaj o nową lokalizację i kliknij przycisk OK.

Zostaniesz poproszony o nową lokalizację. Przeglądaj i wybierz plik i kliknij OK.

+0

Cześć, Tera, dziękuję za odpowiedź, ale tego właśnie nie chcę robić. Zmieniłem moje pytanie, ponieważ może nie jest to takie jasne. –

0

Chciałbym ustawić plik DSN na udostępnionym folderze dostępnym z dostępem do odczytu do całej naszej sieci, a następnie użyć połączonego menedżera tabeli do ścieżki UNC. Aby to zrobić, korzystam z połączonego menedżera tabel i skonfiguruję plik DSN na moim pulpicie. Następnie kopiuję i przenoszę plik DSN do udostępnionego katalogu UNC. Następnie wchodzę do Access i usuwam połączoną Tabelę i odtwarzam połączoną tabelę.Aby to zrobić, po usunięciu połączonej tabeli, wykonaj następujące czynności:

  1. Klikam na bazę danych ODBC -> Link do źródła danych, tworząc połączoną tabelę -> OK.
  2. Kliknij kartę Źródło danych pliku w oknie Wybierz źródło danych. U dołu okna dialogowego pojawi się "Nazwa DSN:", a następnie pole tekstowe i nowy przycisk. Wprowadzisz całą ścieżkę UNC i nazwę pliku do tego pola tekstowego (więc wskazuje to na plik skopiowany do ścieżki UNC). Na przykład wpisuję: \ ATD-SERVER1 \ AccessShare \ ContactsApp.accdb.dsn. Następnie kliknij OK.

Zakładając, że posiadasz uprawnienia dostępu do serwera, z którym łączysz, wyświetlone zostanie okno dialogowe Połącz tabele, a następnie możesz wybrać tam swoje połączone tabele! Microsoft nie mógłby uczynić tego mniej intuicyjnym, gdyby spróbował.

Powiązane problemy