25. oktober 2005 - 11:36Der 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?
I lang tid har samarbejdsbranchen fokuseret på at forbedre enhedsfunktioner – bedre kameraer, klarere lyd og smartere software. Men den virkelige forvandling handler ikke om funktioner.
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
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
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":
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.
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
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 :-)
Synes godt om
Ny brugerNybegynder
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.