Print side | Luk vindue

Avend kriterie fra excel i SQL

Udskrevet fra: Dansk Regneark Forum
Kategori: Hjælp til regneark.
Forum navn: Generelt
Forum beskrivelse: Hjælp til generel daglig brug af programmet Excel
Web-adresse: https://forum.excel-regneark.dk/forum_posts.asp?TID=2961
Udskrevet den: 28.Apr.2024 kl. 01:47


Emne: Avend kriterie fra excel i SQL
Besked fra: tommyhermann
Emne: Avend kriterie fra excel i SQL
Posteringsdato: 01.Mar.2017 kl. 13:41
uploads/1831/kriterie.wmv" rel="nofollow - uploads/1831/kriterie.wmv
Vil gerne benytte kritere fra excel i en sql kode. Er det muligt.  Se vedhæftede video.



Svar:
Besked fra: EXCELGAARD
Posteringsdato: 02.Mar.2017 kl. 07:58
Well, jeg ved ikke om det er muligt direkte i en SQL kommando, at henvise til en celle, men jeg plejer, at oprette mine SQL forespørgsler i VBA, og så er det jo ingen sag  Smile

Så, hvis du opretter din SQL forespørgsel i VBA kan du jo blot henvise til cellen i VBA koden  Geek


-------------
Husk, at trykke på [Tak], hvis du kan lide et indlæg.
Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.


Besked fra: tommyhermann
Posteringsdato: 02.Mar.2017 kl. 12:02
kan du prøve at lægge en kode herind som eksempel. Helst et simpel eksempel.


Besked fra: EXCELGAARD
Posteringsdato: 03.Mar.2017 kl. 08:06
Ja, jeg prøver lige, at finde tid tid til at digte noget op i weekenden...


-------------
Husk, at trykke på [Tak], hvis du kan lide et indlæg.
Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.


Besked fra: EXCELGAARD
Posteringsdato: 05.Mar.2017 kl. 12:39
Fik ikke tid, til at lave et komplet eksempel til download  Unhappy

Men, i bund og grund er det ikke svært...

Hvis du, i din makro/VBA kode, har defineret din SQL kommando i en variabel, f.eks.
QueryCommand = QueryCommand & "Select * From 'Tabel' "
QueryCommand = QueryCommand & "Where 'Dato' = {ts 2017-03-05} "
...og, du ønsker datoen hentet fra celle A1 i det aktive regneark, skal du blot udskifte det 'hardcoded' kriterie med en reference til cellen:
QueryCommand = QueryCommand & "Select * From 'Tabel' "
QueryCommand = QueryCommand & "Where 'Dato' = {ts " & Format(ActiveSheet.Range("A1").Value, "yyyy-mm-dd") & "} "

Men, emnet er måske værd, at lave en lille artikel om på min hjemmeside - der er jo 'opdateringssøndag' på næste søndag Smile


-------------
Husk, at trykke på [Tak], hvis du kan lide et indlæg.
Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.


Besked fra: tommyhermann
Posteringsdato: 14.Apr.2017 kl. 08:13
Tak for forklaring. Jeg har nu lavet min første SQL udtræk via VBA.
Ulempen ved metoden fremfor at lave dem i Studio management er dog at de er frygtelige langsomme via VBA. Såfremt der skal trækkes store datamængder ud, så forestrækker jeg studio management.


Besked fra: EXCELGAARD
Posteringsdato: 14.Apr.2017 kl. 13:02
Velbekomme  Smile

Jeg har svært ved at se, hvorfor det skulle være langsommere via VBA, da det jo er SQL databasen, der laver alt arbejdet???

Med mindre, du har "glemt" at sætte applikationen "på pause", mens du laver udtrækket  Geek

Du ved:
With Application
      .Cursor = xlWait
      .EnableEvents = False
      .DisplayAlerts = False
      .ScreenUpdating = False
      .Calculation = xlCalculationManual
End With
...og, så, selvfølgelig, tilbage igen, når din makro er færdig Wink

Hvis du ikke sætter applikationen "på pause", mens du laver udtrækket, vil Excel jo stå og beregne på alt, mens der importeres (og, så er det igen ikke VBA, der er synderen, men selve Excel).


-------------
Husk, at trykke på [Tak], hvis du kan lide et indlæg.
Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.



Print side | Luk vindue