07. september 2010 - 14:05
Der er
4 kommentarer og
1 løsning
Access 2007
Hej.
Jeg er ved at oprette en database "tøm dit barskab"
Der til har jeg lavet to tabeller
1. tabel indeholder alle ingredienser med en checkbox
2. tabel indeholder alle drinksnavne
Mit spørgsmål er hvor skal opskriften skrives.
Så at når man har sat hak i chechboxen i div ingredienser udskrives de drinks der kan laves.
?????????????????????????????????????????????????????????????????
07. september 2010 - 14:22
#1
Du skal bruge asp eller php til at udtrække opskrifterne med, som du gerne vil have vist på en hjemmeside.
Lav 1 tabel med alle de opskrifter du vil fremvise.
Og alle de felter du har brug for ingen grund til at gører det mere besværligt med 2 tabeller.
07. september 2010 - 21:23
#3
Du siger at du skal have en tabel med checkboxes for ingredienser. Nej, du skal have en tabel med ingredienser og en formular med ingrediensnavne og checkboxe. Access er struktureret saaledes at der skelnes mellem de data du har, som bevares i tabeller, og den brug du goer af de data, som presenteres i formularer og rapporter. Tabellen, som jeg her kalder Ingrediens, kan have to felter, id og navn.
Saa vil du have en tabel med drinks. Jep, med navnene paa drikene saasom Wallbanger, Screwdriver, Manhatten Pink, o.s.v. Og du spoerger hvor "opskriften skal skrives." Det spoergsmaal vil jeg ogsaa dele i to, (1) i hvilken tabel opskriften skal bevares og (2) hvor du skal skrive opskrifterne ud paa de drinks der kan laves af de ingredienser brugeren vaelger ud. Opskriften skal du nok bevare i tabellen med drinksnavne. Tabellen, som jeg kalder "Drinks" faar saa tre felter, id, navn, opskrift. For eksempel id=1, navn="drink1", opskrift="Bland 1 del af ingrediens 1 med 3 dele af ingrediens 2 og ryst...." Naar saa brugeren har valgt ingredienser og programmet har fundet ud af at der for eksempel er syv drinks der kan laves af de ingredienser saa skriver du navnene paa de syv drinks med opskrifter ud i en rapport.
Hvordan finder systemet saa ud af hvilke drinks du kan lave af dine ingredienser? Ja, foerst skal have en tredje tabel som jeg vil kalde "IngDrinks" (fordi det fylder for meget at kalde den IngredienserDrinks.) Den faar to felter, ing og drink, og den skal, som det naesten fremgaar, have en raekke for hver kombination af ingredienser og drinks. Hvis Wallbanger har id=1 og Manhatten Pink har id=2 og Wallbanger skal bruge gin (drink id=1) og wodka, id=2 og Manhatten Pink skal bruge cognac id=3 og cola id=4 saa har vi fire raekker til IngDrinks tabellen, nemlig 1,1 (Wallbanger-gin); 1,2 ; 2,3; 2,4.
Det var saa tabelstrukturen som var hvad du spurget om (saadan forstod jeg det.) Udenfor spoergsmaalet og derfor kun skitseret og ikke testet: Naar brugeren saa i den formular (med checkboxe) der er bundet til Ingredienstabellen har checket drinks og trykket paa "Find Drinks" knappen eller hvad du nu vil bruge, saa skal du nok i gang med noget VBA programmering i OnClick() eventen for knappen. Der vil du foerst skulle SELECT id from Drinks d INNER JOIN IngDrinks id ON d.id = id.drink INNER JOIN Ingrediens i ON id.ing = i.id WHERE [alle de kraevede ingredienser) IN [listen af de checkede ingredienser]. Hver saadan drink vil du saa, for eksempel, indfoere i en midlertidig tabel sammen med opskriften, og naar du er faerdig vil du danne en rapport der er bundet til den midlertidige tabel.
Du har saaledes en rimelig lang vej at gaa. Jeg haaber jeg har kunnet hjaelpe med at klargoere den noedvendige adskillelse mellem data (i tabeller) og presentation af data (i formularer og tabeller) og med en simpel datastrukture og yderligere SKITSERET hvad der videre skal ske, hvilket maaske bliver emner for yderligee spoergsmaal fra dig paa Eksperten.
09. september 2010 - 09:34
#5
Saa du goer fremskridt. Det er godt. Forventer du mere fra mig (eller fra andre) om DETTE spoergsmaal (altsaa hvor opskrifterne skal skrives?) Ellers skulle du maaske lukke spoergsmaalet og saa, hvis du har brug for hjaelp til layout eller til at lave forespoergsel, at oprette nye spoergsmaal. Paa den maade faar du opmaerksomhed fra hele Ekspertens medlemsskare, ikke kun de der er involveret i dette, nu allerede, lidt gamle spoergsmaal.
Jeg kan se at du er ny paa Eksperten og at dette er dit foerste spoergsmaal. Saa lad mig lige forklare (undskyld hvis det er til overflod:)
Naar et spoergsmaal ikke laengere er aktuelt saa er tiden inde til at lukke det og afgive de lovede points hvis der er kommet brugbare svar. Man lukker et spoergsmaal ved at acceptere et svar, et indlaeg markeret med gult, og man acceptere svaret ved at placere et 'flueben' i den lille firkant og derefter klikke paa "Accepter svar og afgiv points." Hvis du mener at mit svar var nyttigt saa vil jeg gerne at du accepterer det. (Hvis det ikke var nyttigt saa lad mig vide hvor jeg fejlede.) Hvis du har faaet indlaeg du gerne vil beloenne med points men i form af Kommentar (ingen gul markering) maa du bede vedkommende om at oprette et svar og acceptere svaret naar det kommer. Hvis du ikke har faaet nyttige indlaeg maa du selv oprette et svar (det har du allerede gjort i dette spoergsmaal) og acceptere det.