Subformulier geeft geen waardes

Status
Niet open voor verdere reacties.

rickje1990

Gebruiker
Lid geworden
23 jul 2013
Berichten
19
Hallo helpmij.nl leden,

Ik zal mezelf even kort voorstellen want ik ben nieuw hier.
Hoi ik ben Rick.

Kijk dat was snel, maar nu mijn probleem. Ik zal de situatie zo goed mogelijk uitleggen:

Het gaat hierbij om een database in access 2007

Ik heb meerdere tabellen gemaakt:

Klanten
Merken
Werkplaats rapporten
type apparaten

Dat ging allemaal prima.

In de tabel werkplaats rapporten komen gegevens van klanten die iets afleveren ter reparatie met een soort van werkplaats ID, autonummer in het format 20000001
In de tabel klanten staan al hun NAW gegevens met een klantnummer ( Primair en autonummer in het format 10000001 )
In de tabel merken staan wat merken, zodat ik de tabel werkplaats rapporten kon testen, idem voor type apparaten.

De tabel klanten en werkplaats hebben een relatie, omdat ik in de tabel werkplaats het klantnummer opzoek uit de tabel klanten ( is een drop down lijstje )
In de tabel werkplaats komt dan ook het klantnummer te staan nadat ik dat geselecteerd heb ( een opzoek veld waar ik een waarde kan ingeven zou handiger zijn, iemand een idee? zodat ik bv op postcode kan zoeken )

Waar gaat het mis?

Ik heb een formulier gemaakt van werkplaats rapporten, om dat het er uiteindelijk netjes uit moet gaan zien. Nu wil ik een subformulier maken in het formulier werkplaats rapporten waar alle relevante gegevens komen van de tabel klanten ( naam, achternaam, adres, postcode, plaats, telefoon. ) deze gegevens moeten dus automatisch gekoppeld worden aan het veld klantnummer in de tabel werkplaats rapporten, die zijn gegevens weer haalt uit de tabel klanten. Het subformulier maken gaat prima, ik kan zelfs instellen dat de velden klantnummer gekoppeld moeten worden aan elkaar. Na het bekijken van het formulier is deze leeg, terwijl wel het hoofdformulier is ingevuld. Ik krijg ook geen foutmelding, enkel een leeg subformulier. Wanneer ik het subformulier los open zie ik overigens wel de juiste waardes.

Iemand een idee?
 
Hallo Rick,
Allereerst natuurlijk welkom bij HelpMij!

Tip 1: gebruik geen namen als 'Werkplaats rapporten' voor een tabel; ten eerste is een Rapport een apart object in Access, dus de verwarring was al gelijk compleet na het lezen van de eerste alinea's. Bij doorlezen blijkt dat je helemaal geen tabel maakt voor rapporten, maar een tabel hebt voor Onderhoud. Noem hem dan ook tblOnderhoud. Ten tweede: spaties in namen zijn niet handig, want Access gaat daar niet echt jofel mee om. Probeer die dus te vermijden. Ten Derde: gebruik in een tabel bij voorkeur geen keuzelijsten; in een tabel wil je zien wat je opslaat, niet wat het voor moet stellen. Keuzelijsten gebruik je op Formulieren.

Komen we bij de eerste vraag: gegevens opzoeken doe je met keuzelijsten; daarin zet je de kolommen die je wilt zien bij het opzoeken, en de eerste kolom is de opzoekwaarde. Die kun je dus prima inrichten voor je postcode. Formulieren maak je niet omdat het er 'uiteindelijk netjes uit moet gaan zien', maar omdat het voor de gebruiker de enige invoeroptie is. Gebruikers laat je nooit in je tabellen wroeten. Daarom hoef je die ook niet 'mooi' te maken, want dat is peerlen voor de zwijnen gooien!
Je koppelmethode zou goed moeten zijn, want KlantNummer op Klantnummer moet gewoon matchen. Maar omdat je vermoedelijk met die keuzelijsten in je tabel zit, zie je niet wat er echt in staat, en ik vermoed dat je de verkeerde gegevens aan elkaar probeert te knopen. En dat kan niet.
Als je een query gebruikt voor je hoofdformulier op basis van Klanten en Onderhoud, dan kun je alle klantvelden die je wilt laten zien meenemen in de bron van het formulier, naast natuurlijk alle velden van Onderhoud. Je kunt dan gelijk alle klantgegevens zien als je (met een keuzelijst) een klant kiest. Mits die keuzelijst aan KlantNummer is gekoppeld, maar dat lijkt mij logisch.

Kom je er helemaal niet uit, maak dan een voorbeeldje en post dat mee.
Omdat je nog maar 1 berichtje hebt gepost, heb je de ultieme beginnersfout nog niet gemaakt en je kunt jezelf dus onsterfelijk maken door die te vermijden: blijf bij het reageren van de <Quote> knop af, en gebruik de knop <Snel reageren>. Op de een of andere manier zijn newbies mateloos geboeid door die Quote knop, en draadjes worden daar zo onleesbaar door :)
 
Bedankt voor je tips, het was alweer wat jaren geleden sinds dat ik een access database had gemaakt en ik denk dat doe ik zo ;) niet dus! Ik ga gelijk even alles aanpassen. Het zal vanavond worden eer dat ik daar tijd voor heb. Het idee van query snap ik nog niet helemaal, maar volgens mij doet access dat voor je als je die wizzard gebruikt. Heel erg bedankt!
 
Een formulier baseer je op een Tabel of een (Selectie)Query. Voor het formulier maakt het niet uit wat je gebruikt; het enige verschil in deze is dat een query velden uit meerdere tabellen kan bevatten. Ik zou daar de wizard niet voor gebruiken, maar de query gewoon in het Ontwerpscherm maken. Zeker als de Relaties al goed zijn, hoef je alleen maar de tabellen te selecteren, en de velden te slepen. De rest is peanuts. Daarna kun je de query opslaan en kiezen als Recordbron voor je formulier.
 
Het is gelukt, er zat een fout in mijn sleutel waardes ( eerste record krijgt waarde 1, maar ik had met een notitiemasker er 10000001 van gemaakt, en dat snapte het systeem niet. Ook maakte ik nog een variant met *00000001* zodat ik de barcodes kan gebruiken. )

Maar nog wel een vraag:
Ik zoek nu de klant gegevens in een formulier, met een selectie lijstje. Dat gaat prima met 20 klanten maar er moeten er meer dan 200 inkomen, en dat is alleen nog maar bij de lancering van mijn systeem. Welke functie kan ik het beste gebruiken? want typen in het lijstje lukt niet want dan is het een ongeldige waarde.
 
Ik snap je instellingen niet helemaal meer; je hebt het in je eerste post over Autonummers:
In de tabel werkplaats rapporten komen gegevens van klanten die iets afleveren ter reparatie met een soort van werkplaats ID, autonummer in het format 20000001
In de tabel klanten staan al hun NAW gegevens met een klantnummer ( Primair en autonummer in het format 10000001 )
Maar nu heb je het over
Het is gelukt, er zat een fout in mijn sleutel waardes ( eerste record krijgt waarde 1, maar ik had met een notitiemasker er 10000001 van gemaakt, en dat snapte het systeem niet.
Hoe zit het nu? Een Autonummer begint altijd met 1, en nummert zelf door. Daar helpt geen moedertjelief of notatiemasker aan. Ik vermoed overigens dat je Invoermasker bedoelt; er bestaat geen notatiemasker (om over een notitiemasker maar te zwijgen ;) ). Ik ken wel een trucje om autonummers met een bepaalde waarde (10000001 bijvoorbeeld) te laten beginnen; blijkbaar ken jij die ook. Maar als je die hebt gebruikt, heb je weer geen invoermasker nodig. Vreemd dus! Ik vermoed overigens dat je geeneens een invoermasker gebruikt, maar alleen de Notatie hebt aangepast (vandaar waarde 1) wat alleen het uiterlijk van het nummer verandert, niet de waarde.

Wat betreft je laatste vraag: een keuzelijst kan ruim 30000 waarden bevatten, dus daar kun je nog wel even mee vooruit. Als je er niet in kan typen, en dus ook niet naar een waarde in de lijst kan springen, dan heb je het verkeerd ingericht. Tijd voor een voorbeeldje?
 
Je hebt gelijk, ik heb het over de notatie, die heb ik zover gekregen om vanaf een gewenst nummer te nummeren :P met diezelfde notatie laat ik ook een barcode maken door * toe te voegen aan het nummer ( \*00000000\* )
Waarschijnlijk heb ik een aantal onnodige stappen gemaakt ;) Ook het invullen van de klantnummer gaat nu beter, nu ik tenminste het exacte cijfer gebruik. ( ik probeerde o.a. op postcode te zoeken, welke ook in het selectie lijstje zichtbaar is )
Eventueel kan ik de klantgegeven natuurlijk opzoeken via een apart formulier ( moet ik nog maken, maar dat is een eitje ).

Ik ben nog niet structureel genoeg om altijd de juiste term te noemen ( stukje laksheid :P )

Ik heb in ieder geval nog een stevige Google sessie voor me. Als dit werkt dan wil ik er facturen mee gaan maken.
En met die 30.000 waardes kom ik inderdaad een eindje mee. Maar is dat echt de max?

Nogmaals bedankt. Ik zal dit topic markeren al opgelost en in de toekomst een nieuw aanmaken als het nodig is.
 
Nogmaals: zoeken doe je gewoon in je keuzelijst; die kun je zo instellen dat je begint te typen en dan gelijk naar de eerste waarde gaat. Als hij dat bij jou niet doet, deugt je keuzelijst niet. Een apart formulier maken is dan zo'n beetje de grootst mogelijke omweg die je kunt verzinnen; waarom niet de keuzelijst werkend maken? Ik ken mensen die een nieuwe auto kopen als de asbak vol is ;)
En hoe wou je een barcode inscannen in een Autonummerveld? Dat is absoluut onmogelijk. Ook hierboven al gezegd: een Notatie doet helemaal niets met je opgeslagen waarde. Maakt niet uit wat je er allemaal optisch voor zet.
 
Het idee van de barcode is dat na het maken van het record en het uitprinten ervan ik het dmv de barcode sneller alle gegevens terug kan pakken ( werkplaats order of klantnummer inscannen en hopla ). Die keuzelijst ga ik nog uitpluizen, want als het hoort te werken dan zal het ook werken. ( keuze lijst met invoer vak is de goede toch? )
 
Laatst bewerkt:
Ja, dat is de goede!
 
Ik zal wel vervelend worden maar klopt het dat ik alleen kan "zoeken" op de hoofd waarde ( klantnummer in mijn geval ) of moet je op alle inbegrepen velden kunnen zoeken, want als dat laatste zo is dan doet iets helemaal verkeerd!

edit:

Ik gebruik gegevens uit een tabel, ik heb geen aparte query aan gemaakt, zou het daar aanliggen?
 
Laatst bewerkt:
Een keuzelijst laat zoeken op de eerste zichtbare kolom. Daarnaast kun je meer kolommen laten zien. Wil je op meer gegevens kunnen zoeken, dan kun je meer keuzelijsten maken op dezelfde tabel, met andere kolommen.
 
OK super, daar kan ik weer mee verder. Morgen dan ;)

Bedankt voor alle tijd en moeite!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan