Record opzoeken en velden automatisch invullen

Status
Niet open voor verdere reacties.

ambie

Gebruiker
Lid geworden
14 apr 2008
Berichten
52
Hallo,

hierbij mijn eerste db.

1. Het is de bedoeling dat frmControles direct op het scherm komt.
2. Deze wordt gedeeltelijk ingevuld, bewaard en geprint.
3. De personen doen de controle en vullen de fiche met stylo aan.
4. De bediende roept dit record terug op en vult deze verder aan. +bewaren.


Optellen velden: In de kleine veldjes onderaan had ik een totaal gewild.
Ik heb dit gebruikt, doch het lukt niet: = [PassAankomstEU] + [PassAankomstPP] + [PassAankomstVisum]

Bedankt voor de hulp. Grts
 
Bestand met rapport. Heb alles gekopieerd van het formulier, omdat de afdruk hetzelfde moet zijn.


Bekijk bijlage Shipping.zip

Aha schitterend bedankt.


Formule: Ik had dit gedaan in Eigenschappen-gebeurtenis-voor bijwerken-opbouwfunctie voor expressies.
Heb dit verwijderd gezien het niet werkte.

Kun je dit terug ongedaan maken. Ik heb namelijk alle werkbalken uitgevinkt. :evil:
 
Laatst bewerkt door een moderator:
Ik zie in je formulier geen tekstvakken met de formule. Waar zouden die moeten staan?
Het formulier kun je als startformulier vastleggen via <Extra>, <Opstarten> en dan de naam van het formulier selecteren bij <Formulier weergeven>.
 
Zou je de quooten willen verwijderen? Het is helemaal niet nodig om een bericht waar je op reageert te quooten, en het maakt de draad nogal onleesbaar.
 
Kan ik de instellingen "formulier als startformulier vastleggen via <Extra>, <Opstarten>" terug ongedaan maken. Ik heb namelijk alle werkbalken uitgevinkt.
Thanks
 
Gevonden op internet. => Opstarten met shift ingedrukt
 
Het optellen van de velden is gedeeltelijk gelukt. Zie groen veldje.

Dit getal kan ik dus niet naar een tabel wegschrijven?
 

Bijlagen

In beginsel is het in databases een slechte gewoonte om gegevens die je kunt berekenen (zoals =[PassAankomstEU]+[PassAankomstPP]+[PassAankomstVisum]) in tabellen op te slaan. Reden? Die gegevens worden altijd 'live' herberekend, en als je in een record de brongetallen opslaat èn een berekening daarvan, dan is er geen directe koppeling tussen de gegevens. Je kunt dan straffeloos het totaal veranderen, wat dan geen invloed heeft op de brondata, en omgekeerd ook: als je iets verandert in [PassAankomstEU] heeft dat geen effect op het totaal. Het is dus volkomen onnodig, overbodig en extra foutgevoelig om berekeningen op te willen slaan. Enige uitzondering: gegevens die afhankelijk zijn van wisselende gegevens (prijsmutaties, BTW aanpassingen etc) sla je wèl op. Of je moet die gegevens kunnen berekenen op basis van datums. Kijk voor een uitleg over die problematiek in de Access cursus van deze maand, want daarin wordt precies dat onderwerp behandeld.
 
Voor de volledigheid: als je een berekening wèl wilt opslaan (komt voor, zoals gezegd) dan moet je het berekende veld dus koppelen aan een tabelveld. Maar als je dat doet, kun je er geen formule meer in zetten als Besturingselementbron. Het is het één of het ander. De oplossing is dan, dat je het veld vult vanuit de andere velden die de berekening bepalen. Je maakt dan voor elk van die velden een gebeurtenis (bijvoorbeeld de gebeurtenis <Bij wijzigen> of <Na bijwerken>) die het totaalveld vult. Dat ziet er dan zo uit:
Code:
Private Sub PassAankomstEU_Change()
    Me.PassAankomstTotaal = [PassAankomstEU] + [PassAankomstPP] + [PassAankomstVisum]
End Sub
En dat doe je voor alle velden die de berekening maken. Op die manier zie je het totaal veranderen als je een ander getal typt. En omdat het veld nu wèl te koppelen is (er staat geen formule meer in) sla je de berekening automatisch op.
 
OK bedankt.
Heb ondertussen nog wat zitten sleutelen.
Dmv de keuzelijst cboIMO kun je een schip oproepen.
In de andere velden blijft het formulier ieder keer hetzelfde schip plaatsen?
 

Bijlagen

Laatst bewerkt:
Wat wil je precies met die keuzelijst? Hij is nu gekoppeld aan één veld, en hij vult de overige velden bij het maken van een nieuw record. Maar zodra een record bestaat, hebben de onderlinge velden geen enkele relatie met elkaar. En daarom veranderen de overige gegevens dus niet als je een ander schip selecteert. Op zich volkomen logisch. Wil je eigenlijk een keuzelijst hebben waarmee je complete records opzoekt, dan moet je een andere (niet-afhankelijke) keuzelijst maken in de koptekst, of ergens anders, die dan als actie het eerste record opzoekt op basis van de gekozen waarde. Maar dat is dus heel iets anders als een tabel vullen, en één veld gebruiken om de overige gegevens te vullen.
Gek genoeg hoeft dat ook niet. Toen ik de db voor het eerst zag, kreeg ik al het vermoeden dat hij niet overdreven goed genormaliseerd is. Vanwege de complexiteit (onbegrijpelijke veldnamen voor een leek) kon ik daar niet gelijk een vinger achter krijgen. Maar nu dus al wat meer... Als je een tabel [tblControles] gaat vullen, en je wilt een controle invoeren voor een bepaald schip, hoef je alleen maar het ShpIMO op te slaan. De overige gegevens staan namelijk in de tabel [Schepen]. Dus die hoef je helemaal niet in te (laten) vullen. En die hoef je dus ook niet te veranderen als je een ander schip kiest. Het SchipID bepaalt voor welk schip de controle is, niet de naam etc.
 
Inderdaad Michel, alle schepen worden in de tabel schepen gestopt.
Wanneer een schip dan effectief binnenkomt, wordt een controleformulier gedeeltelijk ingevuld op pc en wordt afgedrukt.
Tijdens de effectieve controle wordt de rest van het formulier met pen ingevuld.
Terug in het bureel, dient de dispatcher dit formulier terug op te vragen en de in pen aangebrachte gegevens in te vullen op pc.
 
Neemt niet weg dat je de schip gegevens maar in één veld vastlegt. Wil je de rest zien, dan kun je die uit de tabel Schepen halen, door ze uit de gekoppelde keuzelijst te lezen. In dat geval sla je dus alleen de keuzelijst op, maar zie je de overige gegevens wel op het scherm.
 
Ik heb het formulier aangepast. Dus enkel CtlIMO wordt opgeslaan.
Ik vermoed dat ik een formulier nieuwe controle en een formulier reeds ingevulde controle zal moeten maken?
 

Bijlagen

Ik heb je vorige bestandje aangepast, want daar had ik ook al een andere verbetering in gemaakt. Kijk maar eens of je daar wat aan hebt ;)
 

Bijlagen

Nu nog mijn naam goed :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan