Forfatter |
Emne Søg Emne funktioner
|
TAC
Forum Begynder
Medlem: 24-12-2015
Land: Danmark
Status: Offline
Point: 19
|
Emne: Værdiliste i formular Sendt: 24-12-2015 kl. 18:06 |
Har en database med
bl.a. tre tabeller: PRODUKTER, VARENR og ORDRESPECIFIKATION
Brugeren indtaster
ordredata via en formular (dataarkvisning) med flg. kolonner:
Ordrenr, Pakkedato,
Partinr, Produktnavn, PKat, Prod.nr, VareNr, Varenavn, Produktkategori og 5 til
Ordrenr og Pakkedato
kommer automatisk.
Under Partinr vælger
brugeren fra en værdiliste et Partinr, hvorefter Produktnavn,PKat, ProdNr
udfyldes automatisk via en Hændelsesprocedure efter opdatering og cursoren
springer frem til
VareNr.
Her får brugeren en
værdiliste igen med ALLE varenumre og skal så vælge et varenr hvorefter
Varenavn, Produktkategori udfyldes automatisk via en Hændelsesprocedure efter
opdatering
Jeg ville gerne at
brugeren i værdilisten under VareNr KUN får de VareNr hvor varenrs
Produktkategori er lig med PKat under Partinr. Værdilisten skal altså KUN vise
de VareNr hvor Produktkategori er lig med PKat i samme ordrelinie.
Jeg kan ikke få SELECT
ordren i Rækkekilden til at vælge disse. SELECT ordren skal ikke sammenligne med
PKat fra PRODUKTER-tabellen men fra den samme ordrelinie i formularen.
Er der nogen der har
et godt råd?
|
|
|
|
|
hkh
Sølv bruger
Medlem: 15-08-2012
Status: Offline
Point: 320
|
Sendt: 25-12-2015 kl. 07:19 |
Den select sætning du ikke kan få til at virke, hvordan ser den ud? Hvordan er dine tabeller opbygget? Jeg kan ikke umiddelbart se hvilke felter der kommer fra hvilke tabeller.
|
Hans
|
|
TAC
Forum Begynder
Medlem: 24-12-2015
Land: Danmark
Status: Offline
Point: 19
|
Sendt: 25-12-2015 kl. 22:00 |
uploads/152/Ordrespec_og_opsætning.xlsxHer opsætningen med de fungerende SELECT sætninger, samt det mislykkede forsøg. Det er klart at den forsøgte SELECT sætning ikke virker, den vil jo blot vælge samtlige varenumre hvor Produktkategori og Pkat er ens og derfor vælger den blot dem alle sammen, Databasen holder nemlig styr på hvordan produkterne er blevet til varer, altså et produkt er pakket i en eller anden colli størrelse på pakkedatoen til en bestemt ordre/kunde. Dermed er der styr på hvor alle produkter er sendt hen.
|
|
hkh
Sølv bruger
Medlem: 15-08-2012
Status: Offline
Point: 320
|
Sendt: 05-01-2016 kl. 12:25 |
For at kunne hjælpe dig videre, skal jeg bruge felterne og felttype i dine tabeller.
Men jeg gør et forsøg: Hvis du opretter en forespørgsel, hvor du har de tabeller som du skal bruge data fra. Der skal være en relation mellem tabellerne, ellers får du antal af poster i den ene tabel ganget med antallet af poster i den anden tabel, hvis relationen er mellem dine felter [Produktkategori] og [Pkat] kan den opsættes til 'Medtag kun poster hvor felterne er ens'(højreklik).
Men hvis du allerede har [Pkat] i et felt i formularen kan [varenummer]'s rækkekilde sættes til at vise udvalgte varer, ved hjælp af en where delen: "SELECT Produkter.* FROM Produkter WHERE (((Produkter.Produktkode)='" & [pkat] & "'));" Dette er kun et eksempel, men det burde virke hvis du ændrer til dine felt- og tabelnavne. Jeg har antaget at indholdet af [pkat] er af typen tekst, derfor skal der være enkelte anførselstegn før og efter indholdet af feltet [pkat]
|
Hans
|
|
TAC
Forum Begynder
Medlem: 24-12-2015
Land: Danmark
Status: Offline
Point: 19
|
Sendt: 24-04-2016 kl. 22:51 |
Beklager den sene reaktion, men har ikke haft lejlighed til at rode rundt i databasen i længere tid. Dit svar har været en hjælp. Din SELECT kode virker OK i første ordrespecifikationslinie. Men i den anden viser den de samme Varenr som i første linie, så SELECT koden må kigge et forkert sted. Det er hensigten at opslaget under Varenr skal vise de Varenr som har samme Produktkategori som står i anden kolonne under Produktart. Produktkategori og Produktart refererer til samme tabel. I anden linie på screen-dumpet kan du se at der igen kommer Varenr med spisekartofler under produktkategori, hvor det skulle være varenr med produktkategorien spidskål, som står i anden kolonne.
|
|
TAC
Forum Begynder
Medlem: 24-12-2015
Land: Danmark
Status: Offline
Point: 19
|
Sendt: 24-04-2016 kl. 22:57 |
|
|
hkh
Sølv bruger
Medlem: 15-08-2012
Status: Offline
Point: 320
|
Sendt: 25-04-2016 kl. 04:58 |
Det er ikke nemt at se noget på det billede, men vi prøver igen. Jeg antager ordreformularen hedder Ordrer og at feltet i ordreformularen hedder Pkat
SELECT varenr.* FROM varenr INNER JOIN produkter ON varenr.produktkategori '" & forms!ordrer!pkat & "' ORDER BY varenr.varenr;
|
Hans
|
|
TAC
Forum Begynder
Medlem: 24-12-2015
Land: Danmark
Status: Offline
Point: 19
|
Sendt: 06-05-2016 kl. 17:28 |
Nej det har du ret i, altså at det er svært at se på screendump, men jeg prøvede at tage det ud og forstørre det. Formularen hedder rigtigt nok "Ordrer" og underformularen hvor opslaget er lavet i hedder "Ordrespecifikation". Kolonneoverskrifterne i ordrespecifikation hedder Ordrenr, Pakkedato, Partinummer, Produktart, Varenr, Varetekst, Produktkategori osv. I opslag under Varenr vises flg. kolonner, Varenr, Varetekst, Produktkategori osv. Så er det at jeg gerne vil have at opslaget begrænses til at vise Varenr hvor Varenrs Produktkategori svarer til Produktart som svarer til Partinummers Produktart, som altså er indtastet i kolonnen ligefør Varenr. Det er nok værd at bemærke, at Partinummers Produktart og Varenrs produktkategori er hentet fra samme tabel ved navn Produktkategorier. Men formularen skal altså være så klog at den ved opslag KUN viser Varenr som har samme Produktkategori som Partinummeret. Hvis Partinummers Produktart er Kartofler, skal opslaget kun vise varenr med Produktkategorien Kartofler. uploads/152/Screendump_ordrer_2.jpgDet skulle du måske kunne se noget bedre på. Jeg kom vist også til at uploade et der hedder Screendumo_ordrer som viser opslag under partinummer. Håber du kan se formularen bedre denne gang I øvrigt tak for din indsats
|
|
hkh
Sølv bruger
Medlem: 15-08-2012
Status: Offline
Point: 320
|
Sendt: 06-05-2016 kl. 18:28 |
Det kan ikke umiddelbart lade sig gøre, Partinummer er et tal og produktkategori er tekst. Du skal have to felter af samme type. Hvis produktkategori er et opslag burde nedenstående kunne virke.
SELECT tab_varenr.* FROM tab_varenr WHERE (((tab_varenr.produktkategori)="& partinummer & ")) ORDER BY tab_varenr. varetekst;
Du kunne evt oprette en database med formularen, formularens tabeller med noget testdata, den skal nok pakkes for at kunne vedhæftes.
|
Hans
|
|
TAC
Forum Begynder
Medlem: 24-12-2015
Land: Danmark
Status: Offline
Point: 19
|
Sendt: 16-05-2016 kl. 15:54 |
Tak for dit forslag. Jeg har oprettet en lille testdatabase, som indeholder de relevante tabeller og formularer. Der er lagt lidt data ind i den, så det er muligt at oprette ordrer. Tak for din medvirken, for jeg har ikke kunnet få det til at fungere. Jeg prøver at vedhæfte basen. Den fylder kun 0,7MB. Nu har jeg uploadet her i systemet og håber du kan få den ud.
|
|
TAC
Forum Begynder
Medlem: 24-12-2015
Land: Danmark
Status: Offline
Point: 19
|
Sendt: 16-05-2016 kl. 16:01 |
Ups, jeg glemte at give dig linket
uploads/152/Databasetst.accdb
|
|
hkh
Sølv bruger
Medlem: 15-08-2012
Status: Offline
Point: 320
|
Sendt: 16-05-2016 kl. 17:07 |
Linket er ikke aktivt!
|
Hans
|
|
TAC
Forum Begynder
Medlem: 24-12-2015
Land: Danmark
Status: Offline
Point: 19
|
Sendt: 16-05-2016 kl. 18:46 |
|
|
hkh
Sølv bruger
Medlem: 15-08-2012
Status: Offline
Point: 320
|
Sendt: 17-05-2016 kl. 07:46 |
Jeg glemte lige en ting, jeg benytter version 2007. Det gør desværre at jeg ikke kan læse nogle af dine tabeller.
|
Hans
|
|
Faroe2k9
Bronze bruger
Medlem: 17-05-2016
Land: Færøerne
Status: Offline
Point: 6
|
Sendt: 17-05-2016 kl. 11:14 |
Hey TAC.
Jeg byder mig lige ind, siden hkh ikke kan læse databasen.
Kan du kort skrive et resume over hvad der er galt, og hvad du ønsker den skal kunne?
|
|
hkh
Sølv bruger
Medlem: 15-08-2012
Status: Offline
Point: 320
|
Sendt: 17-05-2016 kl. 14:32 |
Det kan jeg måske: I formularen ordrer's underformular er der et felt kaldet produktkategori(combobox) der kun skal vise den varegruppe som er valgt i produktart(combobox)
|
Hans
|
|