Zoeken of waarde minstens 1 keer voorkomt in tabel

Status
Niet open voor verdere reacties.

AmpSweep

Gebruiker
Lid geworden
8 mei 2013
Berichten
7
Beste experts,

Op dit moment ben ik bezig een product database te optimaliseren en zit al een poosje mijn hoofd te breken op het volgende:

Ik heb een tabel waarin een ProductID de sleutel is en verder een hele handel informatie over dit product is opgeslagen (niks bijzonders dus). Ook bevat de tabel een JA/NEE kolom. De situatie is namelijk als volgt:
In principe zijn alle producten uit voorraad leverbaar, op een paar na. Deze zijn zogenaamd "Make To Order". Als dit het geval is word er een vinkje gezet in de JA/NEE kolom. M.a.w. waarde NEE = op voorraad, waarde JA = Make To Order.

Met behulp van een query en daarachter een rapport kan ik voor klanten een uitdraai maken van producten (met hun bijbehorende informatie) die voor hun van toepassing zijn (ook dat is geen rocket science).

Nu komt mijn probleem. Wanneer de geselecteerde producten allemaal uit voorraad leverbaar zijn is er niets aan de hand. Wanneer er echter ook maar één product in de selectie voorkomt die Make To Order is (in de tabel dus een JA heeft staan) dan moet er op mijn rapport een tekstveld verschijnen met informatie over leveringstijden etc.

Kort samengevat: Hoe krijg ik de database zo "slim" dat hij in de tabel gaat kijken of er ergens een JA staat, en als dat het geval is, het tekstveld plaatst, of zichtbaar maakt.

Waarschijnlijk is de oplossing niet eens zo ingewikkeld, en al meerdere malen behandeld, maar ik kan dit probleem moeilijk in zoektermen verwoorden.

Dank jullie wel voor het puzzelen.
 
In je rapport kun je een tekstveld maken met de aanvullende tekst. Deze maak je onzichtbaar, en je zet Vergroten en Verkleinen op Ja. In de Detailsectie van het rapport maak je bij de gebeurtenis <Bij opmaken> een opdracht die het tekstveld zichtbaar maakt.
Code:
Private Sub Details_Format(Cancel As Integer, FormatCount As Integer)
    Me.txtAanvullendeTekst.Visible = Me.chkMakeToOrder
End Sub
Dat zou genoeg moeten zijn.
 
Ik zat inderdaad ook te denken aan het zichtbaar/onzichtbaar maken van de tekst. Wat mij echter nog niet duidelijk is, is hoe hij moet zoeken of er in de tabel een JA voorkomt.
 
Doet-ie al als het Ja/Nee veld op het rapport staat.
 
Check! Het werkt inderdaad als een tierelier. Ik had alleen een net iets elegantere oplossing voor ogen:

Wat er nu namelijk gebeurt is dat wanneer er een vinkje staat de tekst wordt weergegeven in diezelfde rij. Omdat het hier een disclaimer betreft is deze tekst telkens hetzelfde en staat bovendien in de details-sectie.

Wat ik graag wil bewerkstelligen is dat de tekst eenmalig (ookal staan er meerdere vinkjes) wordt weergegeven, en dat dan ook nog eens in de paginavoettekst-sectie.
 
In de pagina voettekst kun je geen veldgerelateerde acties uitvoeren; een pagina is voor Access namelijk niks. Bovendien: als je meerdere records hebt in je detailsectie, naar welk Ja/Nee veld moet het tekstveld dan kijken? Dat is nooit te bepalen. Je kunt wel nog iets doen met een Voettekst op basis van een veld, of een Rapportvoettekst. Of, wellicht nog handiger, je zet de optie <Duplicaten verbergen> van het tekstveld op Ja. Dan wordt het veld maar één keer getoond.
 
Probleem opgelost!

In het rapport heb ik de JA/NEE vinkjes toegevoegd maar dan in een tekstvak. Dit resulteert in een waarde die 0 is wanneer er geen vinkje staat en -1 als er wel een vinkje staat (logisch). Deze heb ik op niet zichtbaar gezet, want er wordt wel mee gewerkt maar op de uiteindelijke uitdraai heb ik deze als zodanig niet nodig.

Vervolgens heb ik in de paginavoettekst-sectie een tekstvak geplaatst met de volgende opbouw:

=IIf([chkMakeToOrder]<0,"Tekst van de disclaimer","")

Wat er nu gebeurt is dat als de waarde kleiner is dan 0 (geen vinkje) dan wordt de disclaimer tekst getoond. Als dat niet het geval is blijft de waarde leeg. En dit werkt.
Als er ook maar één product aanwezig is met een waarde van -1 dan verschijnt de tekst eenmalig in de voettekst.

Dit is weliswaar een andere oplossingsrichting dan welke jij hebt gegeven, maar je hebt me bewust of onbewust op het goede been gezet.

Mijn dank hiervoor!
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan