Opret en pass-through-forespørgsel
Applies ToAccess til Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Du kan bruge Access som et front end-program og derefter oprette en kæde til tabeller på en back end-server, f.eks. SQL Server. Som standard kører de fleste forespørgsler lokalt i Access ACE-databaseprogrammet. I nogle tilfælde kan Access køre en forespørgsel eksternt på SQL Server, afhængigt af SQL-syntaksen og andre faktorer. Du kan finde flere oplysninger under "JET Database Engine Version 3.0: ODBC Connectivity" i Genopdagede JET- og ODBC-hvidbøger.

Du vil dog ofte køre en forespørgsel på en databaseserver eksplicit. Det gør du for at forbedre ydeevnen: Databaseservere har større processorkraft end en stationær computer, og du kan returnere en mindre delmængde af data via netværksforbindelsen. Hvis du vil køre en forespørgsel på en databaseserver, skal du bruge en pass-through-forespørgsel , som er en Transact SQL -sætning (TSQL), der opretter forbindelse til SQL Server ved hjælp af en ODBC-forbindelsesstreng. Du kan f.eks. videregive en SELECT-sætning for at returnere data til et dataark, en formular, en rapport eller et listekontrolelement, køre tilsvarende handlingsforespørgsler (DML-sætninger (Data Manipulation Language), kalde lagrede procedurer og udføre administrative opgaver (DDL-sætninger (Data Definition Language).

Bemærk!    Resultaterne af en pass-through-forespørgsel er skrivebeskyttede. Hvis du vil redigere data direkte i et dataark eller en formular, skal du oprette en sammenkædet tabel til en indekseret visning. Du kan finde flere oplysninger under Opret indekserede visninger.

  1. Opret forbindelse til en serverdatabase.

    Du kan få mere at vide om sammenkædning til SQL Server under Importér eller sammenkæd med data i en SQL Server-database og Sammenkæd med eller importér data fra en Azure SQL Server-database.

  2. Vælg Opret > Forespørgselsdesign.

  3. Hvis det er nødvendigt, skal du lukke dialogboksen Tilføj tabeller (Vis tabel i Access.

  4. Vælg Design >Pass-Through.

    Access skjuler forespørgslens designgitter og viser SQL-visning.

  5. Hvis forespørgslens egenskabsark ikke vises, skal du trykke på F4 for at få det vist.

  6. Klik på egenskabsfeltet ODBC Connect Str på egenskabsarket, og gør derefter et af følgende:

    Sådan henter du en forbindelsesstreng:

    1. Højreklik på en tabel, der er sammenkædet med den ønskede datakilde, i navigationsruden, og vælg Styring af sammenkædede tabeller.

    2. Markér afkrydsningsfeltet for datakilden i dialogboksen Styring af sammenkædede tabeller , og vælg derefter Rediger.

    3. I dialogboksen Rediger link skal du kopiere teksten i feltet Forbindelsesstreng .

    1. Vælg Build Knappen Generator.

    2. Følg instruktionerne for at oprette en DSN-fil, der indeholder oplysninger om forbindelsesstrengen. Hvis du vil have en detaljeret vejledning, skal du se Importere eller oprette en kæde til data i en SQL Server-database og Oprette en kæde til eller importere data fra en Azure SQL Server-database.

    Når du har oprettet en DSN-filforbindelse, gemmes ODBC-forbindelsesstrengen internt i Access-databasen. Her er et trick til at få en kopi af strengen:

    1. Find navnet på en sammenkædet tabel i navigationsruden ved hjælp af den ØNSKEDE ODBC-forbindelse.

    2. Tryk på Ctrl+G. for at åbne VBA-vinduet Brugerudtryk.

    3. Angiv: følgende kode:

      ?CurrentDb.TableDefs("<table name>").Connect

      Men udskift <tabelnavn> navnet på den sammenkædede tabel fra trin a.

    4. Kopiér den streng, der returneres, til egenskaben ODBC Connect Str .

  7. Angiv din forespørgsel i SQL-visning.

    Bemærk: Der er vigtige forskelle mellem Access SQL og SQL Server TSQL, især med syntaks, funktionsnavne og funktionsargumenter. Du kan finde flere oplysninger i Sammenligning af Access SQL og SQL Server TSQL.

    Tip!    Opbyg først TSQL-forespørgslen i SQL Server Management Studio, og kopiér og indsæt derefter SQL'en i SQL-visning. Dette sikrer, at forespørgslen har den korrekte syntaks. Hvis du ikke har nem adgang til en SQL Server-database, kan du overveje at installere Microsoft SQL Server Express-udgaven på din computer, som understøtter op til 10 GB, og som er en gratis og nemmere måde at gennemgå og kontrollere overførslen på.

  8. Overvej at angive yderligere relaterede egenskaber:

    • Returnerer poster     Nogle SQL-sætninger returnerer poster, f.eks. SELECT, og andre gør ikke, f.eks. UPDATE. Hvis forespørgslen returnerer poster, skal du angive denne egenskab til Ja. Hvis forespørgslen ikke returnerer poster, skal du angive denne egenskab til Nej.

      Bemærk!    Pass-through-forespørgsler kan returnere flere resultatsæt, men i et dataark, en formular, en rapport eller en postsætvariabel bruges kun det første resultatsæt. Hvis du vil hente flere resultatsæt, skal du bruge en tabeloprettelsesforespørgsel , som følgende eksempel viser:

      SELECT <pass-through query name>.*
      INTO <local table name>
      FROM < pass-through query name >

      Du skal bruge stjernen (*), da hvert resultatsæt kan have forskellige kolonner. Hvert resultatsæt gemmes i en separat tabel, og tal føjes til de lokale tabelnavne i overensstemmelse hermed. Hvis der f.eks. returneres tre resultatsæt, ville tabelnavnene være: <lokale tabelnavn>, <lokalt tabelnavn>1, <lokalt tabelnavn>2.

    • Logføring af meddelelser    Angiv, om der skal returneres meddelelser fra SQL-databasen i en Access-meddelelsestabel. Tabelnavnet har formatet, brugernavn – nn, hvor brugernavn er logonnavnet for den aktuelle bruger, og nn er et tal, der starter ved 00.

    • ODBC-timeout    Angiv det antal sekunder, der skal ventes, før der opstår en timeoutfejl, når der køres en forespørgsel. Standardværdien er 60 sekunder. Der kan være forsinkelser på grund af netværkstrafik eller stor brug af databaseserveren.

    • Maks. antal poster    Angiv det maksimale antal poster, der skal returneres. Du har muligvis begrænsede systemressourcer, eller du vil teste dine resultater med kun en lille mængde data.

  9. Når du er færdig med at indtaste forespørgslen, skal du vælge Design > Kør. Forespørgslen sendes til databaseserveren til behandling.

Se også

Transact-SQL-reference

Forespørgsel med Transact-SQL

Har du brug for mere hjælp?

Vil du have flere indstillinger?

Udforsk abonnementsfordele, gennemse kurser, få mere at vide om, hvordan du sikrer din enhed og meget mere.

Communities hjælper dig med at stille og besvare spørgsmål, give feedback og høre fra eksperter med omfattende viden.