Du kan använda Access som ett frontend-program och sedan länka till tabeller på en backend-server, till exempel SQL Server. Som standard körs de flesta frågor lokalt i Access ACE-databasmotorn. I vissa fall kan Access fjärrköra en fråga på SQL Server, beroende på SQL-syntaxen och andra faktorer. Mer information finns i "JET Database Engine Version 3.0: ODBC Connectivity" i återupptäckta faktablad om JET och ODBC.
Ofta vill du dock uttryckligen köra en fråga på en databasserver. Du gör detta för att förbättra prestanda: databasservrar har större processorkraft än en stationär dator och du kan returnera en mindre delmängd data via nätverksanslutningen. Om du vill köra en fråga på en databasserver använder du en direktfråga som är en Transact SQL-instruktion (TSQL) som ansluter till SQL Server genom att använda en ODBC-anslutningssträng. Du kan till exempel skicka ett SELECT-uttryck för att returnera data till ett datablad, ett formulär, en rapport eller en listkontroll, köra motsvarande redigeringsfrågor (DML-satser (Data Manipulation Language), anropa lagrade procedurer och utföra administrativa uppgifter (DDL-satser (Data Definition Language )).
Anteckning Resultatet av en direktfråga är skrivskyddat. Om du vill redigera data direkt i ett datablad eller formulär skapar du en länkad tabell till en indexerad vy. Mer information finns i Skapa indexerade vyer.
- Ansluta till en serverdatabas.
Mer information om hur du länkar till SQL Server finns i Importera eller länka till data i en SQL Server-databas och Länka till eller importera data från en Azure SQL Server-databas. - Välj Skapa>frågedesign.
- Om det behövs stänger du dialogrutan Lägg till tabeller (Visa tabell i Access.
- VäljDesigngenomströmning>.
Access döljer frågerutnätet och visar SQL-vyn. - Om frågans egenskapslista inte visas trycker du på F4 för att visa den.
- Klicka i egenskapsrutan ODBC Connect Str på egenskapssidan och gör sedan något av följande:
Så här hämtar du en anslutningssträng:
- I navigeringsfönstret högerklickar du på en tabell som är länkad till önskad datakälla och väljer Länkhanteraren.
- I dialogrutan Länkhanteraren markerar du kryssrutan för datakällan och väljer sedan Redigera.
- Kopiera texten i rutan Anslutningssträng i dialogrutan Redigera länk.
Ange frågan i SQL-vyn.
Notera: Det finns viktiga skillnader mellan Access SQL och SQL Server TSQL, särskilt vad gäller syntax, funktionsnamn och funktionsargument. Mer information finns i Jämförelse av SQL i Access med T-SQL för SQL Server.
Tips Skapa först TSQL-frågan i SQL Server Management Studio och kopiera och klistra sedan in SQL-koden i SQL-vyn. På så sätt säkerställer du att frågan har rätt syntax. Om du inte har tillgång till en SQL Server-databas kan du installera Microsoft SQL Server Express Edition på skrivbordet som stöder upp till 10 GB och är ett kostnadsfritt och enklare sätt att gå igenom och kontrollera migreringen.Överväg att ange ytterligare relaterade egenskaper:
Returnerar poster En del SQL-uttryck returnerar poster, till exempel SELECT, och andra gör det inte, till exempel UPDATE. Om frågan returnerar poster anger du Ja för den här egenskapen. Om frågan inte returnerar poster anger du No för den här egenskapen.
Anteckning Direktfrågor kan returnera flera resultatuppsättningar, men i ett datablad, formulär, en rapport eller en postmängdsvariabel används bara den första resultatuppsättningen. Om du vill hämta flera resultatuppsättningar använder du en tabellfråga som visas i följande exempel:SELECT <pass-through query name>.* INTO <local table name> FROM < pass-through query name >Du måste använda asterisken (*) eftersom varje resultatuppsättning kan ha olika kolumner. Varje resultatuppsättning sparas i en separat tabell och siffror läggs till i de lokala tabellnamnen i enlighet med detta. Om till exempel tre resultatuppsättningar returneras skulle tabellnamnen vara: <lokalt tabellnamn>, <lokalt tabellnamn>1, <lokalt tabellnamn>2.
Logga meddelanden Ange om meddelanden från SQL-databasen ska returneras i en Access-meddelandetabell. Tabellnamnet har formatet användarnamn – nn, där användarnamn är inloggningsnamnet för den aktuella användaren och nn är ett tal som börjar på 00.
ODBC-tidsgräns Ange hur många sekunder som ska förflyta innan tidsgränsen anges när en fråga körs. Standardvärdet är 60 sekunder. Fördröjningar kan uppstå på grund av nätverkstrafik eller hög belastning på databasservern.
Max antal poster Ange det högsta antalet poster som ska returneras. Du kanske har begränsade systemresurser eller vill testa resultaten med bara en liten mängd data.
När du har angett klart frågan väljer du Designkörning>. Frågan skickas till databasservern för bearbetning.
