Avatar billede OWB Novice
27. juni 2004 - 18:31 Der er 33 kommentarer og
3 løsninger

Udskrive rapport kun indeholdende aktuelle post vist i form

Hej.

Jeg har med stor hjælp fra terry fået en mindre database, til styring af værkstedsordre op at stå. Jeg har nu et rapport problem. Fra en form (frmNyOrdre) kan brugeren danne en ny værkstedsordre, ved at vælge et bestemt emne fra en kombinationsboks (cboEmneNr), samt taste det antal der ønskes fremstillet af pågældende emne, i en tekstboks (txtOrdreAntal). Mit problem består her efter i, at når jeg fra selv samme form med en kommandoknap (cmdUdskrivOrdre) aktivere min rapport (rapVærkstedsordre), bliver den dannet ud fra hele database, det vil sige med alle tidligere værkstedsordre, og ikke kun pågældende post.

Et andet problem med rapporten (rapVærkstedsordre), er at et emne kan have ind til 3 råvarer tilknyttet, som også skal være repræsenteret på rapporten / værkstedsordren. Derfor har jeg ladet feltet repræsentere sig 3 gange på rapporten, med det resultat, at de alle bliver udfyldt med første råvare, hvad enten der er 1, 2 eller 3 råvarer tilknyttet. I min tabel (tblEmneRåvare) holder jeg styr på hvor mange råvarer et emne består af, og i hvilken mængde. Primærnøglen dannes ud fra emnenummeret samt råvarenummeret, og der tillades dubletter af emnenummeret, da der jo kan være op til tre tilknyttede råvarenumre til samme emnenummer.

Håber i forstår mit problem, og har nogle forslag til hvordan jeg løser det : )
Avatar billede mugs Novice
27. juni 2004 - 19:04 #1
For at udskrive den aktuelle post skal du indsætte et kriterie i din formular således hvbis dit unikke felt er et tekstfelt:

DoCmd.OpenReport "rapport1", acViewPreview, , "[Tabel1]![TABELNAVN] = '" & Me!FELTNAVN & "'"

Hvis feltet er alfanumerisk:

DoCmd.OpenReport "rapport1", acViewPreview, , "[Tabel1]![TABELNAVN] = " & Me!FELTNAVN & ""
Avatar billede terry Ekspert
27. juni 2004 - 20:25 #2
Hi Ule,
You need to make a query something like this, which has all three tables in it.

SELECT Emnedata.[Emne Nr], Emnedata.[Emne navn], tblEmneRaavare.RaavareNr, tblEmneRaavare.Maengde, Raavarer.[Raavare navn], Raavarer.Toretid, Raavarer.[Fortore temp]
FROM Raavarer INNER JOIN (Emnedata INNER JOIN tblEmneRaavare ON Emnedata.[Emne Nr] = tblEmneRaavare.EmneNr) ON Raavarer.[Raavare nr] = tblEmneRaavare.RaavareNr;

Now you can make a report using the report wizard. Choose the query from the table or query list. Then add the fields you want to see in the report.
When you are asked how you want to view the data choose "by Emnedata", this groups the report on Emne, so you dont need to choose any grouping on the next form.
Now you will have a report showing ALL data (emne) but now each emne should show you the "råvarer" used for that emne.

Now when you open the report using something like mugs' example you should only see the current emne/råvarer.
Avatar billede OWB Novice
27. juni 2004 - 23:23 #3
Mange tak for jeres svar :-)  Der er vist for meget nedtur på nu hvor de danske drenge er røget hjem, til at jeg magter at rode med det i aften. Endnu engang tak, kigger videre på det så snart jeg kommer hjem fra arb. i morgen :-)
Avatar billede OWB Novice
28. juni 2004 - 22:19 #4
Jeg kan ikke rigtig få det til at virke.

-> mugs, jeg kan ikke rigtig finde ud af hvor meget jeg skal ændre i dit kodeeksempel.
Min rapport hedder som nævnt [rapVærkstedsordre], min tabel for værkstedsordre hedder [tblVærkstedsordre], og primærnøglen i denne tabel, ordrenummeret, er som feltnavn benævnt [Ordre nummer] og tekstfeltet på min formular som repræsenterer dette felt er benævnt [txtOrdreNr]

Jeg har blandt andet forsøgt med følgende:
DoCmd.OpenReport "rapVærkstedsordre", acViewPreview, , "[Tabel1]![tblVærkstedsordre] = " & Me![txtOrdreNr] & ""

og

DoCmd.OpenReport "rapVærkstedsordre", acViewPreview, , "[Tabel1]![tblVærkstedsordre] = " & Me![Ordre nummer] & ""

I alle tilfælde bliver jeg mødt af en ”Indtast parameterværdi” dialogboks.?

->terry, jeg har en forespørgsel der ligner meget det du beskriver, men mit problem er, at lige meget om emnet værkstedsordren lyder på har tilknyttet 1, 2 eller 3 råvarer, fyldes mine tre ”råvarer + tilhørende parametre” felter i rapporten med den første råvare der er tilknyttet emnet. Jeg ville gerne, at hvis emnet eksempelvis kun havde én råvare tilknyttet, blev kun første ”råvare + tilhørende parametre” felter i rapporten udfyldt, mens de to sidste felt sæt forbliver blanke? Jeg kan godt se at det må være svært at styre, når nu alle tre felt sæt på min rapport har samme kilde? Er det helt umuligt det jeg spørger efter?

I håb på hjælp, ule.
28. juni 2004 - 22:56 #5
Prøv med dette for at udskriv den aktuelle post:

DoCmd.OpenReport "rapVærkstedsordre", acViewPreview, , "[Ordre nummer] = '" & Me!txtOrdreNr& "'"
Avatar billede OWB Novice
29. juni 2004 - 00:18 #6
->thomasjepsen, hvis jeg bruger dit eksempel som ovenstående får jeg en syntaksfejl. Jeg prøved efterfølgende at lave det om til følgende:

DoCmd.OpenReport "rapVærkstedsordre", acViewPreview, , "[Ordre nummer] = '" & Me![txtOrdreNr] & "'"

Det giver så en "Run-time error '3464': Datatyperne stemmer ikke overens i kriterieudtrykket."  : (
29. juni 2004 - 00:20 #7
ok, hvis Ordre nummer er nummerisk, skal den hedde:

DoCmd.OpenReport "rapVærkstedsordre", acViewPreview, , "[Ordre nummer] = " & Me![txtOrdreNr]
Avatar billede mugs Novice
29. juni 2004 - 05:45 #8
ule > Jeg har læst dine kommentarer.
Thomasjepsen's svar burde løse dine problemer med udskriften.
Avatar billede terry Ekspert
29. juni 2004 - 12:43 #9
Ule, I'll take a look when I get home from work.
Avatar billede terry Ekspert
29. juni 2004 - 18:24 #10
Ule, is it possible for you to send the dB so that I can see how you are making the report. If you are using a query similar to what I mentioned and have also used the report wizard then it shouldnt display the same record three times!

eksperten@NOSPAMsanthell.dk
remove NOSPAM
Avatar billede OWB Novice
01. juli 2004 - 08:37 #11
Mange tak for jeres svar, jeg har ikke haft mulighed for at rode med det før nu, jeg håber på jeres forståelse : )

Mvh. ule.
Avatar billede terry Ekspert
02. juli 2004 - 10:11 #12
Ule's report contains a single detail record where he wants to see all THREE Råvare, even if they dont exist! So, assuming that the first exists, I have made the following.

Look at the three field containing Råvare Nr. I have renamed the fields containing [Råvare Nr]to R1, R2 and R3. R1 contains the Råvare Nr from the query. R2 is an UNBOUND field and it uses Dlookup to get the next Råvare Nr, and R3 again does this to get the one > R2.
This is what the Control Source looks like for R2

"=IIf(IsError(DLookUp("[Råvare Nr]","[quyVærkstedsordre]","[Ordre Nummer] =" & [Ordre Nummer] & " AND [Råvare Nr] > " & [R1])),"",DLookUp("[Råvare Nr]","[quyVærkstedsordre]","[Ordre Nummer] =" & [Ordre Nummer] & " AND [Råvare Nr] > " & [R1]))"

with some slight changes for R3

This would need to be done for ALL fields on the three rows on the report. It could also be done in the query, but the amount of work is just the same I think!

I am sure there are a number other ways this could be done, but his one is reasonable straight forward, although it does involve a bit of work!
Avatar billede terry Ekspert
08. juli 2004 - 19:57 #13
Hows it going with this question ule?
Avatar billede mugs Novice
08. juli 2004 - 22:42 #14
Dette er åbenbart ikke særlig relevant / vigtigt for brugeren ule. Så jeg overvejer at blokere for denne bruger, ligesom jeg overvejer at blokere for andre brugere der ikke responderer på afgivne svar.
Avatar billede OWB Novice
09. juli 2004 - 08:34 #15
Hej alle. Jeg er meget ked af, hvis i føler at jeg virker uinteresseret i jeres hjælp, og jeg er selvfølgelig endnu mere ked af, hvis en konsekvens her af skulle være at blive ekskluderet som bruger af eksperten. Der har for mit vedkommende bare været en del ting at se til, på blandt andet mit arbejde, som har gjort at jeg ikke har haft så meget fritid til at rode med det. Men her kommer så en status.

Terry har hjulpet mig meget med nogle rapporteksempler, og rapporten ser nu ud og fungere (vist?)  som jeg gerne vil. Der er dog et lille problem ved udskrift. Jeg har endnu ikke fundet ud af om det er et sammenhængende problem, men umiddelbart virker det som om at en værkstedsordre på et emne tilknyttet mere end én råvare, generere en ekstra rapportside.? Det vil sige en værkstedsordre på et emne tilknyttet et emne = 1 rapportside, en værkstedsordre på et emne tilknyttet to råvarer = 2 rapportsider, osv.

--> mugs /thomasjepsen, jeres bud på udskrivning af kun pågældende post (DoCmd.OpenReport "rapVærkstedsordre", acViewPreview, , "[Ordre nummer] = " & Me![txtOrdreNr]) virker til at virke, da der kun udskrives samme værkstedsordre. Og det skal i selvfølgelig have point for

--> terry, jeg vil prøve at ændre alle felterne i råvareområdet til den nye kode du forklarede mig, således at det ikke kun er på de tre felter indeholdende en tekst-streng jeg bruger den, men også alle de med en numerisk. Jeg skal få det afprøvet i dag, og så poster jeg en besked sidst på eftermiddagen / i aften.

Jeg er meget glad for alles hjælp, og undskylder at jeg ikke har virket sådan.

Hilsen Ole.
Avatar billede terry Ekspert
09. juli 2004 - 08:42 #16
Ole,
The last database I sent should alreday be converted so that ALL fields now work using the method I decribed. Are you saying it doesnt work?
Avatar billede OWB Novice
09. juli 2004 - 09:58 #17
terry, OK, det kan jeg godt se, jeg havde en kopi som jeg arbejdede videre med, efter at jeg havde sendt DB'en til dig. Men selv om jeg tager udgangspunkt i den DB du sendte tilbage til mig, ser det ud som om at der er et problem i retning af nævnt i min forrige post. Det vil sige at en værkstedsordre på et emne tilknyttet en råvare = 1 rapportside, en værkstedsordre på et emne tilknyttet to råvarer = 2 rapportsider, osv. Der ud over er der i en værkstedsordre på et emne kun tilknyttet én råvare, skrevet ”#Fejl” i felterne som egentlig skulle være blanke for tredje råvare.

Jeg har slettet alle gamle emner og værkstedsordre, og oprettet 4 nye. Emne 10010 = et emne med en råvare tilknyttet, emne 10020 = et emne tilknytte to råvarer, emne 10030 = et emne tilknyttet tre råvarer og emne 10040 = et emne tilknyttet en råvare. Ligeledes 4 nye værkstedsordre, nr. 40 = en ordre på emne 10010, nr. 41 = en ordre på emne 10020, nr. 42 = en ordre på emne 10030 og nr. 43 en ordre på emne 10040. Det har jeg gjort i et forsøg på at kunne gennemskue hvornår det er de ekstra rapportsider genereres.

For at tråden her evt. skulle kunne være til andres hjælp, kan DB’en hentes her: http://www.uni-it.biz/eksperten/db_files/MMordre_kopi.zip

Der ud over mangles der data i nogle af de beregnede felter i rapportens top, men det er en anden sag, som jeg nok skal oprette en ny tråd til, hvis jeg ikke magter at løse det selv.

Hilsen Ole
Avatar billede terry Ekspert
09. juli 2004 - 11:14 #18
Hi Ole,
The problem occurs because there can be between 0 and 4 "Råvare" for each ordre. This results in the same number of records in the query. Which would normally result in either all detail lines (Råvare) being displayed on the same page, or one detail line per page. Because you only want to show ONE detail and calculating the rest,  then we need to somehow hide any other details lines. I have an idea but just need to check that it works! Back soon
Avatar billede mugs Novice
09. juli 2004 - 11:49 #19
ule > Som alm. brugere kan vi ikke deaktivere en anden bruger. Jeg mente med mit sidste indlæg, at udelukkende jeg overvejer at blokere. Jeg (og et par andre) er begyndt nøje at se på hver enkelt bruger, vi hjælper, og hvor mange ubesvarede spørgsmål denne har åben. At blokere en bruger betyder, at jeg ganske simpelt ikke modtager nogen e-mail fra dig som bruger.

At man for en periode ikke har tid / overskud til at respondere på evt. indlæg i de spørgsmål, man selv har oprettet, er helt OK. En bemærkning i spørgsmålet om, at "jeg vender tilbage om et par dage", "rejser på ferie i 14 dage" er for mig et helt legalt middel til at forklare et fravær med deraf manglende respons.

Husk - at vi stiller vores fritid / og for andres vedkommende dyrt erhvervet viden ganske gratis til rådighed for eksperten's brugere. Og de point vi får, kan vi ikke bruge til andet end at se på skærmen, og godmodigt drille hinanden lidt ind imellem.
Avatar billede terry Ekspert
09. juli 2004 - 11:58 #20
Ole,
change the code for the buttons On Click event to

Dim sWhere As String

sWhere = "[Ordre nummer] = " & Me![txtOrdreNr] & " AND [Råvare Nr] = " & DMin("[Råvare Nr]", "quyVærkstedsordre", "[Ordre nummer] = " & Me![txtOrdreNr])

DoCmd.OpenReport "rapVærkstedsordre", acViewPreview, , sWhere
Avatar billede OWB Novice
09. juli 2004 - 12:55 #21
--> terry, mange tak for det, nu slap jeg af med de ekstra sider. : ) Det kan godt være jeg er lidt besværlig, men kan "#Fejl" teksten i felterne for tredje råvare fjernes, således at de står blanke som ved anden råvare, på værkstedsordre der lyder på emner kun tilknyttet én råvare.?
Avatar billede terry Ekspert
09. juli 2004 - 13:59 #22
Hi Ole,

I hope this works!

Make a function in the report


Function GetNextField(fld As String, Row As Integer) As String

Dim vFld As Variant

    On Error Resume Next
    Select Case Row
   
        Case 2
            vFld = DLookup(fld, "[quyVærkstedsordre]", "[Ordre Nummer] =" & [Ordre nummer] & " AND [Råvare Nr] > " & [Rnr1])
           
        Case 3
            vFld = DLookup(fld, "[quyVærkstedsordre]", "[Ordre Nummer] =" & [Ordre nummer] & " AND [Råvare Nr] > " & [Rnr2])
           
           
    End Select
   
    If Err.Number <> 0 Then vFld = ""
   
    GetNextField = vFld
   
End Function



Now alter the control source for the fields in row 2 and 3 to

(EXAMPLE for the [Råvare Nr] field on row 2)
You need to change either the field name or the row name.

=GetNextField("[Råvare Nr]",2)
Avatar billede OWB Novice
09. juli 2004 - 14:50 #23
Skal funktione laves i raport editoren, eller??

/Ole
Avatar billede terry Ekspert
09. juli 2004 - 16:34 #24
Open the report in design view and then from the menu choose View+Code

Now you just cut and paste the code into the VBA editor (code)
Avatar billede OWB Novice
09. juli 2004 - 17:18 #25
Tak, det prøver jeg i aften : )
Avatar billede OWB Novice
11. juli 2004 - 21:32 #26
-->terry, når jeg ændre control source på et felt til eksempelvis =GetNextField("[Råvare Nr]",2), får jeg en besked om at koden indeholder en ugyldig syntax? Jeg har prøvet med nogle af de andre felter også, men det er det samme.

/Ole
Avatar billede terry Ekspert
12. juli 2004 - 09:06 #27
It works here!
Try
=GetNextField("[Råvare Nr]";2)
Avatar billede terry Ekspert
12. juli 2004 - 09:08 #28
in the database I sent you, does the fields which I have altered work? If they do then you can cut and paste from one of those fields!
Avatar billede OWB Novice
12. juli 2004 - 10:38 #29
--> terry, efter at kommaet er blevet skiftet ud med et semikolon, får jeg ingen fejl på koden. Jeg kan ikke umiddelbart få det til at virke alligevel, felterne i anden og tredje række med råvare data er i alle tilfælde blanke, men skal lige være sikker på at jeg gør det rigtigt.?

I første række med råvare felter, har jeg ingen ændringer lavet i ”control source”

I anden række med råvare felter har jeg ændret ”control source” til følgende.:

Råvare Nr.: =GetNextField("[Råvare Nr]";2) Råvare navn.: =GetNextField("[Råvare navn]";2) osv.

I tredje række med råvare felter har jeg ændret ”control source” til følgende.:

Råvare Nr.:  =GetNextField("[Råvare Nr]";3) Råvare navn.: =GetNextField("[Råvare navn]";3) osv.

/Ole
Avatar billede terry Ekspert
12. juli 2004 - 11:08 #30
if the fields are empty then it sounds to me as though it is working but there is no data for the 2nd and 3rd lines!

If we take ONE FIELD at a time.
The control source for Rnr2 should be
=GetNextField("[Råvare Nr]";2)
Avatar billede terry Ekspert
12. juli 2004 - 11:09 #31
and make sure you are looking at an order with more than one line!
Avatar billede OWB Novice
12. juli 2004 - 12:41 #32
Jeg synes også at det er sådan at jeg har gjort, og "control source" for Rnr2 er præcis som du beskriver, men er også ved ordre med mere end en råvare tilknyttet blank.?

/Ole
Avatar billede terry Ekspert
12. juli 2004 - 12:57 #33
If you sent me your dB then I will take a look again when I get home from work
Avatar billede OWB Novice
12. juli 2004 - 12:59 #34
Det vil jeg selvfølgelig, sender den med det samme.. : )
Avatar billede OWB Novice
13. juli 2004 - 07:56 #35
Så var den der! : ) Terry gav besked om at [Ordre nummer] feltet skulle tilføjes rapportens detaljesektion, således at den ikke kun eksisterede som et felt i rapporthovedet. Mange tak for hjælpen til alle : )
Avatar billede terry Ekspert
13. juli 2004 - 09:24 #36
selv tak
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