access przechowuje wszystkie tabele baz danych, zapytania, formularze, raporty, makra i moduły w bazie danych Access Jet jako jeden plik.

dla tworzenia zapytań, Access oferuje „Query Designer”, graficzny interfejs użytkownika, który pozwala użytkownikom na tworzenie zapytań bez znajomości strukturalnego języka zapytań. W projektorze zapytań użytkownicy mogą „pokazać” źródła danych zapytania (które mogą być tabelami lub zapytaniami) i wybrać pola, które mają zostać zwrócone, klikając i przeciągając je do siatki., Można skonfigurować połączenia, klikając i przeciągając pola w tabelach do pól w innych tabelach. Access umożliwia użytkownikom przeglądanie i manipulowanie kodem SQL w razie potrzeby. W zapytaniu można użyć dowolnej tabeli dostępu, w tym tabel połączonych z różnych źródeł danych.

Access obsługuje również tworzenie zapytań „pass-through”. Te fragmenty kodu SQL mogą adresować zewnętrzne źródła danych za pomocą połączeń ODBC na maszynie lokalnej. Umożliwia to użytkownikom interakcję z danymi przechowywanymi poza programem dostępu bez użycia tabel połączonych lub Jet.,Użytkownicy konstruują zapytania pass-through używając składni SQL obsługiwanej przez zewnętrzne źródło danych.

podczas tworzenia raportów (w „widoku projektu”) dodatki lub zmiany w kontrolkach powodują, że wszelkie powiązane zapytania są wykonywane w tle i projektant jest zmuszony czekać na zwrócenie rekordów, zanim będzie mógł dokonać kolejnej zmiany. Tej funkcji nie można wyłączyć.

osoby niebędące programistami mogą używać funkcji makr do automatyzacji prostych zadań za pomocą szeregu rozwijanych selekcji., Makra umożliwiają użytkownikom łatwe łączenie poleceń, takich jak uruchamianie zapytań, importowanie lub eksportowanie danych, otwieranie i zamykanie formularzy, podgląd i drukowanie raportów itp. Makra obsługują podstawową logikę (IF-conditions) oraz możliwość wywoływania innych makr. Makra mogą również zawierać pod-makra, które są podobne do podprogramów. W Access 2007 rozszerzone makra obejmowały obsługę błędów i obsługę zmiennych tymczasowych. Access 2007 wprowadził również wbudowane makra, które są zasadniczo właściwościami zdarzenia obiektu. Wyeliminowało to konieczność przechowywania makr jako pojedynczych obiektów., Jednak makra były ograniczone w swojej funkcjonalności przez brak pętli programistycznych i zaawansowaną logikę kodowania aż do Access 2013. Wraz ze znaczącymi dalszymi ulepszeniami wprowadzonymi w Access 2013, możliwości makr stały się w pełni porównywalne z VBA. Dzięki zaawansowanym funkcjom wdrożenia aplikacji internetowych stały się praktyczne dzięki znacznie ulepszonemu interfejsowi i narzędziom Microsoft SharePoint, a także na tradycyjnych pulpitach Windows.

podobnie jak inne produkty pakietu Microsoft Office, innym językiem programowania używanym w Access jest Microsoft VBA. Jest podobny do Visual Basic 6.,0 (VB6) i Kod mogą być przechowywane w modułach, klasach i kodzie za formularzami i raportami. Aby stworzyć bogatszy, bardziej wydajny i łatwy w utrzymaniu gotowy produkt z dobrą obsługą błędów, większość profesjonalnych aplikacji dostępowych jest opracowywana przy użyciu języka programowania VBA, a nie makr, z wyjątkiem przypadków, w których wdrożenie sieciowe jest wymogiem biznesowym.,

aby manipulować danymi w tabelach i zapytaniach w VBA lub makrach, Microsoft udostępnia dwie biblioteki dostępu do bazy danych komponentów COM:

  1. Data Access Objects (DAO) (tylko 32-bitowe), które są zawarte w Access i Windows i ewoluowały do ACE w Microsoft Access 2007 dla formatu bazy danych ACCDE
  2. ActiveX Data Objects (ADO) (zarówno w wersji 32-bitowej, jak i 64-bitowej)

oraz jako Dao i ADO, programiści mogą również używać OLE DB i ODBC do tworzenia natywnych programów C/C++ dla dostępu. W przypadku ADP i bezpośredniej manipulacji danymi SQL Server wymagane jest ADO., DAO jest najbardziej odpowiednie do zarządzania danymi w bazach danych Access/Jet i jest jedynym sposobem na manipulowanie złożonymi typami pól w tabelach ACCDB.

w kontenerze bazy danych lub okienku nawigacji w programie Access 2007 i nowszych wersjach system automatycznie kategoryzuje każdy obiekt według typu (np. tabela, zapytanie, makro). Wielu programistów Access używa konwencji nazewnictwa Leszczyńskiego, choć nie jest to uniwersalne; jest to konwencja programistyczna, a nie reguła wymuszona DBMS. Jest to szczególnie przydatne w VBA, gdzie odniesienia do nazw obiektów mogą nie wskazywać ich typu danych (np. tbl dla tabel, qry dla zapytań).,

Programiści wdrażają Microsoft Access najczęściej dla projektów indywidualnych i grup roboczych (charakterystyka prędkości Access 97 została wykonana dla 32 użytkowników). Od czasu Access 97, a wraz z Access 2003 i 2007, Microsoft Access i sprzęt znacznie się rozwinęły. Bazy danych o rozmiarze poniżej 1 GB (które mogą teraz zmieścić się całkowicie w pamięci RAM) i jednoczesnych użytkowników 200 są dobrze w możliwościach Microsoft Access. Oczywiście wydajność zależy od projektu bazy danych i zadań. Prace wymagające dużej ilości dysków, takie jak złożone wyszukiwanie i zapytania, zajmują najwięcej czasu.,

ponieważ dane z bazy danych Microsoft Access mogą być buforowane w pamięci RAM, szybkość przetwarzania może znacznie poprawić się, gdy jest tylko jeden użytkownik lub jeśli DANE się nie zmieniają. W przeszłości wpływ opóźnień pakietów na system blokowania rekordów powodował, że bazy danych Access działały powoli w wirtualnej sieci prywatnej (VPN) lub sieci rozległej (Wan) przeciwko bazie danych Jet. Od 2010 r. połączenia szerokopasmowe złagodziły ten problem., Wydajność można również zwiększyć, jeśli w trakcie sesji utrzymywane jest ciągłe połączenie z bazą danych zaplecza, a nie otwieranie i zamykanie jej dla każdego dostępu do tabeli. Jeśli wydajność bazy danych Access przez VPN lub WAN spada, klient korzystający z protokołu Remote Desktop Protocol (takiego jak Microsoft Terminal Services) może zapewnić skuteczne rozwiązanie. Dostęp do baz danych połączonych z serwerem SQL lub dostęp do danych projekty działają dobrze na VPN i Wan.,

w lipcu 2011 r. Microsoft przyznał, że problem z wydajnością zapytań jest przerywany we wszystkich wersjach systemu Access oraz Windows 7 i Windows Server 2008 R2, ponieważ charakter zarządzania zasobami jest znacznie różny w nowszych systemach operacyjnych. Ten problem poważnie wpływa na wydajność zapytań zarówno w Access 2003 i wcześniejszych z kodem silnika bazy danych Jet, jak i w Access 2007 i późniejszych z silnikiem bazy danych Access (ACE). Microsoft wydał poprawki KB2553029 dla Access 2007 i KB2553116 dla Access 2010, ale nie naprawi problemu z Jet 4.0, ponieważ jest poza głównym wsparciem.,

we wcześniejszych wersjach programu Microsoft Access możliwość dystrybucji aplikacji wymagała zakupu zestawu narzędzi dla programistów; w Access 2007, 2010 i Access 2013 Wersja” Tylko Dla środowiska ” jest oferowana do pobrania za darmo, dzięki czemu dystrybucja aplikacji royalty-free jest możliwa w systemach Windows XP, Vista, 7 i Windows 8.x.

Dzielona Architektura bazodanowaedytuj

aplikacje Microsoft Access mogą przyjąć architekturę dzielonej bazy danych., Pojedyncza baza danych może być podzielona na oddzielny plik „back-end”, który zawiera tabele danych (udostępniane na serwerze plików) i „front-end” (zawierający obiekty aplikacji, takie jak zapytania, formularze, raporty, makra i moduły). Aplikacja dostępowa „front-end” jest rozprowadzana na pulpicie każdego użytkownika i połączona ze współdzieloną bazą danych. Przy użyciu tego podejścia, każdy użytkownik ma kopię programu Microsoft Access (lub wersję runtime) zainstalowaną na swoim komputerze wraz z bazą danych aplikacji. Zmniejsza to ruch sieciowy, ponieważ aplikacja nie jest pobierana dla każdego użycia., Baza danych „front-end” może nadal zawierać tabele lokalne do przechowywania ustawień użytkownika lub danych tymczasowych. Taka konstrukcja dzielonej bazy danych pozwala również na rozwój aplikacji niezależnie od danych. Wadą jest to, że użytkownicy mogą wprowadzać różne zmiany we własnej lokalnej kopii aplikacji, co utrudnia zarządzanie kontrolą wersji. Gdy nowa wersja jest gotowa, baza danych front-end jest zastępowana bez wpływu na bazę danych. Microsoft Access ma dwa wbudowane narzędzia, Splitter bazy danych i menedżer połączonych tabel, aby ułatwić tę architekturę.,

połączone tabele w programie Access używają ścieżek bezwzględnych zamiast ścieżek względnych, więc środowisko programistyczne musi mieć taką samą ścieżkę jak środowisko produkcyjne lub można napisać procedurę „dynamic-linker” w VBA.

w przypadku bardzo dużych baz danych dostępowych może to mieć problemy z wydajnością i w takich okolicznościach należy rozważyć backend SQL. Jest to mniej problem, jeśli cała baza danych może zmieścić się w pamięci RAM komputera, ponieważ Access buforuje Dane i indeksy.,

migracja do SQL ServerEdit

Główny artykuł: Upsizing (database)

aby skalować aplikacje dostępowe do rozwiązań korporacyjnych lub internetowych, jedną z możliwych technik jest migracja do Microsoft SQL Server lub równoważnej bazy danych serwera. Projekt klient-serwer znacznie zmniejsza Konserwację i zwiększa bezpieczeństwo, dostępność, stabilność i rejestrowanie transakcji.

Access 2000 poprzez Access 2010 zawierał funkcję o nazwie Upsizing Wizard, która pozwalała użytkownikom uaktualnić swoje bazy danych do Microsoft SQL Server, bazy danych klient–serwer ODBC., Ta funkcja została usunięta z Access 2013. Dodatkowe rozwiązanie, SQL Server Migration Assistant for Access (SSMA), jest nadal dostępne do bezpłatnego pobrania z firmy Microsoft.

dostępne są różne opcje aktualizacji. Po migracji danych i zapytań do SQL serwera można połączyć bazę danych Access z bazą danych SQL. Jednak niektóre typy danych są problematyczne, w szczególności „tak/nie”. W programie Microsoft Access istnieją trzy stany dla typu danych Yes/No (True/False): empty, no/false (zero) i yes / true (-1)., Odpowiedni typ danych SQL Server jest binarny, z tylko dwoma stanami, dopuszczalnymi wartościami, zero i 1. Niezależnie od tego, SQL Server jest nadal najłatwiejszą migracją. Pobieranie danych z połączonych tabel jest zoptymalizowane tylko do potrzebnych rekordów, ale ten scenariusz może działać mniej efektywnie niż to, co w przeciwnym razie byłoby optymalne dla SQL Server. Na przykład w przypadkach, w których połączenia wielostolikowe nadal wymagają skopiowania całej tabeli w całej sieci.,

w poprzednich wersjach Access, w tym Access 2010, bazy danych mogą być również konwertowane do Access Data Projects (ADP), które są powiązane bezpośrednio z jedną bazą danych SQL Server. Ta funkcja została usunięta z Access 2013. ADP obsługuje możliwość bezpośredniego tworzenia i modyfikowania obiektów SQL Server, takich jak tabele, widoki, procedury przechowywane i ograniczenia SQL Server. Widoki i procedury przechowywane mogą znacznie zmniejszyć ruch sieciowy dla połączeń wielostolikowych. SQL Server obsługuje tymczasowe tabele i łącza do innych źródeł danych poza pojedynczą bazą danych SQL Server.,

wreszcie niektóre bazy danych Access są całkowicie zastąpione przez inną technologię, taką jak ASP.NET lub Java po konwersji danych. Jednak każda migracja może dyktować duży wysiłek, ponieważ Język Access SQL jest potężniejszym supersetem standardowego SQL. Co więcej, procedury aplikacji dostępu, zarówno VBA, jak i makra, są pisane na stosunkowo wyższym poziomie w porównaniu z obecnie dostępnymi alternatywami, które są zarówno solidne, jak i wszechstronne., Zauważ, że język makr Access, pozwalający na jeszcze wyższy poziom abstrakcji niż VBA, został znacznie ulepszony w Access 2010 i ponownie w Access 2013.

w wielu przypadkach Programiści budują bezpośrednie interfejsy web-to-data za pomocą ASP.NET, zachowując główne procesy automatyzacji biznesu, funkcje administracyjne i sprawozdawcze, które nie muszą być rozpowszechniane wśród wszystkich w dostępie, aby pracownicy informacji mogli je utrzymać.

podczas gdy wszystkie dane dostępowe mogą migrować bezpośrednio do SQL Server, niektóre zapytania nie mogą migrować pomyślnie., W niektórych sytuacjach może być konieczne przetłumaczenie funkcji VBA i funkcji zdefiniowanych przez użytkownika na funkcje / procedury T-SQL lub. NET. Zapytania Crosstab można migrować do SQL Server za pomocą polecenia PIVOT.