ACCESS - Foutmelding bij invoer data

Status
Niet open voor verdere reacties.

hausi

Gebruiker
Lid geworden
17 jan 2010
Berichten
84
Ik heb een begin gemaakt met een applicatie voor een tweedehands dameskledingwinkel.
Deze winkel neemt kleding in van mensen, verkoopt die kleding en betaalt dan een percentage uit aan degene die de kleding in heeft gebracht.
De database bevat 4 tabellen en aan aantal formulieren.
De tabellen:
tblKlanten - spreekt voor zich denk ik
tblArtikelCodering voor een duidelijke omschrijving van de kleding en de bijbehorende code
tblArtikelen voor de ingebrachte kleding
tblInbreng voor de datum van inbreng, het inbrengnummer (voor de labels op de kleding) en het klantnummer zodat je weet wie wat heeft ingebracht.

Het formulier frmNieuweInbreng is voor het invullen van kledinginbreng van klanten. Hier doet zich het probleem voor, ik krijg de melding dat het automatiseringsobject KlantNummer zich niet in het object bevindt.

De tabellen hebben onderlinge relaties en ik dacht echt dat ik het goed had gedaan maar nu twijfel ik daaraan.
Ik wilde het graag zó opzetten dat een klant veel inbrengummers kan hebben en één inbrengnummer veel artikelen kan hebben zodat ik geen records krijg met veel dubbele data zoals de datum, klantnummer e.d..

frmNieuweInbreng heeft als recordsource de tblInbreng en bevat sfrmInbreng dat de tblArtikelen als recordsource heeft.
Het subform bevat een combobox met als rowsource de tblArtikelCodering.

Ik heb de database bijgevoegd en wil jullie vragen er eens naar te kijken zodat je me misschien kunt vertellen waar ik zo hopeloos de fout in ga.

Alvast bedankt,
Hans
 

Bijlagen

  • Laundries.rar
    261,4 KB · Weergaven: 14
Laten we eens bij het begin beginnen: je formulier frmNieuweInbreng is gekoppeld aan de tabel [tblInbreng] (wat correct is) maar op dat formulier staat weliswaar wel een tekstvak [Klantnummer], maar waarom is dat geen keuzelijst met invoervak? Wat ik al helemaal niet snap: waarom zit daar een Load procedure onder die een complete tabel doorloopt ( en dan stopt bij het laatste nummer)? Wat is daar de gedachte achter? Als je nieuwe inbrengnummers wilt genereren, kun je daar beter een aparte functie voor gebruiken die je als Standaardwaarde instelt. Of koppelt aan de (dan aanwezige) keuzelijst voor de klantnummers. Het 'voorloopnummer' 301 vind ik ook vreemd; als je een vaste waarde gebruikt, lijkt mij het nut 0,0. Dan is het alleen maar nietszeggende tekst die er voor staat. Als het volgnummer (de voorlooptekst) volgens een patroon moet worden aangepast, dan kun je dat weer prima automatiseren lijkt mij.

Je échte fout komt doordat je de verkeerde velden gebruikt om het subformulier te koppelen. Wat raar is, want je beschrijft de relaties wél goed! TblInbreng en TblArtikelen kun je alleen koppelen op [InbrengNummer]. Jij koppelt ze in het hoofdformulier echter op Klantnummer, wat dus niet in de tabel [tblArtikelen] zit. Je moet dus koppelen op [InbrengID].


Kortom: ik zie wel wat verbeterpunten :).
 
Bedankt voor je antwoord Octafish,

In mijn ijver de database op te schonen om te kunnen posten op dit forum ben ik een aantal dingen vergeten te verwijderen.
Het formulier frmNieuweInbreng wordt geopend door frmInbrengZoekKlant als je dubbelklikt op de klant die kleding inbrengt. Ik wilde bij het openen van frmNieuweInbreng het KlantNummer als OpenArgs gebruiken maar dat lukte me niet omdat eerst het subform wordt geopend en dan pas het hoofdfomulier.... ook zoiets. Ik heb dat even opgelost door middel van een Public (niet de meest elegante oplossing, ik weet het).
Maar goed, dat is de reden dat ik daarvoor geen keuzelijst met invoervak gebruik. Dat verklaart meteen het doorlopen van de tblKLanten, daar worden de gegevens opgehaald van de klant behorend bij het klantnummer en worden dan gepresenteerd voor de gebruiker.

Het 'voorloopnummer' 301 is tijdelijk. De gebruikers hebben een systeem in gebruik waar het inbrengnummer bestaat uit de maand, de opeenvolgende inbreng en het klantnummer. Dus 304-188 betekent een inbreng in de derde maand, de 4e inbreng van die maand van klant 188, ik maak daar een procedure voor.

Ik heb de koppeling van het sudformulier met het hoofdformulier aangepast en de foutmelding is weg, dat is een begin.
Wat ik echter zie is dat wanneer ik een invoer doe voor twee klanten achter elkaar, het InbrengID niet automatisch wordt verhoogd en zo worden twee inbrengen onder hetzelfde InbrengID opgeslagen en dus gekoppeld aan maar één klant.
Dat begrijp ik nog even niet.

EDIT:

Ik ben er inmiddels wel achter, ik moest het formulier nog even op gegevensinvoer zetten :)
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan