Invoer gegevens vergemakkelijken...

Status
Niet open voor verdere reacties.

jok078

Gebruiker
Lid geworden
2 dec 2015
Berichten
36
Knipsel.JPG

In de bijlage vind je een knipsel van een stukje van mijn tabel. (in dit geval verwerkt in een QRY)

Ik wens het mezelf makkelijk maken, bij de invoer van gegevens!
- Ik selecteer een klant uit mijn keuzelijst
- Selecteer een product uit keuezlijst
- Geef de hoeveelheid in
- Selecteer een n'de product (van serie producten van dezelfde klant) uit keuezlijst,...
en klaar!

Iemand enig idee hoe ik dit verwerkt krijg?? (moet ik niet steeds aanduitden dat het over dezelfde klant gaat)

Wat voor mij (als eerste) een groot raadsel is. Ik weet maw niet hoe ik het gedaan kan krijgen! (in een querry / in een formulier?)

Thanks!!
j.
 
Laatst bewerkt:
Uit het plaatje is mooi op te maken hoe jouw database in elkaar steekt.
 
Ik weet maw niet hoe ik het gedaan kan krijgen! (in een querry / in een formulier?)
Je plaatje zegt niks; je wekt de indruk dat je alles in één tabel zet. Dat is, als dat waar is, een foute aanpak. Sowieso heb je stamtabellen nodig (Klanten, Producten) en een koppeltabel (Bestellingen + tabel Bestelregels). Die link je aan elkaar m.b.v. de velden KlantID en ArtikelID. Op basis van Bestellingen (+Bestelregels) maak je een formulier (Bestellingen) waarin je een klant kiest met een keuzelijst (KLantID dus) en in het subformulier Bestelregels Artikelen (ProductID). En dan kom je een heel eind.
 
Ik denk dat jullie het te kortzichtig bekeken hebben. Natuurlijk bestaan er meerdere tabellen: Klant, Product,ect. (de foto is reeds een stuk uit een selectiequerry)

Vanuit een query kunnen we heel makkelijk gaan filteren! Bijv. enkel de producten van één bepaalde persoon of bijv. enkel de producten die op een bepaalde dag verkocht zijn...

Mijn vraag was hoe we een querry kunnen laten aansturen vanuit een formulier.
Doel: We zitten met een bepaalde klant aan tafel. Hij overloopt zijn lijstje aan producten die hij wil aankopen. Hoe kan ik nu mijn lijstje, in mijn formulier aanvullen, steeds onder hetzelfde klant-id. Waarom zou ik bij het aanvullen steeds diezelfde klant aanduiden? Moet toch makkelijker kunnen??
- selecteer mijn klant
- selecteer uit lijstje van poducten dewelke hij wil én hoeveel
én klaar...


Soortgelijke vraag is hoe je vanuit je formulier een querry kan sturen om je tabellen te doorzoeken?

Thnkx
 
Ik denk niet dat wíj het te kortzichtig bekijken; wij zijn afhankelijk van de informatie die jíj aanlevert. Als die ontbreekt, dan wordt het voor ons bar lastig. Ik vind op mijn beurt dít weer kortzichtig:
Vanuit een query kunnen we heel makkelijk gaan filteren! Bijv. enkel de producten van één bepaalde persoon of bijv. enkel de producten die op een bepaalde dag verkocht zijn...
Dat heeft namelijk niks met queries van doen. Een query aansturen vanuit een formulier? Wat bedoel je daarmee? Heb je een onafhankelijk formulier dat je wilt gebruiken om een querydefinitie aan te passen?

Wat jij volgens mij wil of nodig hebt, is een formulier Klanten met een subformulier Orders o.i.d. Door de juiste koppeling, vult alles zich dan vanzelf correct in.
 
Eigenlijk zou je een accesdatabase zo moeten bouwen dat alles (voor de eindgebruiker) vanuit de formulieren gebeurt. 'eenvoudige' Ivoer gegevens, berekenen,...
Een eindgebruiker hoeft niets te doen binnen de query's, laat staan tabellen...!

De ene keer wil je in een formulier alle aangekochte producten van een bepaalde persoon zien. Een andere keer is dit een andere persoon. Het rekenwerk gebeurt in een querry, de weergave in het formulier.
Je hoeft toch niet telkens een nieuwe query op te bouwen (of in de query een aanpassing te doen) om deze berekening te doen?? De query moet 'aangestuurd' worden vanuit het formulier. In je formulier voorzie je een keuzelijst met in dit vb. alle personen...
 
Een eindgebruiker hoeft niets te doen binnen de query's, laat staan tabellen...!
Waarvan akte! Eindgebruikers hebben niks te zoeken in tabellen (of queries),elke db ontwerper (in Access dan toch) moet dus m.b.v. formulieren en rapporten een interface maken waarin alles afgeschermd is voor een gewone gebruiker. Maar dat wil niet zeggen dat je met één query kunt/moet volstaan. Doorgaans heeft elk formulier wel zijn eigen bron; dat kan dan een tabel of een query zijn. Berekeningen doe ik vaak op het formulier zelf, maar ook in een query als dat kan; dat is niet altijd mogelijk.

Dit:
De query moet 'aangestuurd' worden vanuit het formulier.
neigt naar de categorie 'onzin': een query is de basis van het formulier, en derhalve stuurt de query het formulier, en niet omgekeerd.
 
Is ind. juister verwoord... 'de query stuurt het formulier'

Ik wil graag m'n woorden: Via een query kunnen we gaan filteren op allerlei manier...

- Hoe kunnen we vanuit ons formulier deze query gaan sturen? De ene keer wil je de informatie van klant 'x', de andere keer van klant 'y'...

- In een ander formulier wil je de data filteren van 2016, in enkele muisklikken in dit formulier passen we de achterliggende query aan, op zoek naar de data van 2017

mvg,
 
Leg eerst eens uit wat nu de bedoeling is, want die snap ik niet.
Ik wil graag m'n woorden: Via een query kunnen we gaan filteren op allerlei manier... Hoe kunnen we vanuit ons formulier deze query gaan sturen? De ene keer wil je de informatie van klant 'x', de andere keer van klant 'y'...
Als je een formulier hebt dat op een (bewerkbare) gegevensbron is gebaseerd, dan is het heel simpel om dat formulier te filteren. Kwestie van een of meer keuzelijsten in de koptekst, en het formulierfilter aanpassen. Idem dito (je andere voorbeeld) als je de ene keer de data van 2016 wilt zien en de andere keer het huidige kwartaal. Daar hoef je nooit een query voor aan te passen. Dus waarom wil jij dat wel?
 
Heb je hier een voorbeeld van?

Hoe kan ik mijn filter (welke ik gebruik in mijn formulier) besturen via een keuzevak...
Je informatie (verbonden met id...) welke je selecteert in je keuzevak moet toch door een query bewerkt worden...?

Op heden, geen flauw idee :s (herinner me het van ooit, maar nu...?)
 
Het is wellicht handiger als jij het voorbeeld post, dan weten je werkwijze. In essentie is het vrij simpel; elk formulier heeft de eigenschap <Filter> en die kun je vanuit een keuzelijst besturen. Als je dus een specifieke klant wilt zien, krijg je iets als:
Code:
Private Sub cboKlanten_Click()
    If Me.cboKlanten <> vbNullString Then
        Me.Filter = "[KlantID] = " & Me.cboKlanten
        Me.FilterOn = True
    Else
        Me.Filter = ""
        Me.FilterOn = False
    End If
End Sub
En zo kun je een filter dus ook opbouwen op basis van meer keuzelijsten of tekstvelden.
 
Ik had verwacht dat het makkelijker ging om het werkbaar te maken.

Het lukt me niet in de formulieren een filter toe te passen. Wat me praktisch zou lijken is dit te doen met een keuzelijst.
Bij FRM_contact wens ik te filteren op Klant...
Bij FRM_To_Do wens ik te filteren op Door wie en Voor wie...

Hoop geraken jullie er wijs uit. Begrijp niet waarom het mij niet lukt...
óf slagen jullie erin het me uit te leggen hoe ik het aan de praat krijg. (als het al werkt ben ik al heel blij)


Heb bij deze het voorbeeld erbij gestopt.
Let wel. Gelieve geen misbruik te maken van vertrouwelijke gegevens.

Danks je!!
 

Bijlagen

  • Bestellingen 081211.rar
    81,4 KB · Weergaven: 42
Je kunt het beste een voorbeeldje geven met dummy data, maar ik zal je voorbeeldje straks even bekijken. En dan leg ik uiteraard ook wel uit hoe en waarom :)
 
@ Octafish... Dank je bij voorbaat. Geen probleem hoor van de dummy data. Ik heb alle 'mogelijke' belangrijke info gewist, geen probleem. De data ind. wissen en vervangen door dummy data kan handig zijn, vooral als er veel meer data inzit. Een vraag die erbij is gekomen dus... Ik kan me perfect voorstellen dat er een truck bestaat om de tabellen te vullen met dummy data en later weer terug de originele data te gebruiken. Hoop geraken we er nog wel uit... Thanks!
 
Het valt me op dat je zowel het formulier FRM_To_Do als FRM_Contact hebt gebaseerd op een query, en niet op de tabel. Dat zou nog nuttig kunnen zijn als de queries een andere gegevensbron hadden als de tabel, maar dat is niet zo. Dus dan is het niet zo heel nuttig om daar aparte queries voor te gebruiken, kun je net zo goed de tabellen gebruiken. Een zoeklijst (of filterlijst) zet je in de koptekst van zo'n formulier. Dat heb je nog niet gedaan. Verder zag ik dat je in de onderliggende tabellen keuzelijsten hebt gemaakt voor een aantal velden. Hoe verleidelijk dat ook mag lijken: niet doen! Keuzelijsten horen niet in een tabel te staan, maar alleen op formulieren. In een tabel wil je de waarde van het veld kunnen zien, niet een of ander alias. Je slaat bijvoorbeeld in het veld [Door wie?] (slecht idee trouwens, vraagtekens in veldnamen) een getal op, maar je ziet tekst. En je filtert dat veld ook op een getal, niet op tekst. Dat is dus bijna niet te doen op een formulier. Je zult het mij in ieder geval nooit zien doen, keuzelijsten in tabellen.

Probeer dus eerst eens om je tabellen te corrigeren, dus geen keuzelijsten maar tekstvelden. Kwestie van de eigenschap <weergave besturingselement> om te zetten naar tekstveld, en je tabel is weer in orde. Op je formulieren blijven de keuzelijsten overigens gewoon bestaan en werken, dus die hoef je niet aan te passen. Dat is dan de mazzel :). In de koptekst kun je dan een keuzelijst met invoervak maken die de personen ophaalt uit tbl_Persoon (voor de contacten) en waarbij je dus het [KlantID] uitleest en gebruikt om op te filteren. Ik zal een voorbeeldje voor je klaarzetten in je db.
 
Ik heb wat (niet alle) wijzigingen doorgevoerd, en op het contacten formulier een keuzelijst gezet die filtert. Kijk maar eens of je snapt wat hij doet.
 

Bijlagen

  • Bestellingen.zip
    81,1 KB · Weergaven: 48
@Octafish

Dank je erg bijzonder...

Voorlopig slaag ik er dus nog steeds niet in. het selectievak toe te voegen... (zoals onderaan jouw reactie beschreven) Wat je uitvoerde in het formulier is echt wel wat ik zocht.

Weet jij soms een filmpje, misschien is dat makkelijker om het uit te voeren op andere formulieren. (mag best eenvoudig zijn), denkelijk ligt het aan de instellingen welke ik meegeef, na het invoeren van het selectievak in het kop-vak.

Danks je vast!
Jo
 
Filteren op een selectievakje is een beetje tricky, omdat je daarmee je selectie gelijk een richting opstuurt. Als je een keuzelijst gebruikt, filter je op de gekozen waarde. Maak je de keuzelijst leeg, dan zie je alles. Een selectievakje werkt echter anders: filter je níet op een selectieveld, dan zie je alles, maar filter je wél op het veld, dan is het óf de aangevinkte waarde, óf de niet-aangevinkte. Maar dus nooit meer álles. Kortom: filteren is nog best een ingewikkelde klus.
 
Dank je voor de tips en trics!!

Hiermee kan ik vast weer verder!
In tussentijd heb ik op mijn bestaande versie ook wat aangepast...:

In bijlage een vernieuwde versie...
Ik heb in het document een FRM_Bestelling toegevoegd, met hierin een subformulier...
Natuurlijk tracht ik het subformulier aan te passen (te laten reageren) aan de hand van de keuze in mijn combobox...

Jammer! Doet het niet :s Zie jij de fout in de code? Ongetwijfeld zit ze in de benaming waar ik voorlopig niet pluis uit geraak!! Zie jij wat ik niet zie :)
 

Bijlagen

  • Bestellingen 0817.rar
    94,3 KB · Weergaven: 31
Ik kan geen rar bestanden openen, dus je db zal tot vanavond moeten wachten.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan