Avatar billede thomashol Nybegynder
25. oktober 2005 - 11:36 Der er 8 kommentarer og
1 løsning

Ændre dato i MS query forespørgsel

Jeg her i forbindelse med mit arbejde ofte brug for at hente data ud fra en database. Det er heller ikke noget problem og det virker fint. Men det er belastende at man skal skrive tingene ind manuelt i query hver gang man skal trække data. Jeg vil derfor gerne kunne skrive datoen i et felt i Excel som Query så trækker datoen fra. Kan det lade sig gøre og hvordan?

hilsen
Thomas
Avatar billede stewen Praktikant
25. oktober 2005 - 11:57 #1
Det kan kun lade sig gøre med VBA! Kender du til VBA?
Avatar billede thomashol Nybegynder
25. oktober 2005 - 12:22 #2
Det er i orden at det kører i en makro, jeg har allerede prøvet at se om det kunne lade sig gøre men jeg kunne ikke få den til at acceptere det felt jeg prøvede at referere til.

Jeg prøvede at indspille en makro og der får jeg jo følgende kriterie frem

(DATABASE.DATO={ts '2005-10-01 00:00:00'})

Men jeg kan ikke lige finde ud af hvordan den skal ændres for at jeg kan få den til at referere til et felt hvor jeg feks kunne skriver >=01-10-2005 og <=31-10-2005 altså noget som virker hvis jeg skriver det i query

Håber du kan hjælpe.

hilsen
Thomas
Avatar billede stewen Praktikant
25. oktober 2005 - 12:36 #3
Du kunne f.eks. navngive en celle "Datofelt" (bemærk at du skal formatere cellen til åååå-mm-dd)

så retter du i din makro så den ser således ud:

(DATABASE.DATO={ts '" & [Datofelt] & " 00:00:00'})

Det skulle gerne virke!
Avatar billede thomashol Nybegynder
25. oktober 2005 - 12:54 #4
Det lyder rigtigt jeg har lige prøvet det, men det virkede ikke helt. Når jeg kører makroen som jeg indspillede så kommer jeg til en af de sidste linier hvor der står

.Refresh BackgroundQuery:=True

her melder den fejl. Der må altså være noget som ikke var som det skulle være i selve forespørgslen

Thomas
Avatar billede stewen Praktikant
25. oktober 2005 - 13:33 #5
Hvis din makro virkede inden du ændrede som beskrevet, så er det lidt underligt! Det det kan være er dit "Datofelt" - prøv i en tilfældig celle at indtaste en dato! Herefter indsætter du følgende formel i den celle du har kaldt "Datofelt":

=tekst('Din celle med dato';"åååå-mm-dd")
Avatar billede thomashol Nybegynder
25. oktober 2005 - 14:16 #6
Nu virker det, så skal jeg bare have det tilpasset så vi kan bruge det generelt i vores UDBC udtræk, men det tror jeg godt jeg kan finde ud af at få lavet. Tak for hjælpen.

Hilsen
Thomas
Avatar billede stewen Praktikant
25. oktober 2005 - 14:20 #7
det må betyde svar herfra
Avatar billede bak Forsker
25. oktober 2005 - 16:07 #8
Det kan også laves uden VBA
Når du er inde i msquery tilvælger du criteria under View.
I kriterierne vælger du dit datofelt og under dit datofelt skriver du
Between [Startdato] and [slutdato] 
(husk de kantede paranteser, da det er dem der gør dette til en parameterquery)
Under filer vælger du at returnere data til excel.
Tilbage på arket kommer der nu en importbox.
Her vælger du parametre .
Du kan nu vælge om du vil promptes for parametrene (datoerne) eller query skal tage dem fra celler i arket
Du vælger så de celler som parametrene skal hentes fra.
Bemærk at der er en lille afkrydsningsboks hvor man kan fortælle om queryen skal refreshes når værdierne i cellerne ændres. Tilvælg kun den ene og tryk OK og sæt data på arket.

Hver gang den ene celle med dato ændres køres /refreshes queryen
Avatar billede stewen Praktikant
25. oktober 2005 - 18:05 #9
Damn - altid rart at blive klogere!

Nu har jeg de sidste 4-5 år brugt den VBA løsningen (som selvfølgelig virker, også med refresh efter ændret dato), men som virker som overkill, i forhold til Bak's løsning! Nu har jeg dog mange forskellige odbc-træk, og med vba'en er det forholdsvist nemt at ændre enkelte kriterier...

Omvendt giver VBA'en andre fordele... men godt indslag :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester