Alles weergeven in Query na niets invullen keuzelijst

  • Onderwerp starter Onderwerp starter EGeen
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.
Ik weet wat in hoofdlijnen wat ik wil. Echter door onervarenheid met Access blijkt dat niet altijd alles mogelijk is zoals ik het wil. Het is inderdaad een inventarisoverzicht, echter wel één waar gemakkelijk wijzigingen in moeten kunnen worden aangebracht. Dus een werkbestand dat overzichtelijk is (en dat is al lastig met zoveel verschillende productinformatie). Achterliggend moet ik kunnen aangeven wat waarin zit en bijvoorbeeld op product kunnen selecteren. Echter zoals ik het zie, is dat gemakkelijk in een rapportje te knutselen als de rest klaar is.

Iedere wijziging moet naderhand (in de toekomst) worden vastgelegd, zodat per auto duidelijk wordt wat de kosten zijn qua materiaal.

Welke wijzigingen zijn er:

Toename:
- Nieuw geleverd product direct met aantal en houdbaarheidsdatum invoeren in een bepaalde plaats.

Afname:
in categorieën: "Gebruikt" en "vervanging". Bij gebruikt wordt het aantal gewoon verminderd en bij 0 gewoon verwijderd. Bij vervanging de record (want iedere record heeft eigen houdbaarheidsdatum) vervangen door een x aantal van hetzelfde type product (afgezien merk) dat ligt op een andere plaats (of nieuw is besteld). Hierbij moet rekening mee worden gehouden dat op een andere plaats hetzelfde artikel kan liggen met verschillende houdbaarheidsdatums. Deze moeten dus kunnen worden aangevinkt.

Wijzigen: Product (of gehele koffer) verplaatsen. (of een gedeelte, dus een aantal verplaatsen in plaats van alle producten van koffer A in auto A, naar koffer B in auto B).

Bijhouden van bepaalde producten wanneer deze het laatst zijn schoongemaakt etc. (dit geldt voor maar een paar producten - zwachtels en desinfectiemiddel hoeven natuurlijk niet schoongemaakt, die worden vervangen)

Van hieruit kunnen al snel rapporten worden opgemaakt.
- Zoals controle van houdbaarheidsdata van alle producten.
- Het tellen van het aantal van een bepaald product wat aanwezig is.

Lastiger:
- Er is een lijst waarin staat hoeveel van een bepaald type product in een bepaalde koffer moet zitten (afgezien merk houdbaarheid etc). Dus het zou makkelijk zijn als er in één klap kan worden gecontroleerd in hoeverre een bepaalde koffer/auto/aanhanger voldoet aan de eisen en waar de verschillen liggen.
(- Verschillen bekijken tussen bepaalde auto's, koffers etc is verlengde van zin hierboven)

Oftewel het is eigenlijk een geheel programma waarmee inventaris kan worden bijgehouden, vergeleken kan worden etc. Zo'n specifiek programma ben ik nog nergens tegengekomen. Aangezien het een Stichting is, is het laten maken van een stand-alone programma gewoonweg te prijzig.
 
Laatst bewerkt:
Je denkt nog teveel in oplossingen en niet in een probleemomschrijving. En daar moet je toch echt mee beginnen: beschrijf eerst je doelstellingen. Als je de doelstellingen hebt geformuleerd, kun je gaan nadenken over de manier waarop je die gaat realiseren. Kortom: in een functioneel ontwerp moet komen te staan wat de database moet kunnen leveren. Het hoe komt daarna wel. Een opmerking als:
Het is inderdaad een inventarisoverzicht, echter wel één waar gemakkelijk wijzigingen in moeten kunnen worden aangebracht. Dus een werkbestand dat overzichtelijk is
denkt al in oplossingen, niet in probleembeschrijving. Nogmaals: het is erg lastig om functioneel mee te denken als we niet exact weten wat je wilt.
 
Komt waarschijnlijk ook omdat ik al tijden het werk verzet in Excel. De switch maken naar doelstellingen terwijl ik iets in mijn hoofd had vind ik erg lastig/niet geheel snappende. Opzich de opsomming wat moet gebeuren in het document is (eerst) wel hetgeen waar het om draait. (later wellicht uit te bouwen, maar gaan we nu even niet vanuit). Omdat het goed werkbaar moet zijn denk ik daarom wellicht als in uiterlijk van het formulier.

Ik moet al veel vragen, echter als ik nu weer iets opnieuw moet uitdenken vrees ik dat ik jullie nog meer moet uit laten denken. Wil ik jullie niet aandoen haha.

Stel:
Er is een subformulier als gegevensblad. Als ik met rechtermuisklik op de cel klik, wat is dan de code om de record van die cel te kopieren en een formulier te openen?
 
Zo uit het hoofd:
Code:
DoCmd.OpenForm "Jouw formulier", , , "[ID]=" & Me.ID
Wel nog even formuliernaam en velden controleren en aanpassen.
 
Dank, maar hoe krijg ik het dan zover dat dit wordt uitgevoerd voor de record waarvan ik met de muis op de cel met de rechterknop indruk?
 
Laatst bewerkt:
Dat kan alleen als je er een macro van maakt, want alleen die kan je aan een snelmenu toewijzen. Dat gaat via de <Eigenschappen>, tabblad <Overige>, optie <Snelmenubalk>.
 
Ik probeer het nu met een doorlopend formulier aangezien er dan een knop voor kan komen te staan die gemakkelijk de informatie uit die regel haalt.

Echter bij gegevensbladweergave kan ik via de vinkjes die ik maakte kolommen verbergen. Met een doorlopend formulier werken deze vinkjes niet meer. Het verbergen van de kolommen kan dus niet bij een doorlopend formulier?

P.s. Ik krijg hem wel "onzichtbaar", maar dan neemt hij nog wel alle ruimte in.
 
Laatst bewerkt:
Vraagstellers zoals jij hebben we te weinig, want je geeft zelf al het antwoord op je vraag :). Dat niet alleen: nog een verklaring erbij ook :D.
Ik weet niet wat je wilt; dynamisch kolommen zichtbaar maken / verbergen?
 
Haha, ik doe mijn best :P

De rij gegevens die ik in mijn subformulier heb staan is nogal lang en daardoor onoverzichtelijk. Daarom wou ik enkele kolommen met een selectievakje kunnen uitzetten als die kolommen niet nodig heb. In een gegevensbladweergave werkt dat heel mooi (de kolom neemt geen ruimte meer in beslag). Echter met een doorlopend formulier dus niet. Ik wou de record dus eerst selecteren met de rechtermuisklik, echter dat wordt te moeilijk en kan anders door het werken met een knop in een doorlopend formulier.

Is de enige optie dan het wijzigen van de kolombreedte om zo in een doorlopend formulier de kolom (nagenoeg) weg te laten gaan?
 
Je praat over 2 verschillende dingen:
De rij gegevens die ik in mijn subformulier heb staan is nogal lang en daardoor onoverzichtelijk. Daarom wou ik enkele kolommen met een selectievakje kunnen uitzetten als die kolommen niet nodig heb.
Wil je rijen (oftewel: records) verbergen, of kolommen (i.e. velden)?
 
De record is te lang en past daardoor niet geheel in het beeld. Ik wil daarom enkele Kolommen op afroep kunnen verbergen zodat de record, zoals deze wordt weergegeven in het beeldscherm, korter wordt.
 
Nieuwe klant voor de Access cursus :). In Hoofdstuk 18 van de cursus heb ik een heel hoofdstuk specifiek aan dit probleem gewijd. Met uiteraard een briljante oplossing ;)
 
Een mooie oplossing. Wist niet dat er meer cursussen waren bijgekomen.

Echter het formulier waarin ik werk bestaat uit een query. Daarbij denk ik dat de aangedragen oplossing niet sneller zal werken. Daarnaast kom ik dan weer op hetzelfde probleem om de gegevens over te nemen van de record naar een subformulier om deze aan te passen. Dit had ik nu opgelost met een knop.

De oplossing om met de hand zoals in een gegevensblad een kolom te laten verdwijnen en op te schuiven is dus nu in een doorlopend formulier niet mogelijk?
Liever werk ik in een gegevensblad maar dan kan ik niet aan de hand van bijvoorbeeld een knop een formulier opstarten en de geselecteerde record wijzigen *bijvoorbeeld de plaats*. (deze record bestaat is een query van 4 tabellen).
 
Zie steeds somberder in, maargoed het moet binnenkort werken eigenlijk.

Dat het nu een lange record is, is erg jammer, maar dat is voor later een zorg. Het geheel moet namelijk eerst maar eens werken. Het zou mooi zijn als het in een gegevensblad een mogelijkheid is om, net zoals de huidige knop in het doorlopende formulier, de gegevens van een record te kopiëren en een formulier te openen.

Zoals te zien moet er bijvoorbeeld een geopend record worden aangepast. Deze waarden staan in het tweede screenshot bovenaan. (dit is niets anders dan het kopiëren van de waarden uit het eerste blad naar een textvak). Dit is het eerste "simpelste" tabblad wat ik aan het vullen ben. Dus de eerste mogelijkheid om de gegevens aan te passen. Namelijk het verplaatsen van het materiaal naar een andere plaats.

Dit wordt gedaan aan door 3 keuzelijsten. De eerste is voertuig. Tweede is koffer. En derde zoekt de ID erbij aan de hand van de eerste twee keuzelijsten(vak en methode).

-------
Nu moet het dus zoiets zijn als "Zoek de record met InventarisID uit TblInventaris en wijzig in dat record de PlaatsID in hetgeen wat ik heb uitgekozen.

Wat is daarvan de VBA code ongeveer?


Iets in de trand van:?

Private Sub CboVerplaatsing_Click()
Table!TblInventaris.PlaatsID = [Forms]![FrmKeuze]![KLPlaatsV].[Value]
WHERE ((TblInventaris.InventarisID) = "InventarisIDV")
End Sub
 

Bijlagen

  • Inventaris1.JPG
    Inventaris1.JPG
    73,7 KB · Weergaven: 43
  • Inventaris2.JPG
    Inventaris2.JPG
    52,7 KB · Weergaven: 34
  • Inventaris3.JPG
    Inventaris3.JPG
    81,5 KB · Weergaven: 42
Laatst bewerkt:
Echter het formulier waarin ik werk bestaat uit een query. Daarbij denk ik dat de aangedragen oplossing niet sneller zal werken.
Wat maakt het uit dat het formulier op een query draait? Formulieren maken geen onderscheid tussen tabellen en queries. Beide zijn gegevensbronnen. Sneller? Zodra je ergens moet klikken, is het al niet snel. Maakt inderdaad dan zelden uit waar je klikt. Maar volgens mij is snelheidswinst je allerlaatste probleem...
Overigens ben je met hogeschool oplossingen bezig, en ik vraag me af of je daar al aan toe bent. Polsstokhoogspringen omdat je toevallig net de stok kan dragen? Geen goed idee :).
Een formulier openen vanuit een gegevensblad subformulier kan overigens heel simpel met een Dubbelklik op het record, of een enkele klik. Waarom zou je dat met de rechtermuis knop willen? (zie regel hierboven).

En je kopie code is uiteraard leuk bedacht, maar niet bruikbaar. Wil je gegevens verplaatsen op tabelniveau, dan moet je een bijwerkquery maken en die uitvoeren.
 
Ik begrijp je advies. Echter deze database is nu hetgeen ik nu mee bezig ben en wat draaiende moet. Een simpele database schrijven welke ik niet kan gebruiken is ook zonde. Het wordt geschreven voor mijn vrijwilligerswerk bij een Stichting waarvan ik het materiaal beheer. Ik doe het nu dus in vele Excelbestanden en dat is gewoonweg onwerkbaar (+/- 19 bestanden met +/- ieder 12 tabbladen). Ik krijg het voor elkaar, maar voor sommige dingen ben ik een dag bezig terwijl dat met één klik op de muis zou moeten kunnen in Access. Ik probeer het nu dus ook zo praktisch (tijdwinst) mogelijk te maken. Dat het mijn huidige kennisniveau van VBA en Access overstijgt weet ik bijna wel zeker. Maar met enige hulp en veel geduld en leeswerk hoop ik/moet ik er kunnen komen.

Dat er geen verschil zit tussen een query en tabel snapte ik btw. Ik probeer een goed beeld te schetsen van mijn (te schrijven) database.

Ik probeer nu de lay-out enigzinds af te maken zodat ik het idee over de database wellicht beter kan tonen. Als ik die "af" heb zal ik hem hier posten.

------

De code die ik had neergezet kwam (iets aangepast) uit een bijwerkquery. Echter ik vroeg mij dus af hoe ik dit in hoofdlijnen zou moeten neerzetten in VBA. Het gaat niet om het letterlijk verplaatsen van een record naar een andere tabel, maar het veranderen van een waarde in een bepaalde record in een tabel.

Ik waardeer uw input ten zeerste (en ben blij dat je het nog niet hebt opgegeven haha)
 
Laatst bewerkt:
Het woord 'verplaatsen' was een typfout (voor zover je een heel woord als typfout kan bestempelen), dat doe je uiteraard ook niet met een bijwerkquery (wat ik dan wel weer goed zei :) ). Ik snap best dat je een mooi systeem wilt hebben dat eenvoudig in het gebruik is. Maar juist bij gecompliceerde systemen moet het fundament goed zijn, anders stort de constructie in. Als je met 'layout' een Functioneel Ontwerp bedoelt, dan wacht ik graag met volgende opmerkingen tot dat klaar is ;).
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan