toevoegen met formulier

Status
Niet open voor verdere reacties.

PeterVer

Nieuwe gebruiker
Lid geworden
30 okt 2018
Berichten
4
Een goeie morgen,

Hoewel ik een enthousiast MS-ACCESS gebruiker ben voor het werk, en dagelijks met tabellen en query’s in de weer ben,heb ik helemaal geen kaas gegeten van formulieren en rapporten. Ik ben hier momenteel een beetje mee aan het experimenteren en vandaar kom ik tot volgende vraag, theoretische oefening.

Ik ga uit van een voorbeeldbestand dat een tabel producten bevat met wat eigenschappen zoals kleur,prijs en dergelijke meer. Het productId is uniek en heeft een primaire sleutel.
Wat ik zou willen is een formulier dat mij een overzicht biedt van de data in tabel Producten en mij toelaat deze weg te schrijven naar tabel verkopen,daar zit ook een veld datum en aantal bij,die ik eventjes produceer met qryProducten.

Wie helpt mij graag op weg asjeblieft ? Ik wil deze oefening later nog uitbreiden maar kreeg graag eerst deze basis onder de knie. Alvast bedankt voor alle positieve feedback !

Grts Peter .
 

Bijlagen

  • oefening.zip
    28,5 KB · Weergaven: 15
Allereerst welkom bij HelpMij! Je stelt je vraag eigenlijk verkeerd:
Wat ik zou willen is een formulier dat mij een overzicht biedt van de data in tabel Producten en mij toelaat deze weg te schrijven naar tabel verkopen,daar zit ook een veld datum en aantal bij,die ik eventjes produceer met qryProducten.
Je wilt geen formulier dat vanuit producten wegschrijft naar Verkopen, maar je hebt een formulier nodig dat is gebaseerd op de tabel [Verkopen] en waarin je een product kan kiezen. En dat is heel wat anders. In essentie is een formulier niks anders als een laag die bovenop een tabel ligt. Zie een tabel als een naakte persoon, en het formulier als de kleren die die persoon aanheeft. Die kleren kunnen heel basaal zijn, een simpel standaard formulier, of heel luxe: een uitgebreid formulier met allerlei knoppen en acties die handelingen vereenvoudigen. Maar de aangeklede persoon is nog steeds dezelfde persoon, en dat geldt ook voor het formulier.

Een formulier (dat is gebaseerd op een tabel of query) doet dus niks anders dan data invoeren in de onderliggende tabel. Wat dat betreft kun je net zo goed in de tabel invoeren, ware het niet dat je gebruikers eigenlijk nooit in een tabel moet laten werken. Wat mij betreft heeft een gebruiker niks te zoeken in tabellen; die werken dus altijd via formulieren. In dit geval dus een formulier baseren op de tabel [Verkopen], en daarop een keuzelijst maken (met de wizard) die artikelen ophaalt uit de tabel [Producten].

Nog een dingetje: je hebt in je query een veld Aantal gezet (Aantal:1), waarschijnlijk met de bedoeling om alvast een standaardwaarde te hebben voor de aantallen die je gaat verkopen. Maar dit is niet de juiste weg. Elk veld in een tabel kan een Standaardwaarde hebben. In dit geval heb je bij Aantal de standaardwaarde 0 staan, wat natuurlijk een onzingetal is; niemand maakt 'verkoopacties' op basis van 0 artikelen. Dan verkoop je namelijk niks. Dus als je daar 1 van maakt, dan kan dat veld Aantal weg uit de query. Iets vergelijkbaars kun je doen met het veld [Datum], waar je met de formule Date() de huidige datum alvast invult. En dat is een logische waarde voor verkopen op de huidige dag.
 
Octafish,
Bedankt voor jouw bijdrage,je verwoordt het met zo’n mooie metafoor !

Een formulier gemaakt op basis van de tabel verkopen,want deze wil ik bewerken,een invoervak voorzien op basis van de tabel producten,deze verschaft mij de beschikbare info.

De query heb ik verwijderd en de datum en hoeveelheid probeerde ik als standaardwaarde mee te geven in het formulier.

Tevens een knop om steeds een record toe te voegen,nu had ik nog graag de velden AKP en VKP meegenomen gezien wanneer ik het record toevoeg.
Ook lijkt het er op dat ik de reeds ingegeven data in verkopen overschrijf na het formulier te sluiten,opnieuw te openen en te gebruiken,dat wil ik natuurlijk ook niet hebben.

Heb jij ook daarvoor een tip die mij verderhelpt ?
 

Bijlagen

  • oefening.zip
    78,8 KB · Weergaven: 11
Als je een formulier opent, kijk je naar het eerste record. Ga je gelijk typen, dan overschrijf je inderdaad dat record en dat wil je uiteraard niet. Maak er eens wat bladerknoppen bij met de wizard. Daarmee kun je ook een knop <Nieuw> maken, voor een nieuw record. Tevens kun je (raad ik niet gelijk aan) het formulier openen in de Toevoegmodus, en dan zie je dus niks van de oude records maar maak je gelijk een nieuwe aan.
 
Ik wil telkens het formulier wordt geopend enkel en alleen maar data kunnen toevoegen aan de tbl verkopen,
daar is het formulier voor opgezet in het gebruik zoals ik het voor de eindgebruiker voor ogen heb.
Deze mag nimmer of te nooit wijzigingen kunnen aanbrengen aan records die eerder werden opgeslagen,hoe kan ik die mogelijkheid activeren om enkel en alleen maar in de toevoegmodus te kunnen openen ?
 
In dat geval moet je het formulier dus in de Toevoegen = Aan modus zetten via de Eigenschappen van het formulier. Die eigenschap vind je op het tabblad <Gegevens>. Heb je dan een apart formulier voor bekijken/muteren? Je bent zeker niet de eerste noch de laatste die dat zo doet, en toch gebruik ik dat systeem nooit. In mijn optiek kun je alles keurig met één formulier afhandelen, waarbij je het formulier vanaf het hoofdformulier opent in de juiste modus.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan