Nieuwe record in subform geeft error voor null-waarde

Status
Niet open voor verdere reacties.

LodewijkG

Gebruiker
Lid geworden
6 dec 2012
Berichten
98
Beste,

Ik probeer een input formulier (frmFreight) te maken zoals bijgevoegd.

Ik kan het alleen niet werkend krijgen om een record toe te voegen via de button boven het subformulier, ik krijg bij het invoeren van de records een error dat ik een Null-waarde probeer toe te wijzen aan een variable die niet van het gegevenstype Variant is.

Bekijk bijlage LodewijkDB 6-10-15.rar

Ik begrijp niet goed wat ik nu fout doe, heeft iemand misschien een voorzet waar ik de oplossing zou kunnen vinden?

Ik hoor het graag.

Mvgr,

Lodewijk
 
Dat betekend dat de variabele die je gebruikt geen waarde heeft, Null dus. Dat is wat anders dan 0.
 
Waarom deze onnodig ingewikkelde constructie? Ik snap 'm niet. Wat denk je te bereiken met zo'n formulier?
 
Dat betekend dat de variabele die je gebruikt geen waarde heeft, Null dus. Dat is wat anders dan 0.
TS zegt volgens mij nergens dat-ie een 0 waarde krijgt. Maar wellicht lees ik verkeerd?
 
De reden dat je formulier niet werkt is een hele simpele en heeft te maken met de verkeerde query die je gebruikt. Die vult namelijk records in de tabel [tblCountry] en niet in [tblFreight]. Terwijl de naam ([qryFreight]) dat toch suggereert. Maar ik zou het dus echt niet zo doen...
 
Je hebt nu een hoofd- en subformulier proberen te maken op basis van de verkeerde tabellen en een onjuiste query zoals Octafish al aangaf (daar staat 1 veld in wat je nou juist niet had moeten opnemen).

Alles draait in jouw database eigenlijk om de tblOrder. Daarmee maak je de offertes en daar hang je de producten, labels en packaging aan. Er ontbreekt echter nog iets in dat rijtje volgens mij, en dat is de Freight.
Je kunt nu zelf denk ik wel bedenken wat dan je hoofdformulier moet zijn en wat je subformulieren moeten zijn.
 
Laatst bewerkt:
Dag allen,

Excuus voor mij verlate antwoord, moest weer even bijtanken na het hopeloos dood staren op m'n scherm. Wederom mijn dank voor jullie feedback.

Wat ik probeerde te bereiken is een gemakkelijk overzicht waar ik gemakkelijk kan filteren op expediteur, bestemming, datum, tijd, container grote, verschepingsmaatschappij.
(dit vind ik persoonlijk makkelijk door de lay-out als deze nu staat)

Ik heb dit geprobeerd klaar te spelen in een hoofdformulier met een subformulier, maar dan krijg ik de gegevens niet zoals ik ze wens gekoppeld. Namelijk door op een gegevenslijn (FreightId) in de subformulier te klikken, deze betreffende FreightId in mijn hoofdformulier te openen. Ik wil deze subformulier eigenlijk puur als navigatie gebruiken, hier zou ik geen gegevens in willen kunnen aanpassen of uitklaplijsten in terug zien, dit heb ik echter ook nog niet kunnen bereiken.

Dus hoe ik het in eerste instantie had opgezet, zonder dat ik dit werkbaar kreeg was:
Hoofdformulier: gelinked aan tblFreight
Subformulier: navigatie van tblFreight (in eerste instantie losgekoppeld zodat ik alle FreightId te zien krijg, waarbij als ik op één van deze klik, de gegevens naar boven komen in het hoofdformulier waarop ik ze zou kunnen aanpassen.)

Is de tweede optie in deze dan toch de juiste optie? Is er een manier om dan het hoofdformulier te laten reageren op de selectie in het subformulier?
 
Namelijk door op een gegevenslijn (FreightId) in de subformulier te klikken, deze betreffende FreightId in mijn hoofdformulier te openen.
Dat kan ook helemaal niet; je subformulier zou aan je hoofdformulier gekoppeld moeten zijn op basis van een koppelveld uit het hoofdformulier. Dus: je hebt een record in je hoofdformulier, dus in het subformulier zie je de gekoppelde FreighID's. Andersom is een zinloze stap!
Wil je zoeken op je hoofdformulier, zet dan keuzelijsten (met invoervak) op het hoofdformulier, en zoek daarmee. Of maak een apart (hoofd)formulier waarin je zoekrecords staan, en open op basis daarvan het hoofdformulier.
 
Is dit ongeveer wat je in gedachten had? Zie frmFreightPFL in de bijlage.

Dit is alleen maar even een simpel voorbeeldje van wat er standaard mogelijk is in Access! M.b.v. VBA kun je veel uitgebreidere zoekfuncties maken maar daar kan Octafish je beter bij helpen zoals je weet.
In dit geval heb ik het zoekveld dat je bovenaan het formulier ziet, gemaakt door in de ontwerpweergave het besturingselement 'keuzelijst met invoervak' aan te klikken en daarna in de kop van het formulier te plaatsen. Access opent dan de wizard voor keuzelijsten waarbij je kunt kiezen uit drie mogelijke varianten. Kies de derde variant: je wilt een record vinden op het formulier a.d.h. van de keuze die je maakt in de lijst.
Volg daarna gewoon de aanwijzingen van de wizard. De query waarop Access de keuzelijst baseert, kun je naderhand nog aanpassen bij de eigenschappen.

Overigens is dit formulier (net als die van jou) gebaseerd op slechts 1 tabel en is er geen sprake van een hoofd- en een subformulier. Ik zou eigenlijk niet weten of je een hoofd- en subformulier op basis van 1 tabel kan maken en of er überhaupt gevallen zijn waarin dat zin heeft.
Wat ik begrijp uit jouw verhaal is dat je per expediteur de verschillende bestemmingen, rederijen en containertypes e.d. in je database wilt opnemen met de bijbehorende kosten. Als dat zo is dan zul je een aparte tabel voor de expediteurs moeten maken en de ID daarvan ook in de tblFreight moeten opnemen. Dán kun je namelijk wél een hoofd- en subformulier maken waarbij je per expediteur de verschillende mogelijkheden kunt invoeren en/of opvragen.

PS, nog een tip: maak alsjeblieft geen keuzelijst met invoervak in een tabel zoals je nu hebt gedaan met de country in de tblFreight. Is alleen maar lastig in queries en formulieren. Maak gewoon de keuzelijst in het formulier.
Bekijk bijlage LodewijkDB 6-10-15.zip
 
Ik zou eigenlijk niet weten of je een hoofd- en subformulier op basis van 1 tabel kan maken en of er überhaupt gevallen zijn waarin dat zin heeft.
Hoeveel voorbeelden wil je hebben? :D
 
Ik wil deze subformulier eigenlijk puur als navigatie gebruiken, hier zou ik geen gegevens in willen kunnen aanpassen of uitklaplijsten in terug zien, dit heb ik echter ook nog niet kunnen bereiken.
Dat kan op verschillende manieren. Bij de eigenschappen van het formulier kun je in één keer alle velden blokkeren door de eigenschappen Allow Additions, Allow Deletions en Allow Edits (Toevoegingen Toestaan, Verwijderingen Toestaan en Wijzigingen Toestaan denk ik in het Nederlands) allemaal op 'Nee' te zetten. Dat heeft echter als nadeel dat eventuele zoekvelden op je formulier ook niet meer werken.

Maar je kan ook elk veld apart blokkeren. Je kan de eigenschap 'Ingeschakeld' op Nee zetten waardoor de velden lichtgrijs kleuren en eventuele uitklaplijsten niet meer werken.
Of je kan de eigenschap 'Locked' ('Geblokkeerd' in het Ned.?) die daaronder staat op Ja zetten (en 'Ingeschakeld' laat je op Ja staan). De velden worden dan niet lichtgrijs gemaakt en uitklaplijsten kun je nog steeds uitklappen maar je kan verder niks wijzigen.
 
Hoort niet thuis in dit draadje, maar wordt uitgelegd in de cursus. :).
 
Goedemorgen,

Bedankt PFL & Octafish, het is echter niet helemaal waar ik naar opzoek ben. Ik trachtte de achterliggende data visueel te maken dmv de tabeloverzicht. Maar gaat zoblijkbaar niet, ik ga even googlen naar formulieren die wellicht een andere oplossing kunnen geven voor mijn problemen.

Merci voor de feedback. Ik moet denk ik even zelf gaan worstelen.

Bedankt!
 
Je mag van mij best zelf doorworstelen; dat is aan jou :). Maar ik heb aangegeven waarom je formulier niet werkt, en ik neem aan dat je dat probleem hebt opgelost. Dus als je de nieuwe versie van je db post, kunnen we daar weer verder in kijken. 't Is natuurlijk niet de bedoeling dat wij de db voor jou maken :).
 
Klopt Octafish, is ook niet mijn bedoeling geweest, wilde checken of ik überhaupt in een goede hoek zat te knoeien. Mijn doel is om tevens te begrijpen waarom dingen het niet doen, kan ik het hopelijk ook repareren als iets fout gaat, vandaar mijn initiele vraag over de Null-Waarde. Die is mij nu helder. Thanks
 
Ben er zojuist achter gekomen dat een gesplitst formulier exact doet wat ik in eerste instantie probeerde te doen......
 
Echt nog nooit nodig gehad, zo'n gesplitst formulier :). Maar ik heb al jaren het idee dat dat type alleen nuttig is voor wat minder netjes genormaliseerde databases :)
 
Ik vind het nog niet zo gek voor wat hij voor ogen heeft. In het onderste deel kan hij alleen de hoofdlijnen van de expediteurs en routes weer laten geven door bepaalde velden te verbergen zodat hij snel de juiste kan opzoeken en selecteren. En in het bovenste deel ziet hij dan alle details van de selectie.
Op die manier hoeft hij niet allerlei al dan niet ingewikkelde zoekvelden te maken.
 
Wat is er dan mis losse keuzelijsten om te zoeken? Nemen echt ook heel veel minder plek in beslag. Ik hoef die overtollige records niet te zien, geef mij maar een formulier waarin ik makkelijk kan zoeken en dan de data zie van één record. Maar als TS er gelukkig mee is, zal ik 'm dat plezier niet misgunnen :D.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan