12. september 2010 - 09:49Der er
18 kommentarer og 1 løsning
Tøm dit barskab
Hej med jer.
Jeg er som sagt ved at lave en database med tøm dit barskab.
Den er næsten færdig. Jeg kan udvælge diverse ingredienser og der kommer drinks frem. Jeg har nu kun 2 problemer.
eks vælger jeg vodka som den eneste ingrediens kommer alle drinks frem der indeholder vodka selv om der er andre ingredienser i . det vil jeg ikke have :-)
min opbygning er
1 tabel med ingredienser + checkbox (ja/nej) 1 tabel med drinks + opskrift 1 tabel der mixer det sammen 1 forespørgelse på ingredienser med criteria på checkbox=true SQL´en der sådan ud:
SELECT Drink.DrinkNavn, Ingrediens.Checkbox FROM Ingrediens RIGHT JOIN (Drink INNER JOIN DrinkIngrediens ON Drink.DID = DrinkIngrediens.DID) ON Ingrediens.IID = DrinkIngrediens.IID WHERE (((Ingrediens.Checkbox)=True));
og 1 'Form multiple items' med ingredienser og checkbox
2. problem er at når jeg trykker på knappen søg drinks vil jeg gerne have vist det sådan i en raport eller lign.
Eks.
Black Russian : vodka kahlua
Håber der er en løsning . Jeg mailer gerne filen hvis det kan hjælpe. Det hele er lavet i access 2007
Jeg vil mene at denne query giver dig listen over de drinks du vil have:
SELECT Drink.DID, Drink.DrinkNavn FROM Drink WHERE Drink.DID not in ( SELECT DrinkIngrediens.DID FROM Ingrediens INNER JOIN DrinkIngrediens ON Ingrediens.IID = DrinkIngrediens.IID WHERE (((Ingrediens.Checkbox)=False)) GROUP BY DrinkIngrediens.DID; )
Når du har fået lavet den query du søger (fx ovenstående) kan du designe en rapport baseret på din query, så du kan få en pænere præsentation af resultatet.
Hvis du vil have opskriften med i rapporten, skal du også have ingredienserne med i den query du baserer rapporten på, fx:
SELECT Drink.DID, Drink.DrinkNavn, Ingrediens.Navn FROM Ingrediens INNER JOIN (Drink INNER JOIN DrinkIngrediens ON Drink.DID = DrinkIngrediens.DID) ON Ingrediens.IID = DrinkIngrediens.IID WHERE (((Drink.DID) Not In
(SELECT DrinkIngrediens.DID FROM Ingrediens INNER JOIN DrinkIngrediens ON Ingrediens.IID = DrinkIngrediens.IID WHERE (((Ingrediens.Checkbox)=False)) GROUP BY DrinkIngrediens.DID; )));
Jeg er ikke nogen haj til opsætning af rapporter, men mener du kan lave noget gruppering, så du i din visning ikke gentager drink-navnet for hver ingrediens.
P.s. Hvis det skal være rigtig smart, burde du så ikke have noget enhed på i din DrinkIngrediens-tabel, der fortæller hvor meget af den pågældende ingrediens der skal i? :o)
sorry about the misunderstanding here, I was assuming that that Selas wanted to help also, and as I was going out that was fine by me. And now I'm back.
I also see that you have an answer to the first part of your question. To get the " Ingrediens" just make a query where you include the query anlu gave and then make a join on the other two tables to get the ingredients
SELECT Drink.DID, Drink.DrinkNavn, Ingrediens.Navn FROM Ingrediens INNER JOIN (Drink INNER JOIN DrinkIngrediens ON Drink.DID = DrinkIngrediens.DID) ON Ingrediens.IID = DrinkIngrediens.IID WHERE (((Drink.DID) Not In (SELECT DrinkIngrediens.DID FROM Ingrediens INNER JOIN DrinkIngrediens ON Ingrediens.IID = DrinkIngrediens.IID WHERE (((Ingrediens.Checkbox)=False)) GROUP BY DrinkIngrediens.DID; )));
The topic gets closed when you accept an answer, but anlu had only placed a comment. You placed and answer and accepeted it, you could have asked anlu to place an answer but now its too late, that why I suggest you place another question and get anlu to place an answer to get some points.
I have place a new question and send private note to anlu
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.