Met keuzevak in formulier gegevens uit tabel in ander tabel plaatsen

Status
Niet open voor verdere reacties.

De Vrije Vogel

Gebruiker
Lid geworden
8 apr 2006
Berichten
95
Ik wil in een formulier met een keuzevak een veld in een tabel/query selekteren, waarna er de gegevens van 2 velden van datzelfde record zichtbaar moeten worden in het formulier.
De gegevens van het keuzevak, als de 2 bijbehorende velden dienen in een andere tabel worden opgeslagen, omdat de gegevens in de brontabel kunnen wijzigen. Heeft te maken met license.
Keuzevak maken lukt wel, maar gegevens laten zien en dan opslaan, daar heb ik graag jullie hulp bij nodig.
Alvast weer bedankt.
Grtz, DVV
 
Simpel te doen, al zul je een stukje moeten programmeren... Je geeft overigens niet aan hoe je formulier is gekoppeld, of niet. En dat is wel belangrijk om te bepalen hoe je de gegevens kopieert naar de tweede tabel.
 
Gaat het om brongegevens die in de tijd wijzigen (bv andere voorwaarden. andere prijzen?).
Zo ja, laat even weten want dan gebruik je beter een andere aanpak.

Tardis
 
Hallo Michel en Tardis,
Allereerst ik wil een wijziging in een database aanbrengen, waar momenteel de specs van zijn gewijzigd.
Het formulier is een subformulier, wat gekoppeld is. Bijkomend probleem is nu, dat in de tabel waar de gegevens in opgeslagen moeten worden, ik deze kolom mis.
Voor Tardis: het is een Spray programma, waarbij de spuiters gecertificeerd dienen te zijn. Daarbij heeft een certificaat een geldigheidsduur, vandaar dat de status geregistreerd dient te worden.
Komen jullie er niet helemaal uit, dan kan ik altijd nog een gestripte versie van het programma opsturen, maar er zitten door de huidige wijzigingen nog een aantal bugs in.
Grtz en weer bedankt.
DVV
 
Dat dacht ik al.
Maak een aparte tabel waarin je de geldigheidsduur (geldig vanaf - geldig t/m) vastlegt.
Deze tabel koppel je aan je certificatentabel.
Tabel laat je via een verwijzende sleutel verwijzen naar je certificatentabel.
Records in de nieuwe tabel geef je een primaire sleutel (autonummer kolom).

Je keuzelijst baseer je op het certificaat dat nu geldig is.
Formulier baseer je op een tabel waarin je uitgegeven certicaten vastlegt met daarin het certificaatID en ID van de geldigheidsperiode.

Tardis
 
Een voorbeeldje is altijd handig. Dus dat zou ik zeker doen. Wat betreft je vraag: certificaten hebben een geldigheidsduur, en die zou je inderdaad moeten vastleggen. Maar niet in de tabel zoals je het nu voorstelt. Je kunt denken aan tabel waarin je de certificering vastlegt. In die tabel heb je dan een verwijzing naar de medewerker, tabel Certificaten (als er meer certificaten zijn) en de geldigheidsduur van het certificaat. Als je de historie van de medewerker ook nog wilt vastleggen, kun je die tabel nog koppelen aan een historie tabel, waarin je voor elke nieuwe periode een nieuw record aanmaakt. Per certificaat heb je in ieder geval (als je met één record werkt) een begin- en een einddatum, zodat je altijd kunt zien of een certificaat geldig is of niet. Wordt een certificaat vernieuwd, dan vervang je de begin- en einddatum. In een historie tabel maak je voor elke nieuwe periode een nieuw record. Het laatste record is daarbij altijd het actuele, en geeft dus de huidige status van het certificaat. Maar met een historie tabel kun je nog terugkijken naar vorige records, en dan heb je dus informatie beschikbaar als: wanneer heeft medewerker x voor het eerst het certificaat behaald? Gebruik je één record, dan overschrijf je steeds het record, en heb je dus alleen de huidige status. Is de historie niet interessant, dan hoef je die optie uiteraard niet te gebruiken.

Ik zie dus niet echt een reden om de certificaatstatus zelf op te slaan in een andere tabel, want de status kun je altijd afleiden...
 
Hi,
De opmerkingen hebben mij weer verder geholpen.
Ik zit in dezelfde lijn van gedachtegang. Centrale tabel waar de gegevens in worden opgeslagen.
Toegevoegd het huidige bestand in bewerking. Behoorlijk gestript, maar anders was het te groot.
De form [frmSprayRecordNew] hoe ik een nieuw record maak heb ik voor de duidelijkheid toegevoegd met alle subforms.
Het form: [SprayRecordAddSprayer] dient ervoor om, meer dan 1 medewerker en hieraan gekoppeld een andere tractor, toe te voegen. Dit was voorheen 1 - 2 spuiters (met bestrijdingsmiddelen), nu is er sprake van 6 medewerkers, welke tegelijk op 1 perceel met deze activiteit bezig zijn.
Suc6, thnx.
Grtz DVV
 

Bijlagen

  • Spray Record database Verison Helpmij.rar
    98,1 KB · Weergaven: 49
Hallo,
Ik heb de oplossing gevonden.
Hoe??? Dat laat ik nog weten om anderen te helpen.

Echter met het printen van de gegevens heb ik nog een probleem.
Ik roep met een uniek nummer de gegevens op in een formulier. Aan dit unieke nummer kunnen meerdere Sprayers met dezelfde gegevens hangen. Als ik de gegevens op een report print kan ik alleen de sheet van de eerste Sprayer printen. Een fout daarbij is, dat de gegevens welke uit een subform worden gehaald er vaker opstaan. Andere Sprayer kan ik niet printen, ook al ga ik naar dat scherm toe. Enigste manier tot nu toe is Sprayer ook kenbaar maken, maar dat wil ik eigenlijk niet. Bestaat er nog zoiets als een volgnummer binnen een formulier en zo ja hoe kan ik dat maken?
Bedankt voor jullie hulp.
Grtz,
DVV
 
Hallo Michel,
Ik ben 2 uur bezig geweest om een ingepakte versie te kunnen versturen om de boel duidelijker te maken. Echter ik blijf steken bij 127 Kb, m.a.w. te groot.
Kleiner gaat niet, anders is het verhaal niet compleet.
In het kort komt het hier op neer.
Met een formulier, incl. een subformulier, haal ik gegevens op welke ik wil uitprinten.
Aan dit formulier zijn een serie tabellen verbonden. De belangrijkste link is de hoofdtabel met de tabel extra Applicators. Hierdoor zie ik alleen de records met extra Applicators.
Het unieke veld in dit formulier is het SprayID. Hier kunnen in het geval van meerdere Applicatirs meerdere records onder hangen.
Ik moet voor iedere Applicator een opdracht (rapport) maken op naam. De onderliggende gegevens zijn hetzelfde. Met Prev en Next kan ik door het formulier gaan. Als ik deze wil printen dien ik de SprayID in te voeren, en als tijdelijke oplossing de ApplicatorID (=het snelst). Risico is natuurlijk dat het verkeerde nummer wordt ingevoerd.
Het rapport wordt met een hyperlink aangeklikt.
Ik hoop dat het verhaal een beetje duidelijk is.
Is er een charmantere oplossing.
Grtz en thnx Matt
 
Je kunt je db met Winrar opsplitsen in twee blokken van 100kb en 27 kb; dan lukt het wel. Anders kun je hem op www.mijnbestand.nl zetten bijvoorbeeld. Dan hoef je hem niet te splitsen.
 
Stom dat ik daar niet aan heb gedacht. Optie toch al vaker gebruikt.
Thnx.
Grtz,
Matt
 

Bijlagen

  • Helpmij Spray Program v2.part01.rar
    100 KB · Weergaven: 31
  • Helpmij Spray Program v2.part02.rar
    27,1 KB · Weergaven: 25
Je verwijst naar rapporten die er niet zijn.... Als het kan, een versie waar het juiste rapport bij zit :)
 
Hi Michel,:thumb:
Bij mij werkt het wel.
Open de form [frmSprayPlanningMoreApplicatorsPrt]
SprayID: 449
Je kunt met prev en next buttons bovenin of onderin de verschillende records zien.
Linksboven staat een hyperlink, als je daar op klikt moet je het EmplyID invullen. (temp. oplossing).
Anders aangeven naar welk report er wordt gevraagd.
Grtz,
Matt
 
Dit formulier (frmSprayPlanningMoreApplicatorsPrt) zit niet in je laatste bestand, en dus ook geen rapporten....
Excuus.... oude bestand :eek:
 
Laatst bewerkt:
Hi Michel,
Begrijp er niets van.
De bestanden welke er nu opstaan weer uitgepakt in andere directory en daar staat de form wel op.
Anders zet ik hem straks wel op mijnbestand.nl
Grtz
Matt
 
Je laatste bestand is prima; ik had de vorige versie geopend.
 
Oplossing was een beetje lastig, daar er diverse Applicators met de activiteit bezig waren.
Maar: Met Verwijder- en Toevoeg queries maak ik een nieuwe tabel met de gegevens van 1 Applicator + 1 Tractor en ExtraApplicator en ExtraTractor. De overige gegevens op de opdrachtform blijven hetzelfde. Zodra er meer dan een Applicator is kan ik met een opdrachtknop en het invoeren van het SprayID nummer een form oproepen. Je kunt door te verschillende records met hetzelfde SprayID lopen.
Met een opdrachtbutton wordt het rapport getriggerd.
Code:
 Private Sub PrtApplicationReport_Click()
    strWhere = "[SprayID] = " & Me.[SprayID]

    DoCmd.OpenReport "rptPesticideAP_TSYes", acViewPreview, , strWhere

End Sub
Waarna alle opdrachtforms worden geprint.
Met jullie hulp heb ik het zo kunnen maken.:thumb:
Enigste nadeel was, dat in Canada waar dit programma gebruikt wordt, de built-in macro's niet herkend worden. :rolleyes:Gebeurtenisprocedures wel.
Grtz DVV
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan