Access slaat alle databasetabellen, query ‘s, formulieren, rapporten, macro’ s en modules in de Access Jet-database op als een enkel bestand.
voor query-ontwikkeling biedt Access een “Query Designer”, een grafische gebruikersinterface waarmee gebruikers query ‘ s kunnen bouwen zonder kennis van gestructureerde query-taal. In de Query Designer kunnen gebruikers de gegevensbronnen van de query” tonen “(wat tabellen of query ‘ s kunnen zijn) en de velden selecteren die ze willen retourneren door erop te klikken en ze in het raster te slepen., Men kan joins instellen door te klikken en velden in tabellen te slepen naar velden in andere tabellen. Access stelt gebruikers in staat om de SQL-code te bekijken en te manipuleren indien gewenst. Elke Toegangstabel, inclusief gekoppelde tabellen uit verschillende gegevensbronnen, kan worden gebruikt in een query.
Access ondersteunt ook het aanmaken van”pass-through queries”. Deze fragmenten van SQL-code kunnen externe gegevensbronnen aanpakken door gebruik te maken van ODBC-verbindingen op de lokale machine. Dit stelt gebruikers in staat om te communiceren met gegevens die zijn opgeslagen buiten het Access-programma zonder het gebruik van gekoppelde tabellen of Jet.,Gebruikers construeren de pass-through queries met behulp van de SQL-syntaxis die wordt ondersteund door de externe gegevensbron.
bij het ontwikkelen van rapporten (in “ontwerpweergave”) zorgen toevoegingen of wijzigingen aan besturingselementen ervoor dat gekoppelde query ‘ s op de achtergrond worden uitgevoerd en wordt de ontwerper gedwongen te wachten tot records worden geretourneerd voordat hij in staat is een andere wijziging aan te brengen. Deze functie kan niet worden uitgeschakeld.
niet-programmeurs kunnen de macrofunctie gebruiken om eenvoudige taken te automatiseren door middel van een reeks drop-down selecties., Macro ’s kunnen gebruikers gemakkelijk chain commando’ s samen, zoals het uitvoeren van query ‘ s, importeren of exporteren van gegevens, openen en sluiten van formulieren, previewing en afdrukken van rapporten, enz. Macro ’s ondersteunen basislogica (IF-Voorwaarden) en de mogelijkheid om andere macro’ s aan te roepen. Macro ’s kunnen ook sub-macro’ s bevatten die vergelijkbaar zijn met subroutines. In Access 2007, verbeterde macro ‘ s opgenomen fout-handling en ondersteuning voor tijdelijke variabelen. Access 2007 introduceerde ook ingebedde macro ‘ s die in wezen eigenschappen zijn van de gebeurtenis van een object. Dit elimineerde de noodzaak om macro ‘ s op te slaan als individuele objecten., Macro ‘ s waren echter beperkt in hun functionaliteit door een gebrek aan programmeerlussen en geavanceerde coderingslogica tot Access 2013. Met aanzienlijke verdere verbeteringen geïntroduceerd in Access 2013, werden de mogelijkheden van macro ‘ s volledig vergelijkbaar met VBA. Ze maakten feature rich web-based applicatie implementaties praktisch, via een sterk verbeterde Microsoft SharePoint interface en tools, evenals op traditionele Windows-desktops.
net als andere producten in de Microsoft Office-suite is de andere programmeertaal die in Access wordt gebruikt Microsoft VBA. Het is vergelijkbaar met Visual Basic 6.,0 (VB6) en code kunnen worden opgeslagen in modules, klassen en code achter formulieren en rapporten. Om een rijker, efficiënter en onderhoudbaar eindproduct met een goede foutafhandeling te creëren, worden de meeste professionele toegangstoepassingen ontwikkeld met behulp van de VBA-programmeertaal in plaats van macro ‘ s, behalve wanneer web-implementatie een zakelijke vereiste is.,
om gegevens in tabellen en queries in VBA of macro ’s te manipuleren, biedt Microsoft twee databasetoegangsbibliotheken van COM-componenten:
- Data Access Objects (DAO) (alleen met 32 bits), die is opgenomen in Access en Windows en is geëvolueerd naar ACE in Microsoft Access 2007 voor het ACCDE-databaseformaat
- ActiveX Data Objects ActiveX Data Objects (ADO) (zowel 32-bits als 64-bits versies)
evenals DAO en ADO ontwikkelaars kunnen ook OLE DB en ODBC gebruiken voor het ontwikkelen van native C/C++ programma’ s voor toegang. Voor ADPs en de directe manipulatie van SQL Server-gegevens is ADO vereist., DAO is het meest geschikt voor het beheren van data in Access/Jet databases, en de enige manier om de complexe veldtypes in ACCDB tabellen te manipuleren.
in de database container of navigatiedeelvenster in Access 2007 en latere versies, het systeem automatisch categoriseert elk object op type (bijvoorbeeld, tabel, query, macro). Veel Access-ontwikkelaars gebruiken de leszynski-naamgevingsconventie, hoewel dit niet universeel is; het is een programmeerconventie, geen DBMS-afgedwongen regel. Het is vooral nuttig in VBA waar verwijzingen naar objectnamen niet het gegevenstype aangeven (bijvoorbeeld tbl voor tabellen, qry voor queries).,
ontwikkelaars implementeren Microsoft Access het vaakst voor individuele en werkgroep projecten (de Access 97 snelheid karakterisering werd gedaan voor 32 Gebruikers). Sinds Access 97, en met Access 2003 en 2007, Microsoft Access en hardware zijn aanzienlijk geëvolueerd. Databases van minder dan 1 GB (die nu volledig in RAM passen) en 200 gelijktijdige gebruikers zijn goed binnen de mogelijkheden van Microsoft Access. De prestaties hangen natuurlijk af van het ontwerp en de taken van de database. Schijfintensief werk zoals complex zoeken en bevragen neemt de meeste tijd in beslag.,
omdat gegevens uit een Microsoft Access-database in RAM kunnen worden opgeslagen, kan de verwerkingssnelheid aanzienlijk verbeteren wanneer er slechts één gebruiker is of wanneer de gegevens niet veranderen. In het verleden zorgde het effect van packet latency op het recordvergrendelingssysteem ervoor dat Access databases langzaam op een virtual private network (VPN) of een wide area network (WAN) tegen een Jet-database draaien. Vanaf 2010 hebben breedbandverbindingen dit probleem verzacht., De prestaties kunnen ook worden verbeterd als er gedurende de hele sessie een continue verbinding met de back-end-database wordt onderhouden in plaats van deze voor elke tabeltoegang te openen en te sluiten. Als de toegang tot databaseprestaties via VPN of WAN eronder lijdt, kan een client die gebruik maakt van Extern bureaublad-Protocol (zoals Microsoft Terminal Services) een effectieve oplossing bieden. Toegang tot databases gekoppeld aan SQL Server of toegang tot data projecten werken goed via VPN ’s en Wan’ s.,
In juli 2011 erkende Microsoft een intermitterend query-probleem met alle versies van Access en Windows 7 en Windows Server 2008 R2 als gevolg van de aard van resource management sterk verschillend in nieuwere besturingssystemen. Dit probleem heeft ernstige gevolgen voor query prestaties op zowel Access 2003 en eerder met de Jet Database Engine code, evenals Access 2007 en later met de Access Database Engine (ACE). Microsoft heeft hotfixes kb2553029 voor Access 2007 en KB2553116 voor Access 2010 uitgegeven, maar zal het probleem met Jet 4.0 niet oplossen omdat het uit mainstream ondersteuning is.,
in eerdere versies van Microsoft Access vereiste de mogelijkheid om applicaties te distribueren de aankoop van de Developer Toolkit; in Access 2007, 2010 en Access 2013 wordt de “runtime Only”-versie aangeboden als een gratis download, waardoor de distributie van royalty-vrije applicaties mogelijk is op Windows XP, Vista, 7 en Windows 8.x.
gesplitste databasearchitectuurwerk
Microsoft Access-toepassingen kunnen een gesplitste databasearchitectuur gebruiken., De enkele database kan worden onderverdeeld in een apart “back-end”-bestand dat de gegevenstabellen bevat (gedeeld op een bestandsserver) en een “front-end” (met objecten van de toepassing zoals queries, formulieren, rapporten, macro ‘ s en modules). De “front-end” – Toegangstoepassing wordt gedistribueerd naar het bureaublad van elke gebruiker en gekoppeld aan de gedeelde database. Met behulp van deze aanpak, elke gebruiker heeft een kopie van Microsoft Access (of de runtime-versie) geïnstalleerd op hun machine, samen met hun applicatie-database. Dit vermindert het netwerkverkeer omdat de toepassing niet voor elk gebruik wordt opgehaald., De “front-end” database kan nog steeds lokale tabellen bevatten voor het opslaan van de instellingen van een gebruiker of tijdelijke gegevens. Dit split-database ontwerp maakt ook de ontwikkeling van de applicatie onafhankelijk van de gegevens. Een nadeel is dat gebruikers verschillende wijzigingen kunnen aanbrengen in hun eigen lokale kopie van de applicatie en dit maakt het moeilijk om versiebeheer te beheren. Wanneer een nieuwe versie klaar is, wordt de front-end database vervangen zonder dat dit gevolgen heeft voor de data database. Microsoft Access heeft twee ingebouwde hulpprogramma ‘ s, Database Splitter en Linked Table Manager, om deze architectuur te vergemakkelijken.,
gekoppelde tabellen in Access gebruiken absolute paden in plaats van relatieve paden, dus de ontwikkelomgeving moet ofwel hetzelfde pad hebben als de productieomgeving of een “dynamic-linker” – routine kan in VBA worden geschreven.
voor zeer grote toegangsdatabases kan dit problemen met de prestaties hebben en onder deze omstandigheden moet een SQL-backend worden overwogen. Dit is minder een probleem als de hele database kan passen in het RAM-geheugen van de PC sinds toegang caches gegevens en indexen.,
migratie naar SQL ServerEdit
om toegangstoepassingen naar enterprise-of weboplossingen te schalen, is een mogelijke techniek het migreren naar Microsoft SQL Server of een gelijkwaardige serverdatabase. Een client-server-ontwerp vermindert het onderhoud aanzienlijk en verhoogt de beveiliging, beschikbaarheid, stabiliteit en transactielogging.
Access 2000 through Access 2010 bevatte een functie genaamd de Upsizing Wizard waarmee gebruikers hun databases konden upgraden naar Microsoft SQL Server, een ODBC–client-server-database., Deze functie is verwijderd uit Access 2013. Een extra oplossing, de SQL Server Migration Assistant for Access (SSMA), blijft beschikbaar voor gratis download van Microsoft.
Er zijn verschillende opwaarderingsopties beschikbaar. Na het migreren van de gegevens en query ‘ s naar SQL Server, kan de Toegangsdatabase worden gekoppeld aan de SQL-database. Bepaalde gegevenstypen zijn echter problematisch, met name “Ja / Nee”. In Microsoft Access zijn er drie toestanden voor het ja/nee (True/False) gegevenstype: leeg, no/false (nul) en yes / true (-1)., Het overeenkomstige gegevenstype SQL Server is binair, met slechts twee toestanden, toelaatbare waarden, nul en 1. Hoe dan ook, SQL Server is nog steeds de makkelijkste migratie. Het ophalen van gegevens uit gekoppelde tabellen is geoptimaliseerd voor alleen de records die nodig zijn, maar dit scenario kan minder efficiënt werken dan wat anders optimaal zou zijn voor SQL Server. Bijvoorbeeld, in gevallen waarin Multi-table joins vereisen nog steeds het kopiëren van de hele tabel over het netwerk.,
in eerdere versies van Access, inclusief Access 2010, kunnen databases ook worden geconverteerd naar Access Data Projects (ADP) die direct gekoppeld zijn aan één SQL Server database. Deze functie is verwijderd uit Access 2013. ADP ‘ s ondersteunen de mogelijkheid om direct SQL Server-objecten te maken en te wijzigen, zoals tabellen, weergaven, opgeslagen procedures en SQL Server-beperkingen. De weergaven en opgeslagen procedures kunnen het netwerkverkeer voor multi-table joins aanzienlijk verminderen. SQL Server ondersteunt tijdelijke tabellen en koppelingen naar andere gegevensbronnen buiten de enkele SQL Server-database.,
ten slotte worden sommige Toegangsdatabases volledig vervangen door een andere technologie, zoals ASP.NET of Java zodra de gegevens zijn geconverteerd. Maar elke migratie kan grote inspanning dicteren aangezien de Access SQL taal een krachtiger superset van standaard SQL is. Verder, toegang aanvraagprocedures, of VBA en macro ‘ s, zijn geschreven op een relatief hoger niveau ten opzichte van de momenteel beschikbare alternatieven die zowel robuust en uitgebreid., Merk op dat de Access macro language, waardoor een nog hoger niveau van abstractie dan VBA, aanzienlijk werd verbeterd in Access 2010 en opnieuw in Access 2013.
in veel gevallen bouwen ontwikkelaars directe web-to-data interfaces met gebruik van ASP.NET, terwijl het houden van belangrijke zakelijke automatiseringsprocessen, administratieve en rapportage functies die niet moeten worden gedistribueerd aan iedereen in Access for information workers te onderhouden.
hoewel alle toegangsgegevens direct naar SQL Server kunnen migreren, kunnen sommige query ‘ s niet succesvol migreren., In sommige situaties moet u mogelijk VBA-functies en door de gebruiker gedefinieerde functies Vertalen naar T-SQL-of.net-functies / procedures. Crosstab-query ‘ s kunnen worden gemigreerd naar SQL Server met behulp van de PIVOT-opdracht.