Avatar billede omn Mester
15. februar 2009 - 13:49 Der er 3 kommentarer og
1 løsning

Visual Basic ændring af en forespørgsel (queries)

Jeg har en forespørgsel(Queries) for hvilken jeg fra min formular code vil ændre "Field" og/eller "Criteria" før formularen åbnes med den pågældende forespørgsel som Record Source. Eksempelvis skal forespørgslen fremsøge april(field) med finansår 9 som Criteria og næste gang måske januar med 8 som finansår.
Hvordan klarer man lige det. ?
Venlig hilsen OMN.
Avatar billede mugs Novice
15. februar 2009 - 16:08 #1
Ikke afprøvet:

Private Sub Form_Current()
Dim VARa As String
VARa = InputBox(Prompt:="Indtast måned", Title:="Find måned.", Default:="")
DoCmd.GoToControl "Måned"
DoCmd.FindRecord VARa, acEntire, False, , True, acCurrent, True
End Sub
Avatar billede omn Mester
15. februar 2009 - 16:36 #2
Det er jeg ikke helt med på. Måske udtrykker jeg mig uklart.
Jeg har brug for at vide hvordan jeg ændrer/retter et criteria i en eksisterende forespørgsel ?

I dette eksempel skal Feb ændres til Mar og FY=9 skal ændres til FY=10

TRANSFORM Sum(Budgetregister.Feb) AS SumOfFeb
SELECT Budgetregister.[ID-Tilbudsnummer], Budgetregister.FY
FROM Budgetregister
WHERE (((Budgetregister.FY)=9))
GROUP BY Budgetregister.[ID-Tilbudsnummer], Budgetregister.FY
PIVOT Budgetregister.Frekvens In ("All for Once","Yearly");

Vh. OMN
Avatar billede fdata Forsker
17. februar 2009 - 21:32 #3
Måske noget i retning af:

Sub Test
  Call OpretForespørgsel("Mar",10)
End Sub

Sub OpretForespørgsel(Måned As String, År As Integer)
  Dim SQLstr As String

  SQLstr="TRANSFORM Sum(Budgetregister." & Måned & ") AS SumOf" & Måned & _
" SELECT Budgetregister.[ID-Tilbudsnummer], Budgetregister.FY" & _
" FROM Budgetregister" & _
" WHERE (((Budgetregister.FY)=" & År & "))" & _
" GROUP BY Budgetregister.[ID-Tilbudsnummer], Budgetregister.FY" & _
" PIVOT Budgetregister.Frekvens In ("All for Once","Yearly");"

  Call OpretQuery("DinForespørgsel", SQLstr)
End Sub 

Sub OpretQuery(Qnavn As String, Qsql As String)
  Dim Qdf As QueryDef
 
  On Error Resume Next
  CurrentDb.QueryDefs.Delete Qnavn
  On Error GoTo 0
 
  Set Qdf = CurrentDb.CreateQueryDef(Qnavn)
  With Qdf
    .SQL = Qsql
    .Close
  End With
  Set Qdf = Nothing
End Sub

(ikke testet)
Avatar billede fdata Forsker
24. marts 2009 - 19:50 #4
Takker for point ;o)
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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