Artikelbestand met unieke velden

Status
Niet open voor verdere reacties.

Jacobusje

Gebruiker
Lid geworden
15 apr 2021
Berichten
89
Goedemiddag,

Ik heb een raar probleem waar ik maar niet uit kan komen.
In een subformulier op een tabblad kies ik een artikel (uit een tabel)

Ik heb dus een tabel artikel en een tabel bestelling, zie bijlage 1
De artikelomschrijving heeft de eigenschappen als bijlage 2
Echter in het subformulier ziet de relatie er anders uit, bijlage 3

Als ik met bovenstaande een artikel kies in het subformulier kan ik de regel niet verlaten.
Dan krijg dan de melding: De wijzigingen die u in de tabel hebt aangevraagd, zijn niet gelukt omdat ze dubbele waarden in de index, primaire sleutel of relatie zouden creëren

Zet ik bij het artikel "Geindexeerd" vervolgens op "nee"
Dan kies ik een artikel en dat artikel wordt dan gelijk nog een keer in de tabel artikelen aangemaakt/toegevoegd. Die staat er dan dus 2 keer in.
Kies ik datzelfde artikel nog een keer dan staat die er 3 keer in enz.

De gegevenseigenschappen heb ik op allerlei manieren geprobeerd, bijlage 4.

Weet iemand wat ik fout doe/over het hoofd zie?
 

Bijlagen

  • Bijlage 1.png
    Bijlage 1.png
    7 KB · Weergaven: 28
  • Bijlage 2.png
    Bijlage 2.png
    14,7 KB · Weergaven: 30
  • Bijlage 3.png
    Bijlage 3.png
    7,1 KB · Weergaven: 26
  • Bijlage 4.png
    Bijlage 4.png
    14,2 KB · Weergaven: 31
Een hoop plaatjes, maar niet de juiste :). Waarom je het veld [Artikelomschrijving] op "Ja, geen duplicaten" hebt gezet is mij een volslagen raadsel. Het ID veld is je sleutelveld, en daarvan zou die eigenschap zo moeten zijn ingesteld. Het omschrijvingsveld zou gewoon indexeerbaar moeten zijn met duplicaten. Al was het maar omdat het mogelijk moet zijn om bij twee of meer hetzelfde artikel af te nemen, en dan heb je echt wel drie records bij drie leveranciers (voor elke leverancier één ID, en voor alle drie dezelfde omschrijving).
Ik vermoed, maar dát krijgen we dus niet te zien, dat je de verkeerde velden gebruikt in je query onder het subformulier. Doe er anders een kopie van de db bij, dat kijkt een heel stuk makkelijker. Maar post in ieder geval de SQL van de query.
 
Bedankt voor de snelle reactie.

Oké, ik heb hem nu op geïndexeerd met duplicaten gezet.
Hij blijft de artikelen verdubbelen.

De query ziet er als volgt uit:

SELECT TBL_Art_Best_Proj.Artikelomschrijving, TBL_Bestellen_Project.ID_Bestel_project, TBL_Bestellen_Project.ID_art_best_proj, TBL_Bestellen_Project.M, TBL_Bestellen_Project.Opmerking, TBL_Bestellen_Project.Besteld, TBL_Bestellen_Project.ID_Project
FROM TBL_Projecten INNER JOIN (TBL_Art_Best_Proj RIGHT JOIN TBL_Bestellen_Project ON TBL_Art_Best_Proj.[ID_art_best_proj] = TBL_Bestellen_Project.[ID_art_best_proj]) ON TBL_Projecten.ID_Project = TBL_Bestellen_Project.ID_Project
ORDER BY TBL_Art_Best_Proj.Artikelomschrijving;
 
Leg eens uit waarom je in een keuzelijst waarin je Artikelen kiest uit de tabel TBL_Art_Best_Proj óók 6 velden gebruikt uit de tabel TBL_Bestellen_Project? Die horen daar m.i. niet thuis. Als je in een subformulier (waarmee je ongetwijfeld de tabel TBL_Bestellen_Project wilt vullen) een keuzelijst met invoervak gebruikt voor de artikelen (wat mij prima lijkt) dan hoef je alleen maar velden uit de tabel TBL_Art_Best_Proj te gebruiken, want díe tabel bevat je artikelgegevens. Niet de tabel TBL_Bestellen_Project. Dus in je keuzelijst hoef je maar twee velden op te nemen: ID_art_best_proj en Artikelomschrijving. That's it.
 
Mijn inzien gebruik ik ook maar twee velden. (bijlage 5)
De database in nogal fors, en uitkleden is een gigantische klus, daarom maar even zo.

Ik heb wel meer zulke dingen gebouwd en daar werken we ook mee, ook alles zitten vergelijken en het lijkt allemaal hetzelfde.
 

Bijlagen

  • Bijlage 5.png
    Bijlage 5.png
    29,4 KB · Weergaven: 25
Da's een andere query als die je in bericht #4 hebt gepost. Maar we komen langzaamaan in de buurt van je probleem. Dan pak ik er even twee van je eerdere plaatjes bij:

Bijlage 1.png Bijlage 4.png

In het eerste plaatje zie je de relatie tussen tbl_Art_Best_Proj en tbl_Bestellen_Proj. Da's een één-op-veel relatie op basis van id_Art_Best_Proj. Numeriek getal, neem ik aan. Kijken we naar plaatje 2, de Keuzelijst, dan zie ik als eerste veld (en dat blijkt ook uit de tweede query die je hebt gepost) dat het veld [Artikelomschrijving] als eerste in de query staat, en id_Art_Best_Proj als tweede. Dat mag, mits je dan de gekoppelde waarde óók aan die kolom koppelt. En dát doe je dus niet! Kijk maar bij de eigenschap Afhankelijke kolom: die staat op de waarde 1. Oftewel: je probeert het veld Artikelomschrijving op te slaan. Dat doe je dan óók nog eens in het verkeerde veld, want je formulier is gebaseerd op de tabel TBL_Bestellen_Project. Dan moet je dus, als je een bestelling wilt maken, het ArtikelID opslaan in het veld id_Art_Best_Proj van de tabel TBL_Bestellen_Project. Je slaat dus niets op in de tabel tbl_Art_Best_Proj!
Nu snap ik ook waarom je steeds nieuwe records aanmaakt, want dat gebeurt doordat je het verkeerde veld gebruikt. De oplossing is relatief simpel: om te beginnen: het veld id_Art_Best_Proj koppelen aan het juiste veld in de tabel TBL_Bestellen_Project. En daarnaast kun je het veld vooraan zetten zodat de Afhankelijke kolom correct is, ofwel de waarde in Afhankelijke kolom veranderen naar 2. In dat geval gaat het ook goed.
 
Tja....
:eek: :eek: :eek: :eek:

Ik zie nu waar ik overheen heb gekeken en inderdaad, in enkele muisklikken was het opgelost.

Bedankt voor je moeite.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan