2011-09-27 11 views
7

Mam kilka tablic Access z wieloma polami. Migrowałem każdą tabelę dostępu do 6 lub 7 tabel serwerów sql. Używam serwera sql 2008. Teraz chcę używać programu Access jako interfejsu użytkownika, aby móc wprowadzić dane w dostępie, ale będzie on przechowywany na serwerze sql. Wiem, że muszę nawiązać połączenie ODBC. Ale nie jestem pewien, jak utworzyć formularz dostępu, aby użyć go jako front-end. Przykro mi, jeśli to podstawowe pytanie ...Dostęp jako front end i serwer sql jako backend

Odpowiedz

9

Prawdopodobnie będziesz chciał zacząć od pustej bazy danych programu Access (ponieważ struktury tabel i wszelkie istniejące formularze i raporty nie będą zgodne z tym, co utworzyłeś w serwerze SQL).

Pierwszym krokiem jest nawiązanie połączenia ODBC z bazą danych SQL Server. Następnie "połączysz" tabele w SQL Server z bazą danych Access.

Teraz masz bazę danych Access ze wszystkimi tabelami połączonymi z SQL Server. Te tabele nadal "żyją" w SQL Server, a po ich edycji w Access dane będą przechowywane w SQL Server.

Następnie można tworzyć formularze dostępu i raporty przy użyciu tych tabel, tak jakby tabele były natywne dla programu Access.

+0

Dlaczego potrzebujesz ADN dla połączenia DSN lub ODBC? Łączność SQL Server za pośrednictwem SQLOLEDB jest wbudowana. DSN to także obciążenie związane z wdrażaniem. ADP istnieją od czasu Access 2000/2003. – gbn

+0

W zależności od preferencji użytkownika. ADP jest kolejnym prawidłowym rozwiązaniem. Moje doświadczenie dotyczy migracji do połączonych tabel (mniej ważne dla tego użytkownika, jeśli wszystkie struktury tabel są nowe). –

+0

@LarryLustig Zrobiłem połączenie ODBC z serwerem sql, przechodząc do 'Narzędzia administracyjne-> Źródła danych-> System DSN-> dodano serwer sql i nazwę bazy danych, którą chciałem użyć jako interfejsu użytkownika" Teraz mam również połączone w serwer sql za pomocą 'sp_addlinkedserver 'connect', 'Access 2007', 'Microsoft.ACE.OLEDB.12.0', 'C: \ connect.accdb'' ale tabele z serwera sql nie pojawiają się w pustej bazie danych dostępu .. Gdzie się tu mylę? – alex

0

Można utworzyć połączenie ODBC. Możesz również utworzyć połączenie ADODB. Jeśli Twoim celem jest aktualizacja lub modyfikacja bazy danych SQL, oba połączenia będą działać.

Teraz, sądzę, że musisz zapoznać się z odpowiednimi obiektami. Powinny to być tabele, zapytania, polecenia itp., Które pozwolą na przykład na zbieranie zestawów rekordów z zapytań SQL ... Po uzyskaniu jasności możesz na przykład przypisać zestaw rekordów do formularza metodą Set myForm.recordset = myRecordset.open ....

1

Najbardziej uniwersalnym sposobem jest użycie łączy ODBC do tabel i widoków SQL Server. Takie podejście pozwala na elastyczne łączenie z innymi źródłami danych ODBC, tabelami w innych plikach baz danych Jet/ACE, tworzenie tabel Jet/ACE lokalnie w bazie danych, link do arkusza kalkulacyjnego Excela i tak dalej. Możesz włączyć szeroki zakres źródeł danych.

Jeśli wybierzesz ADP, będziesz ograniczony do połączenia OLE DB z pojedynczą instancją SQL Server. I będziesz zasadniczo zamknięty na serwerze SQL. Nie można przełączyć aplikacji na inną bazę danych klient-serwer bez większego wysiłku związanego z ponownym opracowaniem.

Jeśli chodzi o obciążenie związane z wdrażaniem za pomocą ODBC, chociaż korzystanie z DSN podczas programowania może być wygodne, przed rozpoczęciem wdrażania należy przekonwertować łącza ODBC na połączenia bez numerów DSN. W ten sposób twój użytkownik nie będzie wymagał DSN. Zobacz stronę Douga Steele'a: Using DSN-Less Connections

+0

Utworzono pustą bazę danych dostępu. Zrobiłem połączenie ODBC z serwerem sql, przechodząc do "Narzędzia administracyjne-> Źródła danych-> System DSN-> dodał serwer sql i nazwę bazy danych, które chciałem użyć jako front end Teraz mam równieżpołączone w serwerze sql przez przy użyciu 'sp_addlinkedserver 'connect', 'Access 2007', 'Microsoft.ACE.OLEDB.12.0', 'C: \ connect.accdb'' ale tabele z serwera sql nie pojawiają się w pustej bazie danych dostępu. Gdzie ja czy tu się mylę? – alex

+0

Po utworzeniu nazwy DSN nie dodawaj niczego w programie Access. Twój DSN opisze właściwości połączenia z SQL Server. Nie jest to funkcja specyficzna dla programu Access, ale powinna być użyteczna dla każdej aplikacji, która może korzystać z połączeń ODBC. – HansUp

+0

Dzięki, dostałem to, zawodziłem w "łączeniu stołów". Teraz podałem poprawną nazwę ścieżki dla DSN i jej działanie! Czy możesz mi zasugerować, który z nich będzie najlepszy w długim okresie jako interfejs użytkownika Access lub interfejs w dotnet? – alex

Powiązane problemy