SQL.REQUEST, funktionen

Noget af det, der står i dette emne, gælder ikke for alle sprog.

Vigtigt: Funktionen SQL.REQUEST understøttes ikke i Microsoft Excel 2010. Excel 2002-tilføjelsesprogrammet: Open Database Connectivity (XLODBC.XLA) understøttes kun i Excel 2002.

I denne artikel beskrives formelsyntaksen for og brugen af funktionen SQL.REQUEST i Excel.

Beskrivelse

Opretter forbindelse til en ekstern datakilde og kører en forespørgsel fra et regneark. Derefter returnerer SQL.REQUEST resultatet som en matrix uden brug af makroprogrammering. Hvis denne funktion ikke er tilgængelig, skal du installere Microsoft Excel ODBC-tilføjelsesprogrammet (XLODBC.XLA). Du kan installere tilføjelsesprogrammet fra webstedet for Microsoft Office.

Syntaks

SQL.REQUEST(forbindelsesstreng;[output_reference];[driver_prompt];[query_tekst];[kolonnenavne_logisk])

Syntaksen for funktionen SQL.REQUEST har følgende argumenter:

  • Forbindelsesstreng     Påkrævet. Angiver oplysninger, f.eks. datakildens navn, bruger-id og adgangskoder, som kræves af den driver, der bruges til at oprette forbindelse til en datakilde. Strengen skal være i overensstemmelse med driverens format. I nedenstående tabel vises tre eksempler på en forbindelsesstreng til tre drivere.

Driver

Forbindelsesstreng

dBASE

DSN=NWind;PWD=test

SQL Server

DSN=MinServer;UID=dbayer; PWD=123;Database=Pubs

ORACLE

DNS=Min Oracle Datakilde;DBQ=MINSER VER;UID=JohnS;PWD=Finans

  • Du skal definere datakildenavnet (DSN), som bruges i forbindelsesstreng, før du forsøger at tilslutte dig det.

  • Du kan indtaste forbindelsesstreng som en matrix eller som en streng. Hvis forbindelsesstreng er på mere end 250 tegn, skal du indtaste den som en matrix.

  • Hvis SQL.REQUEST ikke kan få adgang til datakilden ved brug af forbindelsesstreng, returnerer den fejlværdien #I/T.

  • Output_reference     Valgfrit. En reference til den celle, hvor den fulde forbindelsesstreng skal placeres. Hvis du skriver SQL.REQUEST i et regneark, ignoreres output_reference.

    • Brug output_reference, når SQL.REQUEST skal returnere den fulde forbindelsesstreng. (Du skal i så fald indtaste SQL.REQUEST i et makroark).

    • Hvis du udelader output_reference, returnerer SQL.REQUEST ikke en fuld forbindelsesstreng.

  • Driver_prompt     Valgfrit. Angiver, hvornår driverens dialogboks vises, og hvilke indstillinger der er tilgængelige. Brug et af de tal, som er angivet i nedenstående tabel. Hvis driver_prompt er udeladt, bruger SQL.REQUEST som standard 2.

Driver_prompt

Beskrivelse

1

Driverens dialogboks vises altid.

2

Driverens dialogboks vises kun, hvis de oplysninger, som er tilvejebragt med forbindelsesstreng, og datakildeangivelsen ikke er tilstrækkelige til at oprette forbindelse. Alle dialogboksindstillinger er tilgængelige.

3

Driverens dialogboks vises kun, hvis de oplysninger, som er tilvejebragt med forbindelsesstreng, og datakildeangivelsen ikke er tilstrækkelige til at oprette forbindelse. Dialogboksens indstillinger er nedtonet og ikke tilgængelige, hvis de ikke kræves.

4

Driverens dialogboks vises ikke. Hvis der ikke kan oprettes forbindelse, returneres en fejl.

  • Query_tekst     Valgfrit. Den SQL-sætning, du vil køre på datakilden.

    • Hvis SQL.REQUEST ikke kan udføre query_tekst for den angivne datakilde, returneres fejlværdien #I/T.

    • Du kan opdatere en forespørgsel ved at sammenkæde referencer i query_tekst. I nedenstående eksempel bruger SQL.REQUEST den nye værdi til at opdatere forespørgslen, hver gang $A$3 ændres.

"SELECT Name FROM Customers WHERE Balance > "&$A$3&"".

Strenge kan højst være på 255 tegn. Hvis query_tekst er længere, skal du indtaste forespørgslen i et lodret celleområde og bruge hele området som query_tekst. Celleværdierne sammenkædes, så de udgør den fuldstændige SQL-sætning.

  • Kolonnenavne_logisk     Valgfrit. Angiver, om kolonnenavne skal returneres som den første række af resultaterne. Angiv dette argument til SAND, hvis kolonnenavnene skal returneres som den første række af resultaterne. Brug FALSK, hvis kolonnenavnene ikke skal returneres. Hvis kolonnenavne_logisk udelades, returnerer SQL.REQUEST ikke kolonnenavne.

Returværdi

  • Hvis denne funktion afslutter alle sine handlinger, returneres en matrix med forespørgselsresultater eller antallet af rækker, som er blevet påvirket af forespørgslen.

  • Hvis SQL.REQUEST ikke kan få adgang til datakilden ved hjælp af forbindelsesstreng, returneres fejlværdien #I/T.

Bemærkninger

  • SQL.REQUEST kan indtastes som en matrix. Når du indtaster SQL.REQUEST som en matrix, returneres en matrix, som passer til området.

  • Hvis celleområdet er større end resultatsættet, tilføjer SQL.REQUEST tomme celler til den returnerede matrix, så matrixen får til den nødvendige størrelse.

  • Hvis resultatsættet er større end det område, der er indtastet som en matrix, returnerer SQL.REQUEST hele matrixen.

  • Argumenterne for SQL.REQUEST forekommer i en anden rækkefølge end argumenterne for funktionen SQLRequest i Visual Basic for Applications.

Eksempel

Antag, at du foretager en forespørgsel i en dBASE-database med navnet DBASE4. Når du indtaster nedenstående formel i en celle, returneres en matrix med forespørgselsresultater, hvor den første række er kolonnenavnene.

SQL.REQUEST("DSN=NWind;DBQ=c:\msquery;FIL=dBASE4", c15, 2, "Select Custmr_ID, Due_Date from Orders WHERE order_Amt>100", TRUE)

Del Facebook Facebook Twitter Twitter Mail Mail

Var disse oplysninger nyttige?

Fantastisk! Har du mere feedback?

Hvordan kan vi forbedre det?

Tak for din feedback!

×