Formulier op basis van 2 tabellen waarde overnemen andere tabel

  • Onderwerp starter Onderwerp starter Johgs
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

Johgs

Gebruiker
Lid geworden
19 mei 2011
Berichten
340
Ik heb een formulier dat gebaseerd is op 2 tabellen, de ene tabel is de realisatie (invullen van lijstjes) van lijsten in de andere tabel (lijsttabel). In de realisatie tabel zijn de lijsten vermeld met Id, vandaar opname van de andere lijst om de naam te tonen in het formulier.
Nu wil ik een aanvulling maken waarbij uit de andere tabel het Id van een lab automatisch wordt ingevuld in de realisatie tabel. (er wordt slechts icidenteel van lab gewisseld, vandaar de invoer in de lijsttabel.)
Dacht het te realiseren met standaardwaarde = waarde in de lijsttabel maar dat blijkt niet te werken.

Hoe is het wel te realiseren?
 
Probleem inmiddels opgelost. Extra veld wordt nu al vanaf het aanmaken van de realisatie tabel meegenomen en dan werkt standaardwaarde wel omdat een nieuw formulier wordt geopend voor het toevoegen. Wat ik probeerde was om bij het openen van een formulier met gegevens uit een tabel gelijk een veld bij te werken via standaardwaarde.
 
Je vraag is al net zo onbegrijpelijk als je eigen antwoord. Goed dus dat je ‘m zelf wel snapt :).
 
Die reactie had ik al verwacht. :d
Er is een basistabel met inspectielijsten en monsternames.
Vanuit deze tabel wordt een nieuwe tabel samengesteld per lokatie met de inspectielijsten/monsternames voor die lokatie, (zou in één tabel kunnen maar dit heeft bepaalde voordelen vandaar). In deze tabel wordt o.a. het lab toegevoegd voor de monstername.
Vervolgens wordt een lijst/monstername gekopieerd naar het realisatiebestand via een planningformulier, dus wat lijst/monstergegevens en met toevoeging planningsdatum.
Vervolgens wordt de lijst/het monster genomen en een volgend formulier voegt de realisatie datum toe en bij monsters, wat extra gegevens, tevens wordt een bericht van monstername verstuurd met registratie van de melding.
Een volgend formulier voegt later uitslag en datum toe en verzend een uitslagmelding en registreert ook deze.

Wat ik probeerde was het lab toe te voegen op het moment van monstername beschikbaar gemaakt via join lijst naar de tabel van stap 2, en dat lukte niet.

De oplossing was het lab al in het planningsstadium mee te nemen, op dat moment wordt een nieuwe record aangemaakt en dan werkt standaardwaarde invullen wel. Niet in de latere stadia waarin alleen een recordbewerking plaats vindt.

Oftewel: ik probeerde het systeem aan te passen met toevoeging van het lab met alleen aanpassing aan begin en eind en tussenliggende deel ongemoeid te laten.

Maar de vraag is dus eigenlijk hoe neem je in een formulier de waarde van een veld van tabel 1 over een in een veld van tabel 2 waarbij de tabellen verbonden zijn via een join en samen de basis zijn voor een formulier.
Uiteraard zou het met een macro kunnen, na openen ga naar veld tabel 1, kopieer veld tabel 1 ga naar veld tabel 2, plak en einde macro, klaar.

Maar da's dan weer een macro hé....;)

(en ga nu niet zeggen dat dat de enige oplossing zou zijn).
 
Maar de vraag is dus eigenlijk hoe neem je in een formulier de waarde van een veld van tabel 1 over een in een veld van tabel 2 waarbij de tabellen verbonden zijn via een join en samen de basis zijn voor een formulier.
Daar creëer je een probleem voor jezelf, als je dit samen in één query/formulier wilt. Want dan moet je wel programmeren. Gelukkig hoeft dat ook niet, want Access heeft daar een simpele oplossing voor. De constructie Hoofd/subformulier namelijk, daarbij zet je de hoofdsleutel in het hoofdformulier, en de gerelateerde tabel in het subformulier. Als je dan records aanmaakt in het subformulier, krijg je automatisch het koppelveld gevuld.
Mij lijkt jouw constructie met het ene na het andere te openen formulier nodeloos ingewikkeld, maar je bent niet de eerste die veel te moeilijke oplossingen bedenkt, en zal ook zeker niet de laatste zijn. Dus ik heb voorlopig nog wel werk :)
 
De data kent nu eenmaal meerdere momenten van invoer en de data schuift op door het systeem. Vandaar de verschillende formulieren.
Eerst komt het op de agenda vanuit een planningsformulier, dan wordt het vanaf de agenda afgemeld als uitgevoerd, vervolgens staat het in openstaande onderzoeken en daarna bij verwerkte uitslagen. In ieder stadium heeft het bij behorende formulier ook nog andere gegevens dan enkel de aan te vullen gegevens.

De koppeling met de tabellen is enkel om het Id (van een bepaalde lijst) in de ene tabel te koppelen aan de bijbehorende naam in de andere tabel. Die laatste tabel wordt niet bewerkt.
Een gebruiker heeft weinig aan uit te voeren inspectie is nummer 3. ;-)
 
Ik heb nog steeds niet echt een idee wat je nu precies aan het doen bent, maar het lijkt op een inspectie/monstername waar wat vervolgstappen aanzitten. Dat zou ik dus wel degelijk allemaal op één formulier doen, eventueel met gekoppelde subformulieren voor de vervolgstappen. Die zet ik dan in tabbladen op het hoofdformulier, zodat je alles netjes vanaf één formulier kunt behandelen. Maar zonder voorbeeldje is er verder uiteraard niks van te zeggen. Je hebt het werkend voor jou, en dat lijkt mij de hoofdzaak. Maar op grond van de gegeven informatie zou ik zeggen: hou het geheel nog eens tegen het licht :).
 
En wat belangrijker is, de gebruikers werken er probleemloos mee, veelal met maar enkele regels instructie (en sommige zelfs helemaal zonder). :cool:
Eén formulier heeft nauwelijks of eigenlijk geen voordelen. Bij iedere actie moet sowieso al -een- formulier worden geopend, iedere actie is immers op een andere dag. Dan is een speciaal formulier wel zo handig dat enkel vraagt om de gegevens die dan moeten worden ingevuld, voorkomt ook fouten. KISS principe. :D
Zou je best de front-end willen sturen, maar die is inmiddels al ruim boven de 20 Mb terwijl die weinig doet zonder back-end en helaas, die data zijn eyes only.
 
Heb je geen ontwikkeldb met testdata? :). Bij mij krijg ik een FE zelden boven de 7Mb; met ook een hoop formulieren. Ben benieuwd hoe jij ‘m boven de 20 krijgt :). Veel plaatjes er in wellicht?
 
Geen testversie alleen een ontwikkelversie maar die draait met live data. Probleem is dat er zoveel datatabellen zijn die onderling gecombineerd kunnen worden dat een testversie vullen erg veel werk is. Daarnaast ben ik zo eigenwijs steeds te denken, hij is nu compleet. ;-)
Overweeg wel een dummy bedrijf toe te voegen.
Maar plaatjes zitten er (nog) niet in, en zouden dan ook enkel in de back-end staan. (scan handtekeningen bv.)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan