Query openen met selectie van klant

Status
Niet open voor verdere reacties.

RonaldRoenhorst

Gebruiker
Lid geworden
25 dec 2008
Berichten
188
Is het mogelijk om vanuit een formulier een query te starten met alleen de gegevens van de klant die in het formulier staat ?
 
Het antwoord daarop is uiteraard Ja.
Je kunt kiezen voor een VBA oplossing, waarbij je de filtering aan een bestaande query toevoegt, of je kunt het criterium vast toevoegen aan de qeury, waarbij je refereert aan een tekstveld of keuzelijst op het formulier.
Welke variant zou je willen?
 
Ik bedoel dat het refereerd aan een textveld op het formulier waarin het nummer van de klant staat.
 
Dat is inderdaad ook wat ik bedoelde. Als je een query maakt, kun je in het criteriumveld met de functie Opbouwen een veld uit je formulier gebruiken als filtering. (dit is dus de tweede optie die ik aangaf...) Met VBA kun je de veldwaarde uitlezen, en a.h.w. toevoegen aan de query. Of je kunt een complete query opbouwen in VBA. Hangt een beetje van de query af wat handig is.
 
Hoe zou de VBA code eruit moeten zien Michel, ik ben sinds een paar weken ook bezig met VBA maar dit gaat mij nog te ver.
Een voorbeeld zou mij hiermee helpen.

Alvast bedankt,
Ronald
 
Een voorbeeldje is uiteraard geen probleem!

Kijk hier maar eens naar:
In het formulier [FormArtiest] zitten wat SQL truukjes om code uit een query te halen. In dit geval wordt de code gebruikt om een formulier te filteren, maar er zijn uiteraard meer mogelijkheden!
 

Bijlagen

Michel,

Ik heb de database eens rustig bekeken maar kom er nog niet verder mee, ik bedoel dat het bij het aanklikken van een button dus OnClick de query opent met een selectie gebasseerd op een nummer in een txtveld op het formulier.
 
Ik zal het voorbeeldje een beetje aanpassen.
 
Ik heb het voorbeeldje uitgebreid; nu staat er op het formulier formArtiesten een knop die een (tijdelijke) query maakt, en opent. En dat op basis van een keuze uit de Artiesten lijst.
Komt hopelijk een beetje in de buurt van wat je wilt.....
Met een kleine aanpassing kun je overigens ook een query maken, waarbij je de SQL code verandert. Kijk maar eens of je daar uit komt ... ;)
 

Bijlagen

Laatst bewerkt:
Hiermee kom ik zeker al een stuk verder en begin een aantal dingen al wel te begrijpen.
maar het probleem waar ik mee zit is dat ik al een query heb (kruistabel) en die wil ik graag openen op deze manier,
 
Ik ben nog wat verder aan het stoeien geweest met het voorbeeld, dus kijk ook eens naar de nieuwe versie...
Wat je kunt doen, als je een vaste bestaande query hebt, is het volgende:
Je maakt een SQL string die er dan zo uitziet:

strSQL = "SELECT * FROM [Jouw Kruistabel] " & vbCrLf
sFilter = "WHERE [Veld dat je filtert]=" & Me.[Veld op het formulier]
strSQL = strSQL & sFilter

Hiermee doe je dus niets anders dan de kruistabelquery oproepen, en daar een filtering aan toevoegen.
Omdat je de oorspronkelijke query niet wilt veranderen, gebruik je een tijdelijke query om het resultaat op te slaan:

Code:
Dim dbs As Database
Dim qdfTemp As QueryDef
Set db = CurrentDb()
On Error Resume Next
db.QueryDefs.Delete ("qTemp")
On Error GoTo 0
Set qdfNew = db.CreateQueryDef("qTemp", strSQL)

DoCmd.OpenQuery "qTemp"

Hierbij gebruik je dus een foutafvang methode (On Error Resume Next) om te voorkomen dat je een niet-bestaande query probeert te verwijderen.
Zo iets?
 
Bijna helemaal perfect :thumb:, hij doet precies wat ik wil alleen bij de kruistabel heb ik een subform aangehangen zodat ik dan ook de prijzen kan veranderen.
Dit subform verdwijnd en moet ik telkens handmatig toevoegen, is hier nog wat voor te bedenken. :shocked:
 
Moet je even uitleggen: hoe hang je een subformulier aan een kruistabel??
 
Ik selecteer een subgegevensblad zodat ik vanuit de kruistabel kan doorklikken naar de tabel waar ik wel de gegevens kan veranderen.

Inmiddels ben ik al wel wat verder door een form gebaseerd op dequery (niet kruistabel) te openen om zo de prijzen van de geselecteerde week te veranderen.

Nu ben ik aan het zoeken om een mogelijkheid te vinden om de week die ik wil veranderen cq aanpassen eruit te laten springen.
Ik heb het geprobeerd met een voorwaardelijke opmaak [Hoogste] maar dat functioneerd niet.

Ik heb mijn weeknummers als volgt ingesteld
200937
200938
200939
200940

Nu zoek ik naar een megelijkheid bij het openen van het formulier om in dit geval week 200940 een kleur te geven om het e.e.a. wat duidelijker te maken.
 
Michel,
Is er ook een mogelijkheid om 2 voorwaarden te moeten invullen, ik denk aan klant & weeknummer of klant & artikelnummer of als derde artikelnummer & weeknummer ?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan