Avatar billede johandysatan Novice
19. marts 2013 - 13:09 Der er 6 kommentarer og
1 løsning

Excel MS Query opslag i SQL database

Hej
Jeg vil gerne hente data fra en SQL database over i Excel. Jeg bruger MS Query og kan lave følgende opslag uden problemer:

SELECT TABEL1.ID_Nummer
FROM TABEL1.TABEL1
WHERE (TABEL1.OprettelsesDato > {ts '2013-03-01 00:00:00'})

Men hvad skal der står efter ">" for at få sager oprettet indenfor de sidste 180 dage?
jeg forestiller mig noget lignende:

SELECT TABEL1.ID_Nummer
FROM TABEL1.TABEL1
WHERE (TABEL1.OprettelsesDato > Nu()-180)

men kan ikke tale SQL og den hjælp jeg finde andre steder giver mig også bare fejl.
Har f.eks. dette uden held:
WHERE (TABEL1.OprettelsesDato > DateAdd(DAY, -180, getDate())
Avatar billede supertekst Ekspert
19. marts 2013 - 13:32 #1
Måske:
Prøv evt. at beregn dato (Idag - 180 dage) uden for selv SQL-udtrykket og så anvend denne variabel i SQL
Avatar billede johandysatan Novice
19. marts 2013 - 13:51 #2
Hvordan er det lige jeg gør det?
Avatar billede johandysatan Novice
19. marts 2013 - 13:52 #3
Den kode jeg har skrevet i spørgsmålet er genereret af MS Query, og altså ikke noget jeg selv ville kunne lave.
Avatar billede supertekst Ekspert
19. marts 2013 - 14:07 #4
Jeg vil prøve at opbygge og test koden - vender tilbage..
Avatar billede supertekst Ekspert
19. marts 2013 - 17:51 #5
Har opbygget en model, der består af en Access DB (har ikke adgang til SQL DB) og VBA-kode i Excel - uddrag heraf:

Private Sub findKunderDato180(xrec As Recordset)
Dim qdfTemp As QueryDef, sortF As String

    åbnDatabase
    Set qdfTemp = db.CreateQueryDef("")
   
    sortF = "Navn"
       
    SQLOutput "SELECT * FROM tabel1 " & _
      "WHERE" & "( dato >= " & dDato & ")" & _
      "ORDER BY " & sortF, qdfTemp, xrec

End Sub
End Function
Private Sub Workbook_Open()
    dato180 = DateAdd("d", -180, Now)
    dDato = "#" & Format(dato180, "mm/dd/yyyy") & "#"
   
    rækkeNr = 1
    findKunder
End Sub
Avatar billede johandysatan Novice
20. marts 2013 - 09:43 #6
WOW det er godt nok en avanceret løsning. Jeg valgte at lave datoberegningen i Excel i stedet og så bruge dette datofelt som søgekriterie i stedet. Her skulle jeg lave datoen om til tekst, hvilket måske også var problemet i min oprindelige søgestreng.
Avatar billede supertekst Ekspert
20. marts 2013 - 09:50 #7
ok - blot det lykkedes..
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
Computerworld tilbyder specialiserede kurser i database-management

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