Opzoeken op basis van waarde in eerdere kolom

Status
Niet open voor verdere reacties.

StevenTeunissen

Gebruiker
Lid geworden
5 jun 2012
Berichten
11
Hallo,

Wij zijn bezig om een access database te maken voor het beheren van onze hardware voorraad.
Echter lopen wij tegen een cruciaal probleem aan.


TYPE 11.png
Op het moment dat we het type Laptops selecteren willen we bij brand eigenlijk alleen de producten zien die in de products tabel het type Laptops hebben. Dat gaat goed bij 1 regel (in het voorbeeld printers), bij de tweede regel pakt hij alle brands van de types die in de tabel voorkomen (in dit voorbeeld printers + laptops). Hij kijkt dus naar de kolom en niet naar de specifieke rij.

Heeft iemand een idee hoe dit wel te realiseren is?
Voor de volledigheid hieronder ook nog de products tabel:
12.png

En de SQL code die gebruikt wordt:
SELECT products.BRANDID, info_brands.brand, products.FAMILY, products.NUMBER, inventory.type FROM info_brands, products, inventory WHERE ( ([products].[BRANDID]=[info_brands].[brandid]) and ([inventory].[type]=[products].[type]) );

Alvast bedankt voor het meedenken!
 
Er moet nog een criterium bij: op basis dus van de keuzelijst waarin je het Type matcht op basis van de keuzelijst. Heel vreemd dat je twee criteria hebt op de tabel Product, mij lijkt een koppeling op het veld ID al genoeg. ID is uniek, dus als je daarop koppelt, is elke andere koppeling overbodig. Daarnaast moet je dat Type veld dus filteren op de keuzelijst.
 
Dank je wel OctaFish, zou jij de SQL code eens willen maken voor me zoals jij deze voorstelt. Ik kom er niet helemaal uit.
 
Dat zou zoiets kunnen zijn, afhankelijk uiteraard van de naam van je formulier en keuzelijst.
PHP:
SELECT products.BRANDID, info_brands.brand, products.FAMILY, products.NUMBER, inventory.type FROM info_brands, products, inventory 
WHERE (([products].[BRANDID]=[info_brands].[brandid]) AND ([inventory].[type]=[Formulieren]![products]![type]));
 
Dank je wel.
Heb nu dit gebruikt:
SELECT products.BRANDID, info_brands.brand, products.FAMILY, products.NUMBER, inventory.type
FROM info_brands, products, inventory
WHERE (((products.BRANDID)=[info_brands].[brandid]) AND ((products.type)=[Formulieren]![inventory]![type]));

Maar krijg de waarde heel vaak terug, heb jij een idee?

4.png
 
Het is denk ik handiger als je de db (een uitgeklede versie zonder gevoelige informatie( kan posten (liefst in zip format), dan zie ik makkelijker wat de bedoeling is. Nu is het een gokspelletje. En ik win nooit bij gokken :).
 
Welke versie is je db? Ik krijg hem niet open in 2010. En dat is vreemd, want normaal gesproken krijg ik 2016 databases wel geopend. Ik begin te vermoeden dat je een 64 bits office gebruikt.
 
Oef, is daar een goede reden voor? Want je snijdt jezelf daarmee (qua compatibiliteit) wel enorm in de voet zo.
 
Daar is eigenlijk geen reden voor, ben gewoon gestart met Access zonder daar verder naar te kijken.
 
Dan zou ik als ik jou was de 64 bits versie verwijderen en vervangen door de 32 bits variant. De 64 bits levert namelijk alleen ellende op (niet compatibel met de rest van de wereld) en geen enkel voordeel. Er zijn ook maar een paar mensen die op Helpmij komen die de 64 bits versie hebben en je dus kunnen helpen. Ik zit daar dus niet bij :).
 
Dat hoeft niet; je kunt je tabellen exporteren naar een Excel (of als dat niet werkt: csv bestand) en importeren in de nieuwe bijvoorbeeld. Formulieren zijn wellicht ook te exporteren, of, als het er niet teveel zijn, opnieuw te maken. En je modules en procedures kun je ook prima exporteren en importeren.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan