Avatar billede zeon_rm Nybegynder
15. maj 2001 - 11:54 Der er 9 kommentarer og
1 løsning

flere fragt metoder

Jeg kan ikke helt finde ud af om det her kan lade sig gøre..
Jeg skal have mulighed for at vælge mellem 2 metoder at fragte en vare på forudbetaling eller efterkrav. Det skal så være muligt at indtaste vægten på varen og prisen skal så automatisk dukke op. Dette skal foregå på tabel eller forespørgsels niveau.
Er der nogle der har en ide til hvordan dette kan gøres.
Jeg arbejder med Access 2000.

På forhånd tak
Nikolaj
Avatar billede terry Ekspert
15. maj 2001 - 12:04 #1
Hi Nikolaj!
Its not easy to come with a constructive answer as I dont know which tables you have. So is it possible to send me the database and I will take a look?

terry
15. maj 2001 - 12:36 #2
Hey Zeon,

Jeg tror, at jeg har en løsning parat.

Jeg går ud fra, at prisen pr vægt er inddelt i intervaller (ligesom alm. porto). Dertil skal oprettes en tabel:

Denne tabel indeholder to felter og hedder Priser (f.eks.):
-Vægt_Til (Numerisk)
-Takst (Reelt tal)

Jeg går også ud fra, at der er forskellig pris afhængig af om der betales forud eller pr efterkrav?

Dertil skal vi også bruge en tabel (Betalingsmetoder) med følgende felter:
-metode (numerisk - 1 for forudbetaling, 2 for efterkrav))
-Navn (Tekst)
-Pris (Numerisk)

Nedenstående SQL skal du så kunne indsætte i en forespørgsel, hvorefter feltet \"Samlet Pris\" giver det ønskede resulat.

SELECT Ordrenr, Betalingsmetode, Ordre.Vægt, Pris, Priser.Takst, [pris]+[Takst] AS [Samlet Pris]
FROM Priser, Betalingsmetoder INNER JOIN Ordre ON Betalingsmetoder.Metode = Ordre.Betalingsmetode
WHERE (((Priser.Takst) In (SELECT TOP 1 Takst FROM Priser WHERE Vægt_Til >= [Vægt] ORDER BY Vægt_til )))
ORDER BY Ordre.Ordrenr;

Hvis du ønsker en uddybning, må du give mig nogle flere detaljer om tabeller og beregningsmetoder.

/Thomas
Avatar billede zeon_rm Nybegynder
15. maj 2001 - 13:26 #3
Hej Thomas

jeg er sikker på at du har ret i din løsning, men jeg kan ikke helt se mig ud af hvad jeg skal skrive i.
-Vægt_Til
-Takst
for at det kommer til at passe med 2 valgmuligheder.

Nikolaj
15. maj 2001 - 13:41 #4
Hej Nikolaj,

Nej, det fik jeg vist ikke forklaret særlig godt.
Hvis du har nogle intervaller (f.eks. 0-50 g, 51-100 g, 101-200 g osv) så skriver du 50 i Vægt_Til og taksten for 0-50.
I næste post skriver du 100 og taksten for 51-100.
Dvs. at feltet Vægt_Til indeholder den øvre grænse for hvert interval.
Er det til at forstå?

mvh Thomas
Avatar billede zeon_rm Nybegynder
15. maj 2001 - 14:02 #5
Det vil så sige at man bare skriver den faste takst for at sende en pakke i tabellen priser og i betalingsmetoder tabellen skriver den ekstra pris det koster for at sende Pr. Efterkrav.
Er det tanken?

15. maj 2001 - 14:56 #6
ja, det er rigtigt.
I \"betalingsmetoder\" forestiller jeg mig noget i retning af:
1 - forudbetaling - 0
2 - efterkrav    - 50

Derved koster det 50 kr at sende pr efterkrav og ikke noget, hvis man betaler forud.

Er det forkert tænkt?
Avatar billede zeon_rm Nybegynder
16. maj 2001 - 11:40 #7
Hej Thomas

Nej det er ikke forkert tænkt, men en hel del smartere en jeg havde tænkt til at starte med...:)

Har lidt problemer med den SQL sætning.
Her er lidt info om den forespørgsel som jeg gerne vil have den ind i
Forespørgslen er PT bygget op om 2 tabeller
Tabel 1 (Produkter)
Tabel 2 (Ordre)
Følgende felter er med i forespørgslen:

Fakturanummer(Ordre)
-Antal(Ordre)
-Varenr(Ordre)
-Navn(Produkter)
-Pris uden moms(Produkter)
-Pris med moms(Produkter)
Betalingsmetode(Produkter)
Vægt(Produkter)

Nu vil jeg jo så gerne have et felt der regner fragtprisen ud alt efter hvad jeg indtaster i Betalingsmetode og vægt. Jeg har lavet de 2 tabeller Priser og Betalingsmetoder. hvordan skal den SQL sætning så se ud.

Du må sige til hvis du vil have flere points.

Nikolaj
16. maj 2001 - 19:34 #8
Hej Nikolaj,

Følgende SQL burde kunne gøre det:

SELECT [Ordrenr], [Betalingsmetode], [Tabel 2].[Vægt], [Pris], [Priser].[Takst], [pris]+[Takst] AS [Samlet Pris]
FROM Priser, Betalingsmetoder INNER JOIN [Tabel 2] ON [Betalingsmetoder].[Metode]=[Tabel 2].[Betalingsmetode]
WHERE (((Priser.Takst) In (SELECT TOP 1 Takst FROM Priser WHERE Vægt_Til >= [Vægt] ORDER BY Vægt_til )))
ORDER BY [Tabel 2].[Ordrenr];

Du skal dog være opmærksom på, at du ikke kan indtaste direkte i denne tabel. Du er derfor nødt til at foretage indtastningerne i Tabel 2. Hvis det hele skal foregå i én og samme formular, så skal jeg nok have nogle flere oplysninger (samt eventuelt din database?)

/Thomas
Avatar billede zeon_rm Nybegynder
16. maj 2001 - 21:56 #9
Hej Thomas

Ja det var ideen at de 2 tabeller Produkter og Ordre blev samlet i en forespørgelse, hvor det bla. skulle være muligt at indtaste Betalingsmetode og vægten og derefter få fragtprisen.

Du må meget gerne kigge på min DB hvis du har tid. 
Jeg tror det er min mangle på søvn der er grunden til at jeg slet ikke kan overskue det du prøver at forklare mig...:)

Skal den bare sendes til tj@makeITeasy.dk

Nikolaj

16. maj 2001 - 22:43 #10
Oui :-)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester