13. september 2005 - 23:31Der er
13 kommentarer og 1 løsning
query i rapport? (forsættelse af if sætninger i rapporter)
Hvis jeg prøver at laver en query i rapport'en med inner joins så access at det ikke er tilladt, men hvordan får jeg så fat i mine data.
Hvis jeg f.eks. har en liste over alle mine solgte ting (inkl hvilken faktura de høre til), men i detalje sektionen vil jeg ha' den nyeste faktura makeret med grå farve.
farven laves sådan her: If IsNull(Me!nyesteFaktura) Then Me!Fnr.BackColor = vbYellow Me!Fnr.BackStyle = 1 'Normal Else Me!Fnr.BackColor = vbWhite Me!Fnr.BackStyle = 0 'Gennemsigtig End If
Men hvordan finder jeg den nyeste faktura og fortæller at den skal farveligge?
Jeg antager, at dine fakturaer er fortløbende nummereret således, at den nyeste faktura har det højeste nr.
Du kan så oprette en variabel (VARa) der ved hjælp af DMax funktionen finder det højeste fakturanr i tabellen. Derefter en docmd.find der finder fakturanr = din variabel.
If Me!nyesteFaktura = VARa Then Me!Fnr.BackColor = vbYellow Me!Fnr.BackStyle = 1 'Normal Else Me!Fnr.BackColor = vbWhite Me!Fnr.BackStyle = 0 'Gennemsigtig End If
pokker ta' det, det fungere ikke på forspørgelser?
nu er det sådan at jeg gerne vil lave en liste til hver kunde med hvad de har købt, og dvs. at det er den nyeste faktura for hver kunde som skal være grå på den liste jeg printer til kunden.
Vi snakker her 2 forskellige udprint, derfor jeg gerne ville lave det med forspøgsel, som viser hvad kunde har købt og hvilke fakturaer som høre til, og så "markere" hans sidste nye faktura
Du kan ikke formatere en forespørgsel på den måde, at du kan farvelægge bestemte poster. Det er du nødt til at gøre med en betinget formatering eller med en VBA-kode.
jeg har lavet en forspørgsel som vælger alle de ting han har købt, som jeg bruger til den her rapport, så jeg tænkte at jeg ville bruge den til at smide ind i DMAX funktionen, men den gik desværre ikke.
private Sub Detaljesektion_Print(Cancel As Integer, PrintCount As Integer) Dim test As Integer
Set dB = CurrentDb Set rs = dB.OpenRecordset("SELECT MAX(eksponeringer.fakturanr) AS test FROM (kunder INNER JOIN brands ON kunder.kundenummer = '" & Me.kundenummer & "') INNER JOIN eksponeringer ON brands.id = eksponeringer.brandid")
Oops, der fik jeg trykket på send lidt for tidligt, sorry...
I din forespørgsel kunne du indsætte en MAX(fakturanr):
SELECT ol.varenr, v.varetekst, ol.salgspris, tmp.*, oh.fakturanr FROM Ordrelinier ol INNER JOIN Varer v ON ol.varenr = v.varenr INNER JOIN Ordrehoveder oh ON ol.ordrenr = oh.ordrenr INNER JOIN ( SELECT k.kundenr, k.kundenavn, k.kundeadresse, k.kundeby, MAX(oh.fakturanr) AS SidsteFakturanr FROM Kunder k INNER JOIN Ordrehoveder oh ON k.kundenr = oh.kundenr GROUP BY k.kundenr, k.kundenavn, k.kundeadresse, k.kundeby ) AS tmp ON oh.Kundenr = tmp.Kundenr ORDER BY oh.kundenr, v.varetekst
Så kunne du jo sætte farven til grå, ligesom du før gjorde med den gule. Du skulle bare sammenligne fakturanr med SidsteFakturanr i stedet.
Sorry jeg har været lidt langsom på den her, jeg skal nok få tjekket op på den mandag :)
Synes godt om
Ny brugerNybegynder
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.