Toon posts:

[Access] query obv gegevens uit form

Pagina: 1
Acties:

Verwijderd

Topicstarter
Zit met een probleempje. in een adreslijst zitten adressen met een 'A' en een 'B' status. ik heb een formulier gemaakt waarin de gebruiker kan aangeven uit welke landen hij 'A'- of 'B'-adressen wil hebben. Dit wordt vervolgens via een query 'naar een rapport gestuurd'.
De query selecteerd op:
Like "*" & "[Forms]![formulier voor selectie persadressen]![selectie]" & "*".
het veld [selectie] is dus a of b.
Helaas krijg ik nooit records in mijn selectie. Deze is altijd leeg. Hoe komt dit? De verwijzing ligt goed toch?

Ben erg benieuwd waar het probleem ligt... iemend??


S.

  • TaZz
  • Registratie: Juni 2000
  • Laatst online: 28-07 12:43

TaZz

Nostalgist

:? Iets meer informatie zou wel handig zijn..... die status bv, is dat een apart veld waar alleen een letter A of B in staat?

Verwijderd

Als ik het goed zie, heb je teveel aanhalingstekens:

Like "*" & "[Forms]![formulier voor selectie persadressen]![selectie]" & "*"
is hetzelfde als
Like "*[Forms]![formulier voor selectie persadressen]![selectie]*"

terwijl
Like "*" & [Forms]![formulier voor selectie persadressen]![selectie] & "*"
betekent
Like "*a*"
(indien [selectie] a is natuurlijk)

Verwijderd

Topicstarter
A en B zijn letters die ik gebruik als codering. Op het formulier komen alleen die twee voor. in de query wordt deze letter gezocht in een rubriek-veld. Hierin kan bijvoorbeeld ook C, D etc voorkomen.
Like "*[Forms]![formulier voor selectie persadressen]![selectie]*" is dus het criterium dat zoekt in [Adressen]![Rubriek]
(het hele verhaal op een rij: via een macro wordt een form geopend. nadat deze is ingevult wordt de query gestart (dmv een knop op het form) met de verwijzingen naar de velden op het form. Deze query moet vervolgens de data leveren aan een rapport waarna de macro alle vensters sluit.)

Humulus' oplossing klopt idd, maar was geen oplossing voor dit probleem.

S.

  • TaZz
  • Registratie: Juni 2000
  • Laatst online: 28-07 12:43

TaZz

Nostalgist

Ik weet niet meer precies welke functies je hebt binnen Access, maar kun je geen Instr functie gebruiken -> Instr([Veld],'A') > 0

Zoals ik al zei weet ik niet of de functie Instr bestaat in Access.... de functie Instr geeft de startpositie terug van een substring in een string.

Heb je trouwens de laatste oplossing van Humulus ook geprobeerd?
Dus: Like "*" & [Forms]![formulier voor selectie persadressen]![selectie] & "*"

[ Voor 40% gewijzigd door TaZz op 29-07-2003 13:31 ]


Verwijderd

Topicstarter
Ben wat aan het zoeken en broberen gegaan, maar zonder resultaat. Instr komt niet voor in Access.
Humulus idd geprobeerd, klopte maar bood geen oplossing voor dit probleem.

Het ligt puur in de verwijzing, want als ik "[Forms]![formulier voor selectie persadressen]![selectie]" vervang door "A" of "B" dan werkt alles.

[ Voor 54% gewijzigd door Verwijderd op 29-07-2003 13:40 ]


  • TaZz
  • Registratie: Juni 2000
  • Laatst online: 28-07 12:43

TaZz

Nostalgist

InStr, functie

Geeft als resultaat een Variant (Long) met de positie waarop een tekenreeks de eerste keer voorkomt in een andere tekenreeks.
code:
1
InStr([start, ]tekenreeks1, tekenreeks2[, vergelijking])

Verwijderd

Topicstarter
Ben wat beziggeweest met InStr, maar boek weinig resultaat. Nou moet ik bekennen dat ik mij hier ook op onbekend terrein begeef. Ik heb echter het idee dat we de oplossing ergans anders moeten zoeken.
Eigenlijk is de vraagstelling simpel. Laten we de A en B selectie even vergeten en puur naar de landen kijken. De vraag is dan als volgt: "De gebruiker moet eenvoudig een aantal landnamen aan kunnen vinken (of in kunnen typen), op een knop drukken en de adresselectie krijgen." het formulier moet dus eigenlijk gewoon 'AND en OR' vervangen.

  • Boss
  • Registratie: September 1999
  • Laatst online: 08-09 17:20

Boss

+1 Overgewaardeerd

Da's niet zo moeilijk toch?

Laat het rapport openen vanuit het formulier en geef de filter-criteria mee aan het rapport. Dat werkt veel netter dan wanneer je de querie laat verwijzen naar het formulier.

Dus Docmd.Openreport "rapport", acViewPriview,,"Land Like *" & txtFilterLand & "*"

als txtFilterLand het textveld is waar je het land kan invoeren waar je op wilt selecteren.

Mooier is natuurlijk een multi-select combo waarin alle landen staan en je kan aanvinkel welke je wel/niet wilt hebben. Dan moet je ff met een loopje de selected items doorlopen en je filter maken door steeds " OR Land = " & [waarde uit combo] aan toe te voegen.

Succes ermee!

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
Boss Bedankt!
Ik heb inderdaad nu aan het rapport (via een macro) een filter meegegeven ipv een query. en alles werkt. Het is nog een nettere oplossing ook.
Pagina: 1