Probleem invulformulier

Status
Niet open voor verdere reacties.

Noel Prove

Gebruiker
Lid geworden
16 jul 2006
Berichten
98
Hallo,

Ik moet een dbase opzetten voor het ingeven van stilstanden en problemen
in een produktielijn.

Ik werk dus met drie tabellen:

tblStoringen
tblInstallaties
tblFunc_groepen

1 installatie bestaat uit verschillende functionele groepen

In het ingaveformulier heb ik reeds een combobox "installatie" gemaakt en
dat werkt goed.
Nu probeer ik hetzelfde te doen voor de functionele groep te selecteren
maar daar wringt het schoentje.
Dus in die combobox mogen enkel de functionele groepen verschijnen die
gerelateerd zijn aan de installatie van cboInstallatie.
Waarschijnlijk heb ik een probleem met de structuur.

Kan iemand mij hierbij helpen a.u.b. ?
 

Bijlagen

Ik kan zometeen wel even naar de db kijken, maar eerst nog wat vragen, want ik snap je opzet nog niet helemaal (ik heb de db nog niet gezien tenslotte).
1. Een installatie bestaat uit ‘functionele groepen’, schrijf je. Wat bedoel je daar mee?
2. Heb je geen mensen nodig die de storingen verhelpen? Die mis ik ook in je verhaal.

Wat 1 betreft: als een installatie uit verschillende apparaten/onderdelen bestaat, wat ik nu vermoed, dan heb je nog minstens één extra tabel nodig: tblInstallatie-Functiegroep. Hierin leg je alle functiegroep vast die bij een installatie horen. Dat doe je dus niet in het formulier dat je nu al hebt gemaakt. (Tip: maak pas formulieren als de hele tabelstructuur compleet is, en goed werkt. Dat bespaart je een hele hoop werk achteraf)

Tabellen hebben onderlinge relaties, dus dat geldt ook voor deze tabellen. Daarbij geldt denk ik dat de combinatie Installatie-Functiegroep maar één keer voor mag komen in de nieuwe tabel. De vraag of dat een variabele combinatie is, of een vaste maakt hooguit uit voor de manier waarop je de combinaties samenstelt. Ik ben zelf fotograaf geweest, en dan heb je dus een kast met camera’s, objectieven, flitsers etc. die bij elkaar als een complete set in een koffer zitten. Dan heb je dus een tabel ‘cameraset’ (denk bij jou: installatie) en een tabel ‘hardware’ (camera, lens, flitser etc). In jouw geval: functiegroep. In de tabel ‘cameraset’ leg ik dan vast welke camera’s met welke flitser op een bepaald moment in één koffer zitten, zodat ik precies weet wat op elk opvraagbaar moment in die koffer zit. Maar dat kan dus regelmatig veranderen.

Is je hardware niet zo flexibel (bijvoorbeeld een booreiland), dan zijn je onderdelen dat vaak ook niet (boorkoppen, duikpakken etc). Dus dan heb je nog steeds dezelfde tabelconstructie nodig, maar doe je het onderhouden van die koppeltabel op een hele andere manier.

Dus: graag iets meer info over wat de bedoeling is, en ook hoe de workflow er uit ziet, want ook dat speelt een rol :).
 
Hallo Octafish,

Bedankt voor het mailtje.

Ja, je hebt gelijk als je zegt dat eerst de db moet worden opgezet alvorens
aan de formulieren te beginnen, terecht.
Maar mijn opzet was eigenlijk al volledig klaar (dacht ik) toen ik heb ondervonden dat het
niet werkte. Bij de aanmaak van het formulier is gebleken dat het niet werkte.

tblStoringen:
StoringID
Begin
Einde
Technieker
Oorzaak
InstallatieID

tblInstallaties:
InstallatieID
InstallatieNaam
InstallatieOmschrijving

tblFunc_Groepen:
Func_GroepID
InstallatieID
Func_GroepNaam
Func_GroepOmschrijving

Ik heb al db's gemaakt met 2 tabellen, dat loopt goed.
Maar vanaf er meer tabellen bijkomen begint het fout te lopen.
Het klinkt misschien raar maar het is zo.
 
Hoe meer tabellen, hoe ingewikkelder :). In je huidige opzet maak je één duidelijke fout: je probeert een storing aan een installatie te hangen. Dat hoort niet; de storing hangt aan een Functiegroep. Je hebt een één-op-veel relatie gelegd tussen Functiegroep en Installatie (wat an sich prima is), maar aan de tabel schort nog wel wat, in mijn ogen.
Neem bijvoorbeeld de records 14, 15 en 16: (2° Tafel by-pass naar K3A1A/DT211 (Messe/Presse), 3° Tafel by-pass naar K3A1A/DT211 (Messe/Presse) en 4° Tafel by-pass naar K3A1A/DT211 (Messe/Presse)). Dat is in mijn ogen één object (Tafel by-pass naar K3A1A/DT211 (Messe/Presse)) dat drie keer in de installatie hangt. Daarom heb je, zoals ik al zei, een extra koppeltabel nodig waarin je al die specifieke objecten (met elk hun eigen ID code) samenbrengt. Zolang je dat niet doet, zul je problemen houden om je database écht goed te laten werken.

In de huidige opzet, die je dus best werkend kunt krijgen, moet je een storing niet melden op een Installatie, maar op een Functiegroep. Op basis van de functiegroep weet je namelijk óók om welke installatie het gaat, want dat veld heb je opgeslagen in de tabel tblFunc_Groepen. Wat je dus kan doen, is het veld InstallatieID in de tabel tblStoringen vervangen door een veld Func_GroepID, en op je formulier een niet-afhankelijke keuzelijst maken voor de InstallatieID, een afhankelijke keuzelijst voor Func_GroepID en de keuzelijst voor Func_GroepID filteren met het InstallatieID dat je ophaalt uit de keuzelijst InstallatieID. Maar het InstallatieID sla je dus niet op in de tabel tblStoringen.
 
Hallo,

Wauw ! Dit is een hele boterham natuurlijk. Maar je hebt 200% gelijk.
Ik had er absoluut nog niet aan gedacht dat het niet de installatie is
die in fout gaat maar wel de functionele groep, correct.

Ik ga het trachten de veranderen zoals jij het voorstelt.
Ik hou je verder op de hoogte.

Alvast bedankt.
 
Prima, we horen het wel als je verdere hulp nodig hebt :).
 
Hallo,

Ik heb wat geëxperimenteerd en rondgezocht op internet i.v.m. een koppeltabel (junction)
zoals jij hebt voorgesteld. Ik heb hier absoluut geen ervaring mee, dus dit is compleet nieuw
voor mij. Aan de hand van voorbeelden heb ik getracht dit hier dus ook toe te passen.
Ik heb het uitgeprobeerd en alle waarden komen in de desbetreffende tabellen terecht, daarom
durf ik met veel argwaan zeggen dat het werkt.

Graag jouw mening hierover a.u.b. ?
 

Bijlagen

Ik zal er met genoegen naar kijken :).
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan