Noe av innholdet i dette emnet gjelder kanskje ikke alle språk.
Kobler til en ekstern datakilde, og foretar en spørring fra et regneark. SQL.REQUEST vil da returnere resultatet som en matrise, uten behov for makroprogrammering. Hvis denne funksjonen ikke er tilgjengelig, må du installere tillegget Microsoft Excel ODBC (Xlodbc.xla). Du kan installere tillegget fra webområdet for Microsoft Office.
Syntaks
SQL.REQUEST(kobling; utdatareferanse; driver_ledetekst; spørring; kolonnenavn)
Kobling er en koblingsstreng som bidrar med informasjon som driveren trenger for å koble seg opp mot en datakilde. Denne informasjonen kan bestå av datakildenavn, bruker ID og passordKobling, og den må følge driverens format. Den følgende tabellen gir tre eksempler på koblingsstrenger for tre drivere.
Driver | Kobling |
---|---|
dBASE | DSN=NWind;PWD=test |
SQL Server | DSN=MinServer;UID=dbayer;PWD=123;Database=Pubs |
ORACLE | DNS=Min Oracle-datakilde;DBQ=MYSER VER; UID=JohnS;PWD=Sesam |
-
Du må definere datakildenavnet (DSN), som blir brukt i kobling, før du prøver å oppnå kontakt.
-
Du kan taste inn kobling som en matrise eller en streng. Hvis kobling er på mer enn 250 tegn, må du taste den inn som en matrise.
-
Hvis SQL.REQUEST ikke klarer å koble seg opp med kobling, returneres feilverdien #I/T.
Utdatareferanse er en referanse til cellen hvor du vil ha den ferdige koblingsstrengen plassert. Hvis du skriver SQL.REQUEST på et regneark, blir Utdatareferanse ignorert.
-
Bruk utdatareferanse når du vil at SQL.REQUEST skal returnere den ferdige koblingsstrengen (i dette tilfellet må du skrive SQL.REQUEST på et makroark).
-
Hvis du utelater utdatareferanse, returnerer ikke SQL.REQUEST kobling.
Driver_ledetekst spesifiserer når driverdialogboksen vises, og hvilke alternativer som er tilgjengelige. Bruk ett av tallene i den følgende tabellen. Hvis driver_ledetekst er utelatt, bruker SQL.REQUEST tallet 2.
Stasjonsbokstav | Beskrivelse |
---|---|
1 | Driverdialogboksen blir alltid vist. |
2 | Driverdialogboksen blir bare vist hvis informasjonen fra forbindelsesstrengen og datakildespesifikasjonene ikke er tilstrekkelig til å gjennomføre forbindelsen. Alle dialogboksvalgene er tilgjengelige. |
3 | Driverdialogboksen blir bare vist hvis informasjonen fra forbindelsesstrengen og datakildespesifikasjonene ikke er tilstrekkelig til å gjennomføre forbindelsen. Dialogboksvalgene er nedtonet og utilgjengelige hvis de ikke er nødvendige. |
4 | Dialogboksen blir ikke vist. Hvis forbindelsen ikke kommer opp, returneres en feilmelding. |
-
Hvis SQL.REQUEST ikke kan utføre spørring i den angitte datakilden, returneres feilverdien #I/T.
-
Du kan oppdatere en spørring ved å kjede sammen referanser i spørring. I det følgende eksempelet bruker SQL.REQUEST den nye verdien til å oppdatere spørringen hver gang $A$3 endres.
"SELECT Navn FROM Kunderegisteret WHERE Balanse > "&$A$3&"".
Microsoft Excel begrenser strengene til maksimum 255 tegn. Hvis spørring overskrider 255 tegn, må du skrive inn spørringen i et loddrett celleområde, og bruke hele området som spørring. Verdiene i cellene blir kjedet sammen til å bli det fullstendige SQL-utsagnet.
Kolonnenavn indikerer hvorvidt kolonnenavn blir returnert som første rad i resultatet. La dette argumentet være SANN hvis du vil at kolonnenavnene skal returneres i den første raden i resultatet. Bruk USANN hvis du ikke vil ha kolonnenavnene returnert. Hvis kolonnenavn er utelatt, returnerer ikke SQL.REQUEST kolonnenavnene.
Retur Verdi
- Hvis funksjonen avslutter alle oppgavene, returneres en matrise med spørringsresultater, eller antall rader som ble omfattet av spørringen.
- Hvis SQL.REQUEST ikke har tilgang til datakilden ved hjelp av kobling, returneres feilverdien #I/T.
Kommentarer
- SQL.REQUEST kan tastes inn som en matrise. Når du taster inn SQL.REQUEST som en matrise, returnerer den en matrise som passer inn i området.
- Hvis celleområdet er større enn resultatsettet, legger SQL.REQUEST tomme celler til resultatmatrisen for å øke den til den nødvendige størrelsen.
- Hvis resultatsettet er større enn det ønskede området du tastet inn som en matrise, returnerer SQL.REQUEST hele matrisen.
- Argumentene til SQL.REQUEST kommer i en annen rekkefølge enn argumentene til funksjonen SqlRequest i Visual Basic.
Eksempel
La oss si du vil lage en spørring til en dBASE-database med navnet DBASE4. Når du skriver inn den følgende formelen i en celle, returneres en matrise med spørringsresultater hvor den første raden er kolonnenavn.
SQL.REQUEST("DSN=NWind;DBQ=c:\msquery;FIL=dBASE4", c15, 2,
"Select Custmr_ID, Due_Date from Orders WHERE order_Amt>100", TRUE)