Een Pass Through-query maken

Van toepassing op
Access voor Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

U kunt Access gebruiken als front-endtoepassing en vervolgens een koppeling maken met tabellen op een back-endserver, zoals SQL Server. Standaard worden de meeste query's lokaal uitgevoerd in de Access ACE-database-engine. In sommige gevallen kan een query op afstand worden uitgevoerd in SQL Server, afhankelijk van de SQL-syntaxis en andere factoren. Zie voor meer informatie "JET Database Engine versie 3.0: ODBC Connectivity" in Rediscovered JET and ODBC white papers.

In veel gevallen zult u echter een query expliciet willen uitvoeren op een databaseserver. Dit helpt de prestaties te verbeteren: databaseservers hebben een grotere verwerkingskracht dan een desktopcomputer en u kunt een kleinere subset van de gegevens retourneren via de netwerkverbinding. Als u een query wilt uitvoeren op een databaseserver, gebruikt u een Pass Through-query. Dit is een TSQL-instructie (Transact SQL) die via een ODBC-verbindingsreeks verbinding maakt met SQL Server. 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).

Notitie De resultaten van een Pass Through-query zijn alleen-lezen. Als u gegevens in een gegevensblad of formulier rechtstreeks wilt bewerken, maakt u een tabel die is gekoppeld aan een geïndexeerde weergave. Zie Geïndexeerde weergaven maken voor meer informatie.

  1. Maak verbinding met een serverdatabase.
    Zie Gegevens importeren uit of een koppeling maken naar gegevens in een SQL Server-database en Gegevens koppelen of importeren uit een Azure SQL Server-database voor meer informatie over het koppelen met SQL Server.
  2. SelecteerQueryontwerp maken>.
  3. Sluit indien nodig het dialoogvenster Tabellen toevoegen (Tabel weergeven in Access.
  4. Selecteer Ontwerpdoorvoer>.
    Het queryontwerpraster wordt verborgen en de SQL-weergave wordt weergegeven.
  5. Als het eigenschappenvenster van de query niet wordt weergegeven, drukt u op F4 om dit weer te geven.
  6. Klik in het eigenschappenvenster op het eigenschappenvak ODBC Connect Str en voer een van de volgende handelingen uit:

Ga als volgt te werk om een verbindingsreeks te verkrijgen:

  1. Klik in het navigatiedeelvenster met de rechtermuisknop op een tabel die is gekoppeld aan de gewenste gegevensbron en selecteer Koppelingsbeheer.
  2. Schakel in het dialoogvenster Koppelingsbeheer het selectievakje van de gegevensbron in en selecteer vervolgens Bewerken.
  3. Kopieer in het dialoogvenster Koppeling bewerken de tekst in het vak Verbindingsreeks .
  1. Voer uw query in de SQL-weergave in.
    Opmerking: Er zijn belangrijke verschillen tussen Access SQL en SQL Server TSQL, met name wat betreft 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 vervolgens de SQL in de SQL-weergave. Dit zorgt ervoor dat de syntaxis van de query correct is. Als u niet gemakkelijk toegang hebt tot een SQL Server-database, kunt u overwegen om Microsoft SQL Server Express Edition op uw desktop te installeren. Deze versie ondersteunt maximaal 10 GB en is een gratis en eenvoudigere manier om de migratie uit te voeren en te controleren.

  2. U kunt ook extra gerelateerde eigenschappen instellen:

    • Geeft records als resultaat Sommige SQL-instructies retourneren records, zoals SELECT, en andere niet, zoals UPDATE. Als de query records als resultaat geeft, stelt u deze eigenschap in op Ja. Als de query geen records retourneert, stelt u deze eigenschap in op Nee.
      Notitie Pass Through-query's kunnen meerdere resultaatsets retourneren, maar in een gegevensblad, formulier, rapport of recordsetvariabele wordt alleen de eerste resultatenset gebruikt. Als u meerdere resultaatsets wilt ophalen, gebruikt u een tabelmaakquery , zoals in het volgende voorbeeld te zien is:

      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 nummers worden dienovereenkomstig aan de lokale tabelnamen toegevoegd. Als er bijvoorbeeld drie resultaatsets worden geretourneerd, zijn de namen van de tabel: <naam van> lokale tabel, <naam van>lokale tabel 1, <naam>van lokale tabel 2.

    • Logboekberichten Opgeven 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 met 00.

    • Time-out voor ODBC Het aantal seconden opgeven dat moet worden gewacht voordat een time-outfout optreedt wanneer een query wordt uitgevoerd. De standaardwaarde is 60 seconden. Er kunnen vertragingen zijn vanwege netwerkverkeer of intensief gebruik van de databaseserver.

    • Max Records Geef het maximumaantal records op dat moet worden geretourneerd. Mogelijk hebt u beperkte systeembronnen of wilt u de resultaten testen met slechts een kleine hoeveelheid gegevens.

  3. Wanneer u klaar bent met het invoeren van de query, selecteert u Ontwerpuitvoering>. De query wordt naar de databaseserver verzonden om te worden verwerkt.

Zie ook

Transact-SQL-verwijzing

Query's uitvoeren met Transact-SQL