In Access een formulier openen onder voorwaarde

Status
Niet open voor verdere reacties.
Ik heb ook gezegd dat je bijlage niet klopte :).
Daarnaast is je verhaal dus van dien aard dat ik daar best een hoop van kan vinden.
 
Hallo Gert-Jan,

Ik heb helemaal geen verstand van macro's en geef alleen antwoord op je vraag hoe je bij volgende het gewenste formulier kunt openen.
Bij de keuzemogelijkheid "ter beschikking stelling" weet ik niet welk formulier je dan wilt openen. Bij die keuze krijg je dan ook een foutmelding!

Octafish komt zeker met een antwoord waar je meer aan hebt. Hij heeft mij al zo vaak uit de "brand" geholpen.

Hier de code die ik eerder vandaag bedoelde.
Code:
Private Sub Knop6_Click()
    If Me.Soort_uitvaart = "Crematie" Then
        DoCmd.OpenForm "Opdracht tot begraven- Locatie"
    ElseIf Me.Soort_uitvaart = "Begrafenis" Then
        DoCmd.OpenForm "Opdracht tot begraven- Locatie"
    ElseIf Me.Soort_uitvaart = "ter beschikking stelling" Then
        DoCmd.OpenForm "Weet ik niet"
    End If
End Sub

Succes met het verder ontwikkelen van je programma.

Gr. Jan
 
Twee tips: hang die code gelijk aan de keuzelijst (heb je toch nodig) en gebruik Select Case.
 
Hallo mannen,

Ik ga er mee aan de slag, ik weet nog niet hoe ik die code aan de keuzelijst vast moet knopen maar ik probeer wel wat.
Ik laat nog weten of deze oplossing mijn vraag opgelost heeft, hierna zal ik de topic sluiten met 'opgelost'

@Octafish, heb je er nog over na kunnen denken?
Heb je overigens mijn bestandje nog bekeken en heb je nog steeds het gevoel dat alles in één formulier kan?
Je vertelde dat het waarschijnlijk ook kan onder Word, ik was erg benieuwd of dit mogelijk is.

Ik wacht je reactie dan ook even af,

Gr. Gert-Jan
 
Ik zal een formulier in de bijlage zetten zoals een crematorium b.v. hebben zoals het er uit moet komen te zien. Volgens mij kun je dit in Access niet zo krijgen.
Dan ken jij Access niet.... Dit is in Access geen probleem. Wel puzzelen, maar dat is het in Word ook :). Overigens noem je het een 'formulier', maar je praat hier over een 'rapport', geen formulier.
 
Ik heb overigens even snel naar je db gekeken, en vooral je tabel [Uitvaartformulier] zit heel slecht in elkaar; de tabel is totaal niet genormaliseerd. Dit is een Excel oplossing, geen database.
 
Hallo Octafish,

Ik had ook gezegd dat ik niet erg bekend ben met Access, misschien kun je me iets meer vertellen over het normaliseren van een tabel?
Het hoeft geen heel verhaal te worden of zo maar ik had ook zeer graag willen weten hoe jij het zou doen als je de gegevens over meerdere tabellen zou moeten verdelen.

Wat zou hiervan het voordeel zijn?

Ik hoor het graag van je,

Gr. Gert-Jan
 
Je kunt eens beginnen met de eerste hoofdstukken door te nemen van de Access cursus in de Handleidingen sectie; daar begin ik met het uitleggen van het normaliseringsproces. In essentie komt het er op neer dat je in een database enorm veel waarde hecht aan gegevensintegriteit. Dat betekent: geen gegevens op (kunnen) slaan die elkaar tegenspreken bijvoorbeeld. Simpel voorbeeldje: ik kom op het forum regelmatig databases tegen waarin de maker een veld [Datum] gebruikt, een veld [Jaar], een veld [Maand], of een veld [Leeftijd] in combinatie met een veld [Geboortedatum] en ga zo maar door. Dit omdat het dan zo 'makkelijk' is om te filteren op orders van een bepaalde maand bijvoorbeeld, of leden van een bepaalde leeftijd. Vul je zo'n tabel in, dan kun j probleemloos de datum 19-7-2016 invullen, het jaar 2014 en de maand 'april'. Of het geboortejaar 19-7-1990 en de leeftijd 33. Gegevens dus die elkaar tegenspreken. Dat is iets dat je niet wilt in een database. Eén van de hoofdregels luidt dan ook: gegevens die je kunt afleiden uit andere (niet-deelbare) gegevens sla je niet op in de database.
Jij hebt 3 velden Aanhef. Niet alleen 2 velden teveel, het zijn ook nog eens berekende velden. Weg ermee!

Volgende regel: in een database wil je geen datareduntantie zien. Wat is dat? Je wilt voorkomen dat je herhalende gegevens meerdere malen moet invoeren in dezelfde tabel. Neem het veld [Geslachtsnaam (ouders) vader]. Niet alleen een ongelukkige naam (spaties in de naam) maar absoluut in de verkeerde tabel. Stel dat een gezin bij een ongeluk 4 kinderen verliest, die moeten worden begraven. Dan maak je dus 4 records aan, voor elk kind één. Maar je moet wél 4 keer de 6 oudervelden invullen! Dat is dus redundantie. En moet je voorkomen. Want de ene medewerker vult de oudernaam in als 'Van de Betouw', en de tweede maakt er 'van den Betouw' van. Jij weet dat het dezelfde persoon is, de database echter niet. Twee verschillende namen namelijk.

Volgende fout: in je tabel [Uitvaartformulier] verzamel je gegevens die niets met elkaar te maken hebben. Wat heeft een veld [Muziek optie 1:] te maken met een veld [Straat OG]? Niets toch? Het laatste veld is, net als de eerdere persoonsgegevens, een persoonseigenschap. Het eerste veld (wat dus leidt aan dataredundatie, want je hebt het veld 4 keer nodig, zie eerder punt) is een eigenschap van de uitvaartdetails.
En zou zou ik dus nog wel even door kunnen gaan!

Wat je in mijn ogen moet doen, is de gegevens in de juiste groepen onderbrengen. Persoonsgegevens bij persoonsgegevens (dus alle persoonsvelden bij elkaar in een tabel met eventueel een statusveld), alle uitvaartgegevens bij elkaar in de tabel [Uitvaart], en alle uitvaartspecs in de tabel [Uitvaartdetails]. Die laatste koppel je dan aan de tabel [Uitvaartmuziek] waar je dus de muziekrecords in opslaat.
 
Hallo Octafish,

Op zich snap ik precies wat je bedoeld met je reactie, en het voorkomen van dubbele gegevens.
Volgens mij heb ik dit juist ook gedaan, het is ook met mijn bestand niet mogelijk om deze gegevens dubbel in te voeren.
Wat de regel betreft m.b.t. de aanhef, ook dit heeft een reden en kan niet verkeerd gaan, als ik namelijk de geslachtskeuze invoer van man of vrouw dan bepaal ik tevens de aanhef.
In de word-documenten komt dan de juiste aanhef te staan.

Waarschijnlijk zal het zo zijn dat ik Access niet geheel volgens de regels gebruik maar dat is natuurlijk voor mij ook een leerproces.:)

Ik zal er eens een studie van maken, ik had trouwens ook niet gezien dat er een hele cursus in dit forum aanwezig was.:D

In ieder geval bedankt voor je hulp en zal mijn best doen op dit op een juiste manier werkend te maken.

Groeten Gert-Jan
 
Wat de regel betreft m.b.t. de aanhef, ook dit heeft een reden en kan niet verkeerd gaan, als ik namelijk de geslachtskeuze invoer van man of vrouw dan bepaal ik tevens de aanhef.
Databases ontwerpen is een lastige zaak en (in tegenstelling tot broddelen in Word of Excel) ook een écht vak. Jammer genoeg denkt Microsoft nog steeds dat iedereen die in staat is een programma te openen daarmee ook de kennis heeft om dat programma op de juiste manier te gebruiken. Iets dat met Word en Excel, zoals al gezegd, geen enkel probleem is. (Hoewel...) Maar databases maken is dus echt wel een (ook nog eens moeilijk) vak.
Jouw opmerkingen (ik heb er maar 'één gepakt, ik had ruime keus :) ) duiden er op dat je dat vak niet, of nauwelijks, beheerst. En dat geeft natuurlijk niet; alles moet geleerd worden. En alles begint met de eerste les :). En één van die eerste lessen is dus, dat je geen afleidbare of berekenbare gegevens opslaat. En kijk eens naar het aantal berekende velden in jouw tabel...

Laten we nog eens naar je formulier kijken (waar ik overigens echt wel dubbele gegevens kan invoeren, ook al beweer je anders).
Je koppelingen zijn (hoewel technisch correct) op zijn minst niet handig; het is namelijk nooit verstandig om een tekstveld van deze lengte als sleutelveld te gebruiken. Daarvoor gebruik je een (auto)nummerveld dat je dan terugkoppelt in de tabel [Uitvaartformulier] (wat overigens een bijzonder verwarrende naam is; het is namelijk geen formulier, maar een tabel. En hoe wil je dan het bijbehorende formulier noemen? Oh ja, dat heet dan weer [Uitvaartonderneming] :). Dat zou ik toch echt omgekeerd gedaan hebben...)

En kijken we nog eens naar de velden in die tabel, dan zie ik daar de velden [Soort uitvaart], [Crematorium] en [Begraafplaats]. Je kunt in één record iemand zowel begraven als cremeren. Ik mis dan nog levenslang opsluiten :). Nu ik het daar toch over heb: wat is volgens jou het verschil tussen een crematorium en een begraafplaats? Ik zie dat namelijk niet terug in je tabellen [Adressen crematoria] en [adressen begraafplaatsen]. En dat is natuurlijk ook logisch, want er is geen verschil! Het zijn beide objecten met adresgegevens, meer niet. Hooguit dat de procesverwerking een beetje anders verloopt, maar de objecten zelf zijn identiek. Eén tabel dus! En dat betekent ook dat je in de tabel [tUitvaarten] maar één veld voor de locatie hoeft te hebben. Op basis van de keuzelijst [Soort uitvaart] kies je dan Crematorium of Begraafplaats, en op basis van die keuze zie je in de keuzelijst [Locatie] (of hoe je die wilt noemen) ofwel crematoria ofwel begraafplaatsen. Die filter je dus op de tabel tAdressen waarin zowel de crematoria staan als de begraafplaatsen, met een extra veld waarin je aangeeft of een locatie een begraafplaats is, een crematorium of beide (dat kan natuurlijk ook). En over die laatste optie gesproken: hoezo dubbele records? Nu moet je een locatie die beide doet, toch echt 2 keer invoeren! Begin je een beetje te zien waar ik naar toe wil?

En dan de tabel [ja/nee/onbekend/nvt]. Wat moet je daar nu mee? Dat zijn antwoorden, geen tabel... Die kan dus echt weg.
 
Hallo Octafish,

Ik denk dat het kwartje een beetje bij beetje begint te vallen.
Het uitgangspunt van mijn vraag was om ervoor te zorgen dat ik bij een keuze begrafenis of crematie naar het desbetreffende formulier zou kunnen gaan.
Stel dat ik dit voor elkaar zou krijgen, zou inderdaad een volgende keer, wanneer ik het dossier opnieuw zou openen, een andere keuze gemaakt kunnen worden:(
Iemand kan dus in mijn geval zowel begraven worden als gecremeerd, dat wil niemand:p

De reden dat ik overigens die tabel met ja-nee-n.v.t. heb gemaakt, komt voort uit het feit dat ik een opzoekfunctie (Wizard Opzoeken) met een keuzelijst heb gemaakt, hierbij heb ik gekozen om deze opzoekwaarden uit een tabel te halen, in plaats van zelf te typen. Ik heb gelezen in het eerste cursusdeel dat jij daar geen fan van bent. Brengt dit verwarring in de tabel structuur?

Het enige waar ik nu dan tegenaan loop, en dat zou ik dan eerst moeten uitvogelen, is dat ik in Word met het samenvoegen van velden geen gegevens uit meerdere tabellen kan halen.
Misschien dat ik toch in Access een soortgelijk document kan opstellen.

Nogmaals hartelijk dank voor je duidelijke uitleg.

Gr. Gert-Jan
 
En ik heb je al gezegd dat je Word niet nodig hebt :). Je kunt met de rapport functie van Access perfecte output genereren. Laat Word lekker bij de tikgeiten liggen :D.
 
Hallo Gertjan,

ik reageer even op je bericht, om dat deze vraag, daar ben ik ook bezig, ik weet alleen totaal niet waar moet beginnen!
mag ik jou vragen of het jou gelukt is ? om dit access voor elkaar te krijgen!
 
Laatst bewerkt:
Hallo Workchannel,

Ja ik ben aan het stoeien geweest met VBA en het is me gelukt wat ik wilde.
Mijn vraag was dus dat ik onder een voorwaarde met een button naar een gewenste pagina kan gaan.

Dit is het stukje code wat bij mij wel werkt.


Private Sub Knop6_Click()
If Me.Soort_uitvaart = "Crematie" Then
DoCmd.OpenForm "frm_Opdracht_cremeren"
DoCmd.Close acForm, "frm_crematie/ begrafenis", acSaveYes


ElseIf Me.Soort_uitvaart = "Begrafenis" Then
DoCmd.OpenForm "frm_Opdracht_begraven"
DoCmd.Close acForm, "frm_crematie/ begrafenis", acSaveYes


End If

DoCmd.GoToRecord , , acLast


End Sub
 
Hallo Gertjan,

bedankt voor reactie,

ik ben zelf bezig om zo uitvaartdatabase op te zetten (ik heb nog niks), maar zie ook niet zo goed hoe ik moet beginnen, in access,
met het zelfde uitgaan punt. is wel de 10 Formulieren met de zelfde gegeven moeten invullen,

Zou ik van u dat bestandje mogen hebben?

alvast bedankt

Workchannel
 
Hallo Workchannel,

De vraag of je mijn bestandje mag hebben is nee.:)
Het klinkt een beetje bot maar ben er nog niet mee klaar.

Het is niet één bestand wat ik heb maar er zijn meerdere bestanden aan gekoppeld.
Als je niet weet hoe je er aan moet beginnen dan heb je ook niks aan het bestand wat ik heb gemaakt.
Bovendien is het handiger ingeval van wijzigingen, dat je zelf weet hoe het geheel in elkaar steekt.
Sorry...

Met vriendelijke groet,

Gert-Jan
 
Hallo Gert-jan,

ik snap je reactie,

ik heb uit jou eerdere geuploade bestand een prima voorbeeld gehaald,
dus ik ben een database aan het opzetten, met een goed voorbeeld er bij van jou

ik heb allen een klein vraagje, helaas zit dat niet in dat eerdere geuploade bestand

hoe vul je de papieren in ?
Doe je dat in een rapport binnen Access of exporteren de gegevens naar word toe ?

in afwachting op je Antwoord,

Groetjes
workchannel
 
Hoi,

Ik doe dit via verzendlijsten/ afdruk samenvoegen en dan de wizzard volgen.
Op deze manier kun je de info vanuit Acces naar Word transponeren.
Ik weet dat Octafish het ook kan in Acces zodat je geen Word nodig bent.
Alleen moet ik dat dan weer uitvogelen hoe dat zit:)

Succes!
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan