Velden combineren tot 1 veld mbv query; opbouw tabellen?

Status
Niet open voor verdere reacties.
Ik kijg nu dus in mijn tbl_ Reagents bij het veld Storage Location alleen '0' (in mijn geval nu dan) te staan, ik zou graag echter het hele riedeltje zien staan, dus 13.15 30053 rack 01 [BOX NA 0], als het zelfs mogelijk is zou ik wat tussen [] staat zelfs helemaal niet zien als het niet van toepassing is.
 
Ik snap je niet helemaal. In de tabel Reagents moet je het sleutelveld PositionID opslaan uit de tabel Position. Niet Storage location (wat dat dan ook zou moeten zijn volgens jou). En wat je als resultaat wilt zien (wat jij 'het riedeltje' noemt) sla je sowieso nooit op. Wil je dat ergens zien, dan herleid je dat uit de 'riedel' Position --> Box --> Rack --> Storage --> Room.
 
Oke maar juist dat hele riedeltje zorgt er wel voor dat ik mijn spullen terug kan vinden, dus wil ik die ook terug zien in mijn tabel. Vandaar mijn vraag bij mijn eerste post, kan ik dit eventueel doen aan de hand van een query
 
Oke maar juist dat hele riedeltje zorgt er wel voor dat ik mijn spullen terug kan vinden, dus wil ik die ook terug zien in mijn tabel.
Herleidbare gegevens sla je nooit op in een tabel. Zeker niet als je ze in een query simpel bij elkaar kan voegen. Overigens zou ik in de sleutelveld naamgeving van de verschillende 'poten' dan al rekening houden met de vervolgtakken. Dus als je 6 rooms hebt, die je "Room 01" t/m "Room 06" noemt, dan begint de naam van elke storage met 01 t/m 06. En zo verder. Op die manier weet je ook wat waar staat.
 
oke, stel dat ik dan mijn gegevens wil opvragen mbv een zoekformulier, ik zoek product x en wil weten waar die staat, hoe ga ik dat dan aanpakken
 
Dan maak je een keuzelijst voor de producten, en neem je de hele lijn mee in de onderliggende query, en uit die tabellen pak je dan de velden die je op je formulier wilt zien. Op je formulier maak je dan extra tekstvakken, en die vul je met waarden uit de keuzelijst. Een tekstvak krijgt dan als Besturingselement: =cboProduct.Column(#). Het hekje staat dan voor het kolomnummer-1. Dus als je in kolom 2 het RoomID hebt staan, en in kolom 3 het StorageID dan krijg je voor de tekstvakken resp. de formules =cboProduct.Column(1) en =cboProduct.Column(2). De werking is dan simpel: kies een product, en de rest wordt gelijk ingevuld.
 
Ik ga het misschien nog iets ingewikkelder maken (voor mij waarschijnlijk). Ik voeg nu mijn reagents en product informatie toe via een apart formulier. Maar ik ontdekte zojuist dat dat veel makkelijker is als dit via 1 formulier gaat, waarbij poduct information mijn hoofformulier is en reagents mijn subfomulier.

Ik hb het zelfs zo ver voo elkaar dat ik in beide formulieren data kan invullen en opslaan. Alleen kom ik dan wel in de knoei met mijn storage location. Nu zat ik al te denken om alle "losse" onderdelen dan apart te benoemen in mijn tabel reagent, Dus een veld voor room, storageID, RackID, etc etc, ook dit is te doen maar de volgende vraag is is dit handig?
 
Laatst bewerkt:
Oei, niet doen! Dat is niet alleen dataredundantie inbrengen in je systeem, maar ook de kans op fouten vergroten. Moet je niet willen. Nogmaals: als je alle velden op de juiste manier gebruikt, is de laatste stap bepalend voor de uiteindelijke lokatie, dus dat is het enige veld dat je opslaat. Ik zou vier of vijf keuzelijsten (echte, geen keuzelijsten met invoervak) maken waarbij je een overzicht ziet van de verschillende opties. Dus in de eerste keuzelijst klik je een Room aan, in de tweede zie je de beschikbare Storage records, klik je daar dan zie je de beschikbare Racks, klik je die aan dan de beschikbare Boxen etc. M.b.v. tellertjes (die de gebruikte records tellen) zie je gelijk hoeveel plek je nog in een bepaalde plek hebt.
 
En dan krijg je zoiets:
 

Bijlagen

  • Formulier Reagents.png
    Formulier Reagents.png
    18,9 KB · Weergaven: 24
Ik heb je db weer een beetje uitgebreid, en een knop gemaakt waarmee je in Positions nu combinaties kunt vastleggen van posities in dozen. Geeft wellicht weer wat houvast :)
Is nog bij lange na niet perfect, want je kunt nog twee keer een set posities op dezelfde doos maken, maar het gaat om het idee, niet om het dichtspijkeren.
 

Bijlagen

  • Reagents, Primers & Antibodies.rar
    128,5 KB · Weergaven: 13
Ehhmm .....


Klopt het dat die om parameters blijft vragen? Op het formulier Reagent? Is ook iets waar ik bij mjn earch formulier tegen aan loop trouwens, blijft vragen om een parameter.
 
Laatst bewerkt:
Niet dat ik weet. Het formulier Frm_Reagents heb ik aangepast, die van jou heet nu Frm_Reagents_ori. Het kan zijn dat als je een record toevoegt hij om een lotnummer vraagt?
 
Ehh nee hij vraagt heel specifiek bij het openen van het fomulier al om parameters.

Ehhmm trouwens, de tabel Box levert een probleem op. Ik kan namelijk in iedere rack, een box A1, A2, A3,A4 en A5 hebben zitten, at levert dubbele waardens op en dat pikt die niet als BoxID is ingesteld als sleutelveld
 
Laatst bewerkt:
Nu snap ik het niet meer; ik weet dat er van mijzelf maar één is (da's maar goed ook...), en dat één box ook maar één keer kan bestaan. Dus hoezo boxID als sleutelveld?
 
Ik snap de foutmelding nog steeds niet, want ik krijg hem dus echt niet. Ook niet thuis, waar ik uiteraard een andere pc heb. Wellicht dat hij niks met het probleem te maken heeft, maar alles met bibliotheken. Kijk dus eens wat er gebeurt als je in het VBA venster je verwijzingen controleert, en de db compileert.
Je vraag over het Lookup veld snap ik eerlijk gezegd niet.
 
Over mijn vraag van lookup;

Ik heb in mijn formulier ProductInformation de veld naam Product Name staan, in mijn formulier Reagents ook. Deze zijn in de tabellen met elkaar verbonden en ik kan daarom in mijn tabel Reagents beginnen met intoetsen en de rest wordt aangevuld.

Nu wil ik dit ook graag in mijn formulier Reagent hebben om te voorkomen dat er dadelijk 10 verschillenden benamingen terug te vinden zijn voor hetzeldde product.
 
Dat is simpel: in je formulier Reagents rechtsklikken op het tekstveld [txtProductNameReagent], <Wijzigen in> aanklikken in het snelmenu, en dan <Keuzelijst met invoervak>. Vervolgens koppel je de tabel [Tbl_ProductInformation] als rijbron, en je hebt een keuzelijst. Verbaasde me al dat je dat niet gelijk had gedaan :)
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan