runevikestad Skrevet 7. desember 2006 Del Skrevet 7. desember 2006 (endret) Hei! Håper virkelig noen kan hjelpe med dette, så here goes Jeg har et ønske om å ikke lage bare en kategori til hvert av mine produkter, men også underkategorier. Dersom du ser f.eks hvordan dette er ordnet på komplett.no så ser du at at de har f.eks hovedkategorien "Hovedkort", men flere underkategorier hvor du kan velge hvilken socket du vil ha på hovedkortet ("AMD Socket 754", "AMD Socket 939", "Intel Socket 479", "Intel Socket 604" osv). Dette har dog vært problematisk for meg å lage til i Access, da jeg ikke er så alt for kompetent, men klarer å fikse til det meste med litt hjelp. Har fått en par ledetråder tidligere, men har ikke ført til mye så langt - spesielt da jeg koder hjemme på en leilighet uten internett til å sjekke kildekoder, eksempler osv. Se for deg at du har et skjema hvor du kan registrere nye produkter. For hvert produkt kan du velge en hovedkategori, f.eks "Prosessor" eller "Harddisk". Denne kategorien blir hentet ut i fra en egen tabell, i en kombinasjonsboks i produkt skjemaet, slik at brukeren av systemet lett kan legge til og fjerne kategorier selv. Dette er en enkel sak å lage til, men nå kommer problemet. Under denne kombinasjonsboksen for hovedkategori, vil jeg ha en kombinasjonsboks for underkategorier. Hvilke underkategorier som vises i denne kombinasjonsboksen skal være avhengig av hvilken hovedkategori du valgt. Valgte du f.eks "Harddisk", vil underkategorier som "ATA", "S-ATA", "SCSI" osv dukke opp. Ser for meg at du kanskje må både leke litt med spørringer og med VBA her, men klarer ikke å se løsningen selv - og det stopper meg fra å gjør ferdig systemet da jeg ikke får begynt å registrer produkter ennå. Regner med at det her blir 3 tabeller, en for produkt, en for hovedkategori og en for underkategori. Om du vet hvordan dette gjøres, eller har en eksempeldatabase det har blitt gjort på - ikke nøl med å forklare eller vise meg Mvh, Rune Endret 22. mai 2007 av runevikestad Lenke til kommentar
ravika Skrevet 7. desember 2006 Del Skrevet 7. desember 2006 Har ikke så mye tid å forklare akkurat nå, men kan kanskje gi en litt bedre forklaring senere i dag når jeg kommer hjem... Foreløpig kan du se på svaret mitt i denne posten: https://www.diskusjon.no/index.php?showtopic=675608&hl= Hvis du ikke skjønner der utfra dette bare spør om hav du ikke skjønner. Lenke til kommentar
runevikestad Skrevet 7. desember 2006 Forfatter Del Skrevet 7. desember 2006 Har ikke så mye tid å forklare akkurat nå, men kan kanskje gi en litt bedre forklaring senere i dag når jeg kommer hjem...Foreløpig kan du se på svaret mitt i denne posten: https://www.diskusjon.no/index.php?showtopic=675608&hl= Hvis du ikke skjønner der utfra dette bare spør om hav du ikke skjønner. 7448708[/snapback] Så. Jeg har tre tabeller. "tbl_Produkt", "tbl_Hovedkategori" og "tbl_Underkategori". Fra både Hovedkategori og Underkategori setter jeg en "en-til-mange" relasjon. Altså - et produkt kan kun ha en Hovedkategori og Underkategori, men disse kategoriene kan tilhøre flere Produkter. Når jeg lager spørringen til å lage skjemaet "frm_Produkt" - så gjør jeg det på vanlig måte med å velge HovedkategoriID fra "tbl_Produkt" og HovedkategoriNavn fra "tbl_Hovedkategori" - så velger jeg det samme fra Underkategori, men jeg i fremmednøkkelen for UnderkategoriID setter jeg et vilkår som dette: [Forms]![frm_Produkt].[cbHovedkategori] Vil da kun de underkategoriene som matcher den valgte hovedkategorien vises i kombinasjonsboksen for underkategori? Får ikke testet dette før i morra - derfor jeg spør så dumt Lenke til kommentar
ravika Skrevet 7. desember 2006 Del Skrevet 7. desember 2006 Ja, skal virke slik at når du har valgt hovedkategori så oppdateres den andre kombinasjonsboksen utifra hva som står i hovedkategoriboksen. Men på den kombinasjonsboksen som tilhører hovedkategorien blir du nødt til å legge inne en VBA koden som oppdaterer den andre kombinasjonsboksen. Hvis jeg ikke husker feil vil AfterUpdate prosedyren fungere. Med henvisning til Me.Navnpåkombbox.requery Lenke til kommentar
runevikestad Skrevet 7. desember 2006 Forfatter Del Skrevet 7. desember 2006 Ja, skal virke slik at når du har valgt hovedkategori så oppdateres den andre kombinasjonsboksen utifra hva som står i hovedkategoriboksen. Men på den kombinasjonsboksen som tilhører hovedkategorien blir du nødt til å legge inne en VBA koden som oppdaterer den andre kombinasjonsboksen. Hvis jeg ikke husker feil vil AfterUpdate prosedyren fungere. Med henvisning til Me.Navnpåkombbox.requery 7449133[/snapback] Kult. Dette må jeg nesten få prøvd ut på lørdag, håper jeg at det løser problemet så jeg får komt meg videre. Har printet ut fått skrevet ut VBA reference for Combo Box objektet nå, samt denne forum siden - får vi bare håper jeg får det til! Takk så mye for hjelpen! Legger kanskje ut databasen her på mandag kveld, så får du se hva jeg driver med ;> Lenke til kommentar
runevikestad Skrevet 12. desember 2006 Forfatter Del Skrevet 12. desember 2006 Får bare ikke dette til å fungere jeg. Uansett hva jeg gjør er det et query som er feil, en relasjon som ikke fungerer o.l. Du hadde ikke orket lage et kort eksempel bare - 3 tabeller, spørring og et skjema .. Ikke no stort, bare for å vise prinsippet du har forklart - for jeg står bom fast Lenke til kommentar
ravika Skrevet 12. desember 2006 Del Skrevet 12. desember 2006 Etter å ha testet det selv, kom jeg på hva som er problemet med slik sortering av kategorier.... Den måten jeg forklarte først fungerer bra hvis du ikke har referanser som går "feil-veien" slik som du her. Dvs du velger underkategori istedet for hovedkategori, (noe som jo er helt logiskt, siden underkategorien bestemmer hovedkategorien.) Slik jeg ser det kan du løse dette med to ulike muligheter: 1. Lage et ureferert hovedkategorifelt som bare brukes til å sortere ut hvilke underkategorier du vil vise i den andre kombinasjonsboksen. Ulempen med dette er at hovedkategoriboksen blir ikke oppdatert og verdiene følger med gjennom alle postene. Her kan du sikkert lage en VBA kode som enten oppdaterer hovedkategoriboksen hvis posten allerede har fått valgt underkategori. Ellers kan du også i VBA nullstille hovedkategoriboksen når du skifter post. 2. Løsningen jeg foretrekker er å lage en knapp ved tekstboksene til kategoriene. Knappen fungerer slik at den brunger opp et pop-up skjema som lar deg velge kategori, for så å overføre data tilbake til det opprinnelige skjemaet. Legger ved en eksempel-database: Skjemaet "Produkt" viser fremgangsmåte 1, mens skjemaet "Eksempel2" viser fremgangsmåte 2. Eksempel.zip Lenke til kommentar
runevikestad Skrevet 12. desember 2006 Forfatter Del Skrevet 12. desember 2006 (endret) Derja! Nå fikk jeg det endelig til å fungere Kommer vel kanskje til å oppleve enda mer rot nå da, dersom la oss si at jeg skal ha en rapport i framtiden - som skal vise både Hovedkategory og Underkategori for hvert produkt rapporten lister. Men tenker løsningen blir noe slik her også.. SELECT tbl_SubCategory.SubCategoryName FROM tbl_SubCategory WHERE (((tbl_SubCategory.CategoryDetails)=Forms!rpt_ListProduct.cboMainCategory)); Noe du tror jeg kommer til å slite med t0my? Også - som du skrev Ulempen med dette er at hovedkategoriboksen blir ikke oppdatert og verdiene følger med gjennom alle postene.Her kan du sikkert lage en VBA kode som enten oppdaterer hovedkategoriboksen hvis posten allerede har fått valgt underkategori. Ellers kan du også i VBA nullstille hovedkategoriboksen når du skifter post. Noe sted du kan anbefale å gå for å prøve å finne ut av dette? Er absolutt ikke dreven på VBA så. Et forum jeg kan spør på, en irc kanal eller lignende Endret 12. desember 2006 av runevikestad Lenke til kommentar
ravika Skrevet 12. desember 2006 Del Skrevet 12. desember 2006 Nå er jeg ikke sikker på hva du mente egentlig.... Men hvis du vil sette opp en rapport som grupperer produktene etter hoved og undergruppe er ikke det spesiellt vanskelig. Du bruker bare grupperingsnivåer i rapportveiviseren til dette. Så fixer Access rapporten for deg. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå