Gå til innhold

Access 2003: Hovedskjema & Delskjema


Anbefalte innlegg

Jeg har følgende spørringer; qry_OrderSuper, qry_OrderSub, qry_Order. Hvor da

delskjemaet finnes i qry_OrderSub, hovedskjemaet i qry_OrderSuper og til slutt qry_Order som setter dem sammen å brukes til å lage skjemaene med veviseren.

 

Sånn jeg er ser det så er relasjonene som du finner i bildet under, riktige. Jeg har

altså fått til en mange til mange relasjon. Tidligere - vet jeg at dersom spørringene og relasjonene er gjort riktig - skal veiviseren selv råde meg til å lage delskjema/hovedskjema, noe den nå ikke gjør. Det betyr det er noe jeg har oversett eller gjør feil, men finner ikke ut av det selv så langt.

 

Noen som har tid til å se raskt på dette - å kanskje finne ut av det? Du kan laste ned

både databasen og et bilde av relasjonene nedenfor

 

Last ned:

[yaos.mdb]

relationship.jpg

Lenke til kommentar
Videoannonse
Annonse

Fikk det til å funke - var som du sa ja - takk :) hehe

 

Dog det oppstod et lite problem hos meg, siden i delskjemaet har jeg OrderDetailsID som kommer fra skjemaet OrderDetails, som jeg bruker til å binde ordre og produkt sammen med.

 

OrderDetailsID har som sagt lagt seg i delskjemaet, så dersom du nå prøver å legge til flere produkter - vil du se at dette blir vanskelig da access klager på at OrderDetailsID ikke kan ha duplikate verdier .. Prøvde å fjerne den fra spørringen og fra skjemaet - men endte bare opp med å måtte skrive inn en verdi for den når jeg åpnet skjemaet da .. any idea?

 

Lasted opp ny versjon av mdb fila og la til et bilde - du finner begge under :)

 

http://wrath.fud.no/~rune/yaos.mdb

http://wrath.fud.no/~rune/strange_problem_1.JPG

http://wrath.fud.no/~rune/feilmelding.JPG

 

:>

Endret av runevikestad
Lenke til kommentar

Problemet er vel at du har glemt et felt i tabellen tbl_OrderDetails. Iværtfall hvis du ønsker å legge inn en vare flere ganger per ordre.

Access klager over duplettverdier fordi, når du legger inn varer i feltene som er nøkler i tabellen, så kan du bare legge disse inn 1 gang. Dvs at ordrenummer 1 kan bare ha en bestilling av en unik vare. (Noe som kanskje ikke gjør noe siden du har mulighet til å velge antall av varen.)

 

Feilmeldingen du linker til kommer nok av at du manuellt har skrevet inn det 2 tallet i feltet OrderDetailsID, noe som gjør at access ikke finner den relaterte posten. Hele feltet OrderDetailsID kan du skjule i delskjemaet, siden det ikke har noe funksjon (blir automatisk utfyllt).

 

EDIT: Er ikke nødvendig å legge til et autonummer-felt i tbl_OrderDetails, dersom du vil den skal fungere slik som nå (noe som kanskje er bra nok?).

Endret av t0my
Lenke til kommentar
Problemet er vel at du har glemt et felt i tabellen tbl_OrderDetails. Iværtfall hvis du ønsker å legge inn en vare flere ganger per ordre.

Access klager over duplettverdier fordi, når du legger inn varer i feltene som er nøkler i tabellen, så kan du bare legge disse inn 1 gang. Dvs at ordrenummer 1 kan bare ha en bestilling av en unik vare. (Noe som kanskje ikke gjør noe siden du har mulighet til å velge antall av varen.)

 

Feilmeldingen du linker til kommer nok av at du manuellt har skrevet inn det 2 tallet i feltet OrderDetailsID, noe som gjør at access ikke finner den relaterte posten. Hele feltet OrderDetailsID kan du skjule i delskjemaet, siden det ikke har noe funksjon (blir automatisk utfyllt).

 

EDIT: Er ikke nødvendig å legge til et autonummer-felt i tbl_OrderDetails, dersom du vil den skal fungere slik som nå (noe som kanskje er bra nok?).

7498920[/snapback]

 

Haha, det tenkte jeg ikke over en gang .. er kanskje litt rask med å si at ting er feil, burde prøvd med en par produkter først kanskje ;)

 

Er det foresten mulig å endre på Autonummer verdier i en tabell? F.eks force endring av Autonummer 17 til 16?

Lenke til kommentar
Er det foresten mulig å endre på Autonummer verdier i en tabell? F.eks force endring av Autonummer 17 til 16?

7500792[/snapback]

