Textbox met waarde query

Status
Niet open voor verdere reacties.

sophierve

Gebruiker
Lid geworden
11 sep 2009
Berichten
42
Hallo,

Waarschijnlijk een zeer simpele vraag, maar toch: op een formulier die gebaseerd is op query1, wil ik in een textbox een waarde uit query2 laten zien. Is dit mogelijk dit te regelen via de controlsource van de textbox?

Alvast bedankt!

Sophie
 
Volgens mij is dat niet helemaal wat ik bedoel... Ik wil graag een tekstbox waar een waarde in komt te staan...deze hoeft niet uit een keuze lijst te komen en is ook niet afhankelijk van andere waarden.

De query heeft maar een record, maar verschillende velden. De tekstbox moet de waarde van een veld weergeven.
 
En query2 is dan de bron van het tekstveld?
Dan kun je via Eigenschappen van het tekstveld het besturingselement aansturen met:

=DLookUp("Veld";"Query2")
 
Zoiets wil ik ook, helaas lukt het mij niet.

In een formulier wil ik een aantal query-resultaten laten zien. Ik krijg dit nog alleen voor elkaar in een subformulier, maar dat wil ik niet.

Wat ik wel wil is het resultaat van de query in een tekstvak.
Ik heb een tekstvak met een de volgende functie in besturingselementbron staan;

=DLookUp("resultaat_zaterdag";"Aantal_bezoeken_op_zaterdag")

Ik krijg een fout te zien, helaas geen resultaat.
 
Waarschijnlijk wordt de foutmelding veroorzaakt doordat je geen criterium hebt meegegeven aan de Lookup. Als je een Lookup op een hoofdformulier gebruikt, zie je waarschijnlijk één record. De Lookup die je nu gebruikt, loopt door de alle records van de opzoektabel heen. Je moet dus een criterium meegeven aan de functie. De functie zou er dus ongeveer zo uit moeten zien:

=DLookUp("resultaat_zaterdag";"Aantal_bezoeken_op_zaterdag";"[Sleutelveld]=" & [SleutelVanFormulier])

Een stukje uitleg van Blue Claw:
Create an unbound text field on the form or report. In the Control Source for this unbound field enter the following

=dlookup ("Last_Name","L_Emps","Emp_ID=" & Employee_ID)

The Dlookup has 4 parameters: Dlookup(1,2,3,4):

1 - The name of the field containing the data you want to retrieve

2 - The name of the table or query that contains the data

3 - The field (unique index or primary key) that will be used to retrieve the distinct value for parameter 1. Note the equals sign at the end of this field.

4 - The value of the index or primary key field in 3 above

The result will be the person's last name that matches the current Employee_ID field.
 
Ik snap hem even niet;

=DLookUp("resultaat_zaterdag";"Aantal_bezoeken_op_zaterdag";"[Sleutelveld]=" & [SleutelVanFormulier])

Hoe het nu staat.
resultaat_zaterdag -- is de naam van tekstinvoervak, waarvan ik nu twijfel of dit juist is. Als ik de beschrijving lees zou dit het veld moeten zijn waar de gewenste data in staat.
Maar ik heb alleen de losse query. Moet ik dan een Form maken van de query, en die tekstvaknaam gebruiken in de functie?

Aantal_bezoeken_op_zaterdag -- de query (telt het aantal records dat zaterdag uit tabel bezoeken bevat)

"[Sleutelveld]="&[SleutelvanFormulier] -- Eerlijk gezegd geen idee wat je hiermee bedoelt. Welke veld is het sleutelveld? Of moet ik dus een nieuw form maken van de query en daarvan de veldnamen gebruiken?
 
Laten we eens een stapje teruggaan, en eerst vaststellen wat je eigenlijk wilt.
Je hebt een formulier.
In een formulier wil ik een aantal query-resultaten laten zien. Ik krijg dit nog alleen voor elkaar in een subformulier
Eerlijk gezegd snap ik dat zelf al niet, want waar is je hoofdformulier dan op gebaseerd? En hoe is je subformulier dan aan je hoofdformulier gekoppeld?
Wat ik wel wil is het resultaat van de query in een tekstvak.
Mijn vraag: Welke query? Is die aan het hoofdformulier gekoppeld (ik gok van niet...) Welk veld uit die query wil je op het tekstvak zien?
Ik heb een tekstvak met een de volgende functie in besturingselementbron staan;

=DLookUp("resultaat_zaterdag";"Aantal_bezoeken_op_zaterdag")
In mijn vorige post heb je kunnen lezen, dat er een bepaalde vaste volgorde is waarin je gegevens moet opzoeken met DLookUp. De eerste waarde moet de veldnaam zijn van de tabel of query zijn waarin je zoekt. De tweede waarde is de naam van de tabel of query waarin je gaat zoeken.

