Du kan bruke Access som frontprogram og deretter koble til tabeller på en serverdel, for eksempel SQL Server. Som standard kjører de fleste spørringer lokalt i Access ACE-databasemotoren. I noen tilfeller kan Access kjøre en spørring eksternt på SQL Server, avhengig av SQL-syntaksen og andre faktorer. Hvis du vil ha mer informasjon, kan du se hvitbøker om JET-databasemotor, versjon 3.0: ODBC-tilkobling i gjenoppdagede JET- og ODBC-hvitbøker.
Ofte vil du imidlertid eksplisitt kjøre en spørring på en databaseserver. Du gjør dette for å forbedre ytelsen: databaseservere har større prosessorkraft enn en stasjonær datamaskin, og du kan returnere et mindre delsett med data over nettverkstilkoblingen. Hvis du vil kjøre en spørring på en databaseserver, bruker du en direktespørring som er en Transact SQL (TSQL)-setning som kobler til SQL Server ved hjelp av en ODBC-tilkoblingsstreng. Du kan for eksempel sende en SELECT-setning for å returnere data til et dataark, skjema, en rapport eller en listekontroll, kjøre tilsvarende redigeringsspørringer (DML)-setninger (Data Manipulation Language), kalle lagrede prosedyrer og utføre administrative oppgaver (DDL-setninger (Data Definition Language).
Obs! Resultatene av en direktespørring er skrivebeskyttet. Hvis du vil redigere data direkte i et dataark eller skjema, oppretter du en koblet tabell til en indeksert visning. Hvis du vil ha mer informasjon, kan du se Opprette indekserte visninger.
-
Koble til en serverdatabase.
Hvis du vil ha mer informasjon om hvordan du kobler til SQL Server, kan du se Importere eller koble til data i en SQL Server-database og koble til eller importere data fra en Azure SQL Server-database.
-
Velg Opprett > Spørringsutforming.
-
Lukk om nødvendig dialogboksen Legg til tabeller (Vis tabell i Access.
-
Velg Utforming >direkte.
Access skjuler utformingsrutenettet for spørringen og viser SQL-visning.
-
Hvis egenskapsarket for spørringen ikke vises, trykker du F4 for å vise det.
-
Klikk egenskapsboksen ODBC Connect Str på egenskapssiden, og gjør deretter ett av følgende:
Slik henter du en tilkoblingsstreng:
-
Høyreklikk på en tabell som er koblet til den ønskede datakilden, i navigasjonsruten, og velg Tabellkoblingsbehandling.
-
Merk av for datakilden i dialogboksen Tabellkoblingsbehandling , og velg deretter Rediger.
-
Kopier teksten i boksen Tilkoblingsstreng i dialogboksen Rediger kobling.
-
Velg Bygg .
-
Følg instruksjonene for å opprette en DSN-fil som inneholder informasjon om tilkoblingsstrengen. Hvis du vil ha detaljerte instruksjoner, kan du se Importere eller koble til data i en SQL Server-database og koble til eller importere data fra en Azure SQL Server-database.
Når du har opprettet en DSN-filtilkobling, lagres ODBC-tilkoblingsstrengen internt i Access-databasen. Her er et triks for å få en kopi av denne strengen:
-
Finn et koblet tabellnavn i navigasjonsruten ved hjelp av den ønskede ODBC-tilkoblingen.
-
Trykk CTRL+G. for å åpne VBA Immediate-vinduet.
-
Skriv inn: følgende kode:
?CurrentDb.TableDefs("<table name>").Connect
Men erstatt <tabellnavn> det koblede tabellnavnet fra trinn a.
-
Kopier strengen som returneres til egenskapen ODBC Connect Str .
-
-
Skriv inn spørringen i SQL-visning.
Merk: Det er viktige forskjeller mellom Access SQL og SQL Server TSQL, spesielt med syntaks, funksjonsnavn og funksjonsargumenter. Hvis du vil ha mer informasjon, kan du se Sammenligne Access SQL med SQL Server TSQL.
Tips Bygg TSQL-spørringen i SQL Server Management Studio først, og kopier og lim deretter inn SQL-setningen i SQL-visning. Dette sikrer at spørringen har riktig syntaks. Hvis du ikke har praktisk tilgang til en SQL Server-database, kan du vurdere å installere Microsoft SQL Server Express-utgaven på skrivebordet som støtter opptil 10 GB, og som er en gratis og enklere måte å kjøre gjennom og kontrollere overføringen på.
-
Vurder å angi flere relaterte egenskaper:
-
Returnerer poster Noen SQL-setninger returnerer poster, for eksempel SELECT, og noen returnerer ikke, for eksempel UPDATE. Hvis spørringen returnerer poster, angir du denne egenskapen til Ja. hvis spørringen ikke returnerer poster, angir du denne egenskapen til Nei.
Obs! Direktespørringer kan returnere flere resultatsett, men i en dataark-, skjema-, rapport- eller postsettvariabel brukes bare det første resultatsettet. Hvis du vil hente flere resultatsett, bruker du en lag tabell-spørring som følgende eksempel viser:
SELECT <pass-through query name>.* INTO <local table name> FROM < pass-through query name >
Du må bruke stjernen (*) fordi hvert resultatsett kan ha forskjellige kolonner. Hvert resultatsett lagres i en egen tabell, og tall legges til i de lokale tabellnavnene tilsvarende. Hvis for eksempel tre resultatsett returneres, vil tabellnavnene være: <lokalt tabellnavn>, <lokalt tabellnavn>1, <lokalt tabellnavn>2.
-
Loggmeldinger Angi om du vil returnere meldinger fra SQL-databasen i en Access-meldingstabell. Tabellnavnet har formatet, brukernavnet – nn, der brukernavnet er påloggingsnavnet for gjeldende bruker, og nn er et tall som starter på 00.
-
Tidsavbrudd for ODBC Angi hvor mange sekunder du vil vente før en tidsavbruddsfeil oppstår når en spørring kjøres. Standardverdien er 60 sekunder. Det kan være forsinkelser på grunn av nettverkstrafikk eller tung bruk av databaseserveren.
-
Maksimalt antall poster Angi maksimalt antall poster som skal returneres. Du kan ha begrensede systemressurser, eller du vil teste resultatene med bare en liten mengde data.
-
-
Når du er ferdig med å skrive inn spørringen, velger du Utforming > Kjør. Spørringen sendes til databaseserveren for behandling.