Nei, det går nok ikke. Men kan resette autonummerene ved å komprimere og rette databasen.

7500849[/snapback]

 

Så om jeg har en masse Autonummre fra 1-19 hvor omtrent 5 autonummer i midten ikke blir brukt, pga at jeg gjor litt feil når jeg ordet på skjema - så vil da 1-19 igjen bli til 1-14?

 

Høres ut som omtrent det jeg er ute etter værtfall :)

Lenke til kommentar
Så om jeg har en masse Autonummre fra 1-19 hvor omtrent 5 autonummer i midten ikke blir brukt, pga at jeg gjor litt feil når jeg ordet på skjema - så vil da 1-19 igjen bli til 1-14?

7500926[/snapback]

Det går nok helt sikkert ikke. Fordi da ville du fått problemer med relaterte tabeller.

Men den fungerer iallefall slik at dersom du har laget noen poster på slutten, også slettet de. Slik at forrige post er f. eks 12, mens neste er 20. Så vil en komprimering av databasen tilbakestille autonummeret til neste i rekken (13).

Dvs at den begynner med autonummeret som er +1 ifrohold til siste post.

Endret av t0my
Lenke til kommentar
Så om jeg har en masse Autonummre fra 1-19 hvor omtrent 5 autonummer i midten ikke blir brukt, pga at jeg gjor litt feil når jeg ordet på skjema - så vil da 1-19 igjen bli til 1-14?

7500926[/snapback]

Det går nok helt sikkert ikke. Fordi da ville du fått problemer med relaterte tabeller.

Men den fungerer iallefall slik at dersom du har laget noen poster på slutten, også slettet de. Slik at forrige post er f. eks 12, mens neste er 20. Så vil en komprimering av databasen tilbakestille autonummeret til neste i rekken (13).

Dvs at den begynner med autonummeret som er +1 ifrohold til siste post.

7501053[/snapback]

 

Okay, litt kjekt å vite slike småting:)

 

=IIf()=Yes;([frm_OrderSub].[Form]![txtSumPriceInclVAT]*[MemberDiscount];);

 

Hva med noe slik? Dersom kjøper er medlem - ta summen av prisen og trekk fra rabatten.

 

Prøver fram å tilbake, men får alltid wrong number of arguments

Endret av runevikestad
Lenke til kommentar

Har også nå av en eller annen grunn - klart å ødelegge noe - så nå om jeg velger Product ID fra combo boksen - så får jeg opp resultater, men kan ikke velge noe ;/

 

Kan dette ha noe med at jeg fjernet "Discount" fra delskjema tabellen - og la den til i tbl_Config så la denne inn i spørringen?

Lenke til kommentar
Har også nå av en eller annen grunn - klart å ødelegge noe - så nå om jeg velger Product ID fra combo boksen - så får jeg opp resultater, men kan ikke velge noe ;/

 

Kan dette ha noe med at jeg fjernet "Discount" fra delskjema tabellen - og la den til i tbl_Config så la denne inn i spørringen?

7501358[/snapback]

Hmm... ikke sikker på om jeg skjønnte problemet.... Dersom du oppdaterer databasen du la ut tidligere, er det kanskje lettere....

Lenke til kommentar
Har også nå av en eller annen grunn - klart å ødelegge noe - så nå om jeg velger Product ID fra combo boksen - så får jeg opp resultater, men kan ikke velge noe ;/

 

Kan dette ha noe med at jeg fjernet "Discount" fra delskjema tabellen - og la den til i tbl_Config så la denne inn i spørringen?

7501358[/snapback]

Hmm... ikke sikker på om jeg skjønnte problemet.... Dersom du oppdaterer databasen du la ut tidligere, er det kanskje lettere....

7501385[/snapback]

 

La ut en oppdatert versjon nå på http://wrath.fud.no/~rune/ som sist :) Skal være oppdatert om 5 minutt (treig linje hjemme) - sjekk last modified bare :)

Endret av runevikestad
Lenke til kommentar
Kan dette ha noe med at jeg fjernet "Discount" fra delskjema tabellen - og la den til i tbl_Config så la denne inn i spørringen?

7501358[/snapback]

Er helt klart tbl_Config som ødelegger spørringen ja. Den kan ikke legges inn slik du har det.

 

EDIT:

Tips: .mdb filer liker seg bedre zippet :) (tar MYE mindre plass, når du laster opp)

Endret av t0my
Lenke til kommentar
Kan dette ha noe med at jeg fjernet "Discount" fra delskjema tabellen - og la den til i tbl_Config så la denne inn i spørringen?

7501358[/snapback]

Er helt klart tbl_Config som ødelegger spørringen ja. Den kan ikke legges inn slik du har det.

 

EDIT:

Tips: .mdb filer liker seg bedre zippet :) (tar MYE mindre plass, når du laster opp)

7501499[/snapback]

 

Hehe, skal jeg huske ;)

 

Er det ikke noen annen måte å hente ut MemberDiscount verdien fra tbl_Config på da? Ser at jeg ikke kan bare sette Row Source - siden skjemaet allerede bygger på en spørring - men kanskje med VBA?

 

Eller er det kanskje lettere å legge til MemberDiscount i tbl_OrderSuper for så å gjør no slik som dette:

 

txtSumWithoutDiscount

=Sum([Total Price])

 

txtDiscount:

=[OrderSub].[Form]![MemberDiscount]

 

txtDiscountSum

=[txtSumPrice]*[OrderSub].[Form]![MemberDiscount]

 

txtTotalPrice

[txtSumPrice]+[txtSumWithoutDiscount]

 

 

Litt rotete - men kanskje du skjønner ;>

Lenke til kommentar
Er det ikke noen annen måte å hente ut MemberDiscount verdien fra tbl_Config på da? Ser at jeg ikke kan bare sette Row Source - siden skjemaet allerede bygger på en spørring - men kanskje med VBA?

 

Eller er det kanskje lettere å legge til MemberDiscount i tbl_OrderSuper for så å gjør no slik som dette:

 

txtSumWithoutDiscount

=Sum([Total Price])

 

txtDiscount:

=[OrderSub].[Form]![MemberDiscount]

 

txtDiscountSum

=[txtSumPrice]*[OrderSub].[Form]![MemberDiscount]

 

txtTotalPrice

[txtSumPrice]+[txtSumWithoutDiscount]

 

 

Litt rotete - men kanskje du skjønner ;>

7501598[/snapback]

Her kommer det litt an på hvordan du ønsker det.

Slik jeg ser det har du tre valg (i tilfeldig rekkefølge):

 

1. Legge MemberDiscount inn i tabellen tbl_Order

Da må du manuellt legge inn om hvor stor rabatt ordren skal ha.

 

2. Legge MemberDiscount inn i tabellen tbl_Customer

Da får hver kunde sin egen rabatt.

 

3. Ikke legge til feltet MemberDiscount

Dette bruker du dersom rabatten er lik for alle medlemmer. Da legger du rett og slett rabatten inn i en kode i spørringen: Eks: =[Total Price]*0,1 (for 10% rabatt)

 

Felles for metode 2 og 3 er at de ikke håndterer endringer i rabatter tilfredstillende. F. eks hvis rabatten til medlemene skiftes vil alle rabattene i de tidligere ordrene også skifte.

 

Angående koden din for å referere til felt i skjemaer, så blir jeg imponert dersom den funker. Trodde nemlig den skulle være

=[Forms]![OrderSub].[MemberDiscount]

Ikke:

=[OrderSub].[Form]![MemberDiscount]

Lenke til kommentar
Her kommer det litt an på hvordan du ønsker det.

Slik jeg ser det har du tre valg (i tilfeldig rekkefølge):

 

1. Legge MemberDiscount inn i tabellen tbl_Order

Da må du manuellt legge inn om hvor stor rabatt ordren skal ha.

 

2. Legge MemberDiscount inn i tabellen tbl_Customer

Da får hver kunde sin egen rabatt.

 

3. Ikke legge til feltet MemberDiscount

Dette bruker du dersom rabatten er lik for alle medlemmer. Da legger du rett og slett rabatten inn i en kode i spørringen: Eks: =[Total Price]*0,1 (for 10% rabatt)

 

Felles for metode 2 og 3 er at de ikke håndterer endringer i rabatter tilfredstillende. F. eks hvis rabatten til medlemene skiftes vil alle rabattene i de tidligere ordrene også skifte.

 

Hva om jeg legger til Discount i tbl_OrderSub da?

 

Vil du ikke kan få muligheten til å legge til en rabatt sum for hvert produkt du velger

som kunden har kjøpt nedover listen?

 

Kan kanskje regne ut pris med rabatt i det samme jeg regner ut total pris for varen (varepris+antall-moms)

 

tenker bare høyt her men..

Lenke til kommentar
Hva om jeg legger til Discount i tbl_OrderSub da?

 

Vil du ikke kan få muligheten til å legge til en rabatt sum for hvert produkt du velger

som kunden har kjøpt nedover listen?

7502599[/snapback]

Joda, men det er jo kun interessant dersom hvert produkt har ulik rabattsats. Noe som vil tilsi at du heller burde legge til feltet i tbl_Product.

(Tror du først må finne ut hva du ønsker med rabatten, før du bestemmer hvor du skal plassere den.)

Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...