Opret en pass-through-forespørgsel

Du kan bruge Access som et front end-program og derefter linke til tabeller i 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 i "JET Database Engine Version 3.0: ODBC Connectivity" i White papers (JET og ODBC) i Genopdagede JET- og ODBC-dokumenter.

Ofte vil du dog køre en forespørgsel eksplicit på en databaseserver. 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. For example, you can pass a SELECT statement to return data to a dataheet, form, report or list control, run the equivalent of action queries (Data Manipulation Language (DML) statements), call stored procedures, and perform administrative tasks (Data Definition Language (DDL) statements).

Bemærk!    Resultaterne af en gennemløbsforespørgsel er skrivebeskyttede. Hvis du vil redigere dataene direkte i et dataark eller en formular, skal du oprette en sammenkædet tabel til en indekseret visning. Du kan finde flere oplysninger i Oprette indekserede visninger.

  1. Oprette forbindelse til en serverdatabase.

    Du kan finde flere oplysninger om sammenkædning til SQL Server i Importér eller opret en kæde til data i en SQL Server-database, og Sammenkæd til 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 2013.

  4. Vælg Design >Pass-Through.

    Access skjuler forespørgselsdesigngitteret 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 får du en forbindelsesstreng:

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

    2. I dialogboksen Tilknyttede tabelstyring skal du markere afkrydsningsfeltet for datakilden og derefter vælge 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 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 Din Access-database. Her er et trick til at få en kopi af den pågældende streng:

    1. Find et sammenkædet tabelnavn i navigationsruden ved hjælp af den ønskede ODBC-forbindelse.

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

    3. Angiv: følgende kode:

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

      Men erstat <med det sammenkædede tabelnavn> det sammenkædede tabelnavn fra trin a.

    4. Kopiér strengen, 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 direkte adgang til en SQL Server-database, kan du overveje at installere Microsoft SQL Server Express-versionen på din computer, som understøtter op til 10 GB, og som er en gratis og nemmere måde at gennemgå og kontrollere din overførsel på.

  8. Overvej at angive yderligere relaterede egenskaber:

    • Returnerer poster     Nogle SQL-sætninger returnerer poster, f.eks. SELECT, og andre returnerer 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!    Gennemløbsforespørgsler kan returnere flere resultatsæt, men i en dataark-, formular-, rapport- eller postsætvariabel bruges kun det første resultatsæt. Hvis du vil hente flere resultatsæt, skal du bruge en tabelforspørgsel som vist i følgende eksempel:

      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 tilsvarende. Hvis der f.eks. returneres tre resultatsæt, er tabelnavnene: <lokalt tabelnavn> <det lokale tabelnavn>1, <det lokale tabelnavn>2.

    • Logfør meddelelser    Angiv, om der skal returneres meddelelser fra SQL-databasen i en tabel med Access-meddelelser. Tabelnavnet har formatet, brugernavn – nn, hvor brugernavn er den aktuelle brugers logonnavn, og nn er et tal, der starter ved 00.

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

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

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

Se også

Transact-SQL-https://docs.microsoft.com/en-us/sql/t-sql/language-reference?view=sql-server-2017

Forespørgsel med Transact-SQL-https://mva.microsoft.com/en-US/training-courses/querying-with-transactsql-10530?l=TjT07f87_9804984382

Har du brug for mere hjælp?

Udvid dine færdigheder
Gå på opdagelse i kurser
Få nye funktioner først
Deltag i Microsoft insiders

Var disse oplysninger nyttige?

Hvor tilfreds er du med kvaliteten af oversættelsen?
Hvad påvirkede din oplevelse?

Tak for din feedback!

×