DLookUp heb je alleen nodig, als je gegevens wilt laten zien die niet in de bron van het formulier zitten. Als je formulier is gebaseerd op de query [Aantal_bezoeken_op_zaterdag], dan heb je dus geen DLookUp nodig. Dan zet je het veld gewoon op je formulier, en heb je de gegevens.
Je gebruikt in je formule het veld [resultaat_zaterdag]. Als ik het goed begrijp, is dat het tekstveld op je formulier. Dat gaat dus niet werken, omdat je een tekstveld op een formulier nooit kunt opzoeken. Je zoekt juist naar waarden uit je tabel of query. Je zult dus op zijn minst de juiste naam moeten invullen van het veld uit je query. Daarmee voldoe je aan de eerste twee voorwaarden voor een werkende DLoopUp.

Het laatste deel van mijn voorbeeld heb ik algemeen moeten houden, want ik weet nu nog niet hoe het RecordID veld in je query heet. Waarom heb je dat nodig? Als je in een enkelvoudig formulier één waarde wilt opzoeken in een query, moet je weten welk Record je moet hebben. Dat Record heeft een Sleutelveld, en dat veld moet je koppelen aan hetzelfde veld op je formulier. vandaar: "[Sleutelveld]=" & [SleutelVanFormulier]"
Ik weet namelijk niet welke namen je gebruikt. Je zult ze dus moeten vervangen door de juiste namen...
Kom je er niet uit, zet dan een voorbeeldje neer, dan kunnen we er wat beter naar kijken, en krijg je tips met de goede veldnamen!
 
De bedoeling is om op één form verschillende queries te laten zien.
Ik heb geprobeerd een formulier op meerdere queries te baseren, maar dat mag niet.
Dus ben ik begonnen met een form in ontwerpweergave, een leeg form dus.

Even in vogelvlucht; Ik heb een query die heet:
Query Aantal bezoeken op zaterdag
Deze heb ik met SQL opgebouwd en ziet er als volgt uit.

SELECT Count(Bezoekgegevens.Bezoekdag) AS Aantal_bezoeken_op_zaterdag
FROM Bezoekgegevens
WHERE (((Bezoekgegevens.Bezoekdag)="zaterdag"));


In query ontwerp ziet dat dus zo uit;
Aantal_bezoeken_op_ zaterdag: Aantal(Bezoekgegevens.bezoekdag) | Bezoekdag
Weergeven -------------------------------------- v ------------------------------------------ |
Criterium -------------------------------------------------------------------------------------- | ---"Zaterdag"


Hier komt dus een bepaalde waarde uit, die ik wil laten zien in een tekstvak.

Dus even resumé; als ik het goed begrijp zou het eerste deel moeten zijn;
DLookup (Aantal_bezoeken_op_zaterdag;Query Aantal bezoeken op zaterdag)

Dan nog het laatste deel, begrijp ik het goed als je het ID moet hebben van de tabel Bezoekgegevens? (dat is namelijk de tabel waarop de query "Query Aantal bezoeken op zaterdag" is gebaseerd). Heel raar ( ;) ), dat is BezoekgegevensID.

Hopelijk heb je de juiste gegevens; anders zal ik een aantal printscreens neerzetten.
 
Het klopt dat een formulier maar één recordsource mag hebben. Dat kan een tabel zijn, of een query. Een query mag uiteraard uit meerdere tabellen of queries bestaan, dat boeit niet echt.
Daarnaast kun je, als je meerdere bronnen op je formulier wilt hebben, daar subformulieren voor gebruiken, die ook allemaal weer hun eigen bron hebben. Om dat goed werkend te krijgen, koppel je hoofd- en subformulier op basis van een sleutelveld aan elkaar.
De laatste manier om externe gegevens op je formulier te laten zien, is om met niet-afhankelijke tekstvelden te werken. Hier kun je ook weer een eigen bron aan hangen. Veel gebruikt voorbeeld is bijvoorbeeld de Keuzelijst.

In een Tekstvak kun je maar één gegeven laten zien. Als dat uit een tabel of query moet komen met meerdere records, dan zul je dus in de besturingselementbron aan moeten geven hoe dat gegeven moet worden opgehaald. Is het veld afkomstig uit een Totaalquery, met maar één rij, dan kun je rechtstreeks naar dat veld verwijzen. In beide gevallen werk je met een DLookup. Ook kun je de functie DCount wel gebruiken, want daar komt ook één waarde uitrollen. Je kunt je query dan ook vervangen door een DCount voor hetzelfde resultaat.
 
Onder het motto; als het niet kan zoals het moet, dan moet het maar zoals het kan.

Ik heb in een form een aantal subformulieren gezet, dit geeft in ieder geval het gewenste resultaat. Toch denk ik dat het met een tekstvak en Dlookup moet kunnen.

Ik stoei nog even verder.....
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan