Toon posts:

ms access : Order by in report als variabele van form halen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een report gemaakt die wordt opgebouwd mbv een query die als ik als recordbron heb opgeven. De WHERE wordt opgebouwd aan de hand van de inhoud van een veld dat op een eerder formulier staat, middels de regel : [forms]![formulier1]![SelectieDatum]. Dit werkt perfect ik kan nu een selectie datum opgeven op het formulier en die wordt dan in de query opgenomen. Nu heb ik dus een dynamisch opgebouwde WHERE clausule.
Ik zou dit ook graag willen voor de ORDER BY clausule maar dat lukt maar niet. De bedoeling is dat ik een sorteervolgorde kan opgeven op hetzelfde formulier als de selectieDatum maar dat wil niet lukken. Wel lukt het me om de ingevoerde sorteervolgorde op te vragen in de sub Report_Open, dus ik krijg de waarde wel binnen maar de query pakt het niet op. Kan iemand mij helpen ?

  • Boss
  • Registratie: September 1999
  • Laatst online: 09:43

Boss

+1 Overgewaardeerd

Als Order By kan je inderdaad geen veldnaam opgeven. Wat ik vaak doe is het rapport baseren op een query die is opgeslagen, bijv. qryRapportNaam.

De gebruiker kan dan via een form de filters en sorteervolgorde instellen. Daarna met
code:
1
CurrentDB.QueryDefs("qryRapportNaam").SQL = "SELECT bla FROM bla ORDER BY bla;"

en dan
code:
1
DoCmd.OpenReport "rptRapportNaam"

The process of preparing programs for a digital computer is especially attractive, not only because it can be economically and scientifically rewarding, but also because it is an aesthetic experience much like composing poetry or music.


Verwijderd

Topicstarter
Als eerste bedankt voor je antwoord, kan je me ook vertellen hoe ik de query dan weer aanroep in mijn rapport ?

  • Boss
  • Registratie: September 1999
  • Laatst online: 09:43

Boss

+1 Overgewaardeerd

Je rapport koppel je aan de query 'qryRapportNaam', en daar verander je verder (via code) niets aan. Het enige wat je aanpast is de query zelf.

The process of preparing programs for a digital computer is especially attractive, not only because it can be economically and scientifically rewarding, but also because it is an aesthetic experience much like composing poetry or music.


Verwijderd

Topicstarter
Koppel ik het rapport dan aan de query door de querynaam te noemen als Recordbron ?
Zoals je waarschijnlijk wel kan zien ben ik niet gewent om te werken met currentDB vandaar al deze vragen.

  • Boss
  • Registratie: September 1999
  • Laatst online: 09:43

Boss

+1 Overgewaardeerd

Precies... gewoon een query opgeven als recordbron, kiezen uit het lijstje.

Die query moet je opverigens dus wel eerst een keer maken. Gewoon een query maken voor het rapport, met alle velden erin die nodig zijn. Als die query eenmaal bestaat kan je daarna de achterliggende SQL overschrijven.

The process of preparing programs for a digital computer is especially attractive, not only because it can be economically and scientifically rewarding, but also because it is an aesthetic experience much like composing poetry or music.


Verwijderd

Topicstarter
Ik heb nog een vraagje. Wat mij opvalt is dat als ik de query een datum opneem dat deze dan in de query wordt verwerkt in amerikaanse notatie, dus mm.dd.yyyy terwijl ik in de database het veld opgenomen als "Datum/Tijd" en notatie "dd-mm-yyyy".
Ik heb dus een record in de database staan met de datum 07-02-2005 (7 feb 2005) als ik nou als selectiedatum de datum 07-02-2005 opgeef dan wordt dit record niet gevonden echter als 02-07-2005 invoer als selectie dan wordt het record wel gevonden. Hoe kan ik de notatie van de datum aanpassen in de query ?

  • Boss
  • Registratie: September 1999
  • Laatst online: 09:43

Boss

+1 Overgewaardeerd

De 'query-taal' gebruik idd de Amerikaanse datum notatie. Met Format([DatumVeld];"mm-dd-yyyy") kan je het formaat omzetten. Of de datum tussen # zetten bij de selectie : #12-04-1977#

The process of preparing programs for a digital computer is especially attractive, not only because it can be economically and scientifically rewarding, but also because it is an aesthetic experience much like composing poetry or music.


Verwijderd

Topicstarter
Het werkt nu allemaal bedankt.
Pagina: 1