U kunt Access gebruiken als een front-endtoepassing en vervolgens een koppeling maken naar tabellen in een back-endserver, zoals SQL Server. De meeste query's worden standaard lokaal uitgevoerd in de Access ACE-database-engine. In sommige gevallen kan Access een query op afstand uitvoeren op SQL Server, afhankelijk van de SQL-syntaxis en andere factoren. Zie 'JET Database Engine Version 3.0: ODBC Connectivity' in Herontdekte JET- en ODBC-whitepapers voor meer informatie.
Vaak wilt u echter expliciet een query uitvoeren op een databaseserver. U doet dit om de prestaties te verbeteren: databaseservers hebben meer verwerkingskracht dan een desktopcomputer en u kunt een kleinere subset gegevens retourneren via de netwerkverbinding. Als u een query wilt uitvoeren op een databaseserver, gebruikt u een Pass Through-query die een Transact SQL-instructie (TSQL) is die verbinding maakt met SQL Server met behulp van een ODBC-verbindingsreeks. U kunt bijvoorbeeld een SELECT-instructie doorgeven om gegevens te retourneren naar een gegevensblad, formulier, rapport of lijstbesturingselement, het equivalent van actiequery's uitvoeren (DML-instructies(Data Manipulation Language), opgeslagen procedures aanroepen en beheertaken uitvoeren (DDL-instructies (Data Definition Language).
Opmerking De resultaten van een passthrough-query zijn alleen-lezen. Als u gegevens rechtstreeks in een gegevensblad of formulier wilt bewerken, maakt u een gekoppelde tabel aan een geïndexeerde weergave. Zie Geïndexeerde weergaven maken voor meer informatie.
-
Maak verbinding met een serverdatabase.
Zie Gegevens in een SQL Server-database importeren of koppelen aan gegevens in een SQL Server-database en Gegevens koppelen aan of importeren uit een Azure SQL Server-database voor meer informatie over het koppelen aan SQL Server.
-
Selecteer Maken > Queryontwerp.
-
Sluit zo nodig het dialoogvenster Tabellen toevoegen (Tabel weergeven in Access.
-
Selecteer Ontwerpen >Pass-Through.
In Access wordt het queryontwerpraster verborgen en wordt de SQL-weergave weergegeven.
-
Als het eigenschappenvenster van de query niet wordt weergegeven, drukt u op F4 om het weer te geven.
-
Klik in het eigenschappenvenster op het eigenschappenvak ODBC Connect Str en voer een van de volgende handelingen uit:
Een verbindingsreeks ophalen:
-
Klik in het navigatiedeelvenster met de rechtermuisknop op een tabel die is gekoppeld aan de gewenste gegevensbron en selecteer Gekoppeld tabelbeheer.
-
Schakel in het dialoogvenster Gekoppeld tabelbeheer het selectievakje van de gegevensbron in en selecteer bewerken.
-
Kopieer in het dialoogvenster Koppeling bewerken de tekst in het vak Verbindingsreeks .
-
Selecteer Build .
-
Volg de aanwijzingen om een DSN-bestand te maken dat de verbindingsreeksgegevens bevat. Zie Gegevens importeren of koppelen in een SQL Server-database en Gegevens koppelen aan of importeren uit een Azure SQL Server-database voor gedetailleerde stappen.
Nadat u een DSN-bestandsverbinding hebt gemaakt, wordt de ODBC-verbindingsreeks intern opgeslagen in uw Access-database. Hier volgt een truc om een kopie van die tekenreeks op te halen:
-
Zoek een gekoppelde tabelnaam in het navigatiedeelvenster met behulp van de gewenste ODBC-verbinding.
-
Druk op Ctrl+G. om het venster VBA Direct te openen.
-
Voer in: de volgende code:
?CurrentDb.TableDefs("<table name>").Connect
Vervang echter <tabelnaam> de naam van de gekoppelde tabel uit stap a.
-
Kopieer de tekenreeks die wordt geretourneerd naar de eigenschap ODBC Connect Str .
-
-
Voer uw query in de SQL-weergave in.
Opmerking: Er zijn belangrijke verschillen tussen Access SQL en SQL Server TSQL, met name met syntaxis, functienamen en functieargumenten. Zie voor meer informatie Access SQL vergelijken met SQL Server TSQL.
Tip Bouw eerst de TSQL-query in SQL Server Management Studio en kopieer en plak de SQL vervolgens in de SQL-weergave. Dit zorgt ervoor dat de query de juiste syntaxis heeft. Als u geen handige toegang hebt tot een SQL Server-database, kunt u overwegen microsoft SQL Server Express-editie op uw bureaublad te installeren. Deze biedt ondersteuning voor maximaal 10 GB en is een gratis en eenvoudigere manier om uw migratie uit te voeren en te controleren.
-
Overweeg aanvullende gerelateerde eigenschappen in te stellen:
-
Records retourneren Sommige SQL-instructies retourneren records, zoals SELECT, en andere niet, zoals UPDATE. Als de query records retourneert, stelt u deze eigenschap in op Ja; als de query geen records retourneert, stelt u deze eigenschap in op Nee.
Opmerking Passthrough-query's kunnen meerdere resultatensets retourneren, maar in een gegevensblad-, formulier-, rapport- of recordsetvariabele wordt alleen de eerste resultatenset gebruikt. Als u meerdere resultatensets wilt ophalen, gebruikt u een tabelmaakquery , zoals in het volgende voorbeeld wordt weergegeven:
SELECT <pass-through query name>.* INTO <local table name> FROM < pass-through query name >
U moet het sterretje (*) gebruiken omdat elke resultatenset verschillende kolommen kan hebben. Elke resultatenset wordt opgeslagen in een afzonderlijke tabel en getallen worden dienovereenkomstig toegevoegd aan de lokale tabelnamen. Als er bijvoorbeeld drie resultatensets worden geretourneerd, zijn de tabelnamen: <lokale tabelnaam>, <lokale tabelnaam>1, <lokale tabelnaam>2.
-
Logboekberichten Geef op of berichten uit de SQL-database in een Access-berichtentabel moeten worden geretourneerd. De tabelnaam heeft de notatie gebruikersnaam - nn, waarbij gebruikersnaam de aanmeldingsnaam is voor de huidige gebruiker en nn een getal is dat begint bij 00.
-
ODBC-time-out Geef het aantal seconden op dat moet worden gewacht voordat er een time-outfout optreedt wanneer een query wordt uitgevoerd. De standaardwaarde is 60 seconden. Er kunnen vertragingen optreden als gevolg van netwerkverkeer of intensief gebruik van de databaseserver.
-
Maximum aantal records Geef het maximum aantal records op dat moet worden geretourneerd. Mogelijk hebt u beperkte systeembronnen of wilt u uw resultaten testen met slechts een kleine hoeveelheid gegevens.
-
-
Wanneer u klaar bent met het invoeren van de query, selecteert u Ontwerpen > Uitvoeren. Uw query wordt voor verwerking naar de databaseserver verzonden.