Avatar billede mtm Praktikant
07. november 2001 - 19:49 Der er 14 kommentarer og
1 løsning

udskrive nye poster i access2000(dk)

Hej alle ”eksperter”

Jeg har et ”lille” problem som jeg håber i kan hjælpe med

I min Access 2000 database ud skriver jeg en rapport.
(En ”indholds-liste”)

Når jeg skal udskrive denne rapport skal jeg have den til at skrive ”ny”
ud for de sidste poster (ikke angivet ved noget tid) fra et tal jeg skal angive..

dvs. hvis der er 100 poster og der er 20 nye
jeg trykker på udprint rapport, så skal den først komme ud og spørge efter et tal
(jeg skriver 80)
derefter skal den i rapporten skrive ny ud for posterne 81 til 100..

Hvordan gør jeg det ??

På forhånd tak..
07. november 2001 - 20:32 #1
I detaljesektionen laver du en etikette der hvor du vil have at der skal stå \"Ny\". I etiketten skriver du så \"Ny\" og giver den den farve du evt vil have, at den skal have.
Etiketten navngives lblNy

Følgende kode lægges i rapportens kode-modul:

Dim varNr as Integer
Private Sub Report_Open(Cancel As Integer)
  varNr = Inputbox(\"Angiv antal\") 
End sub

Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
  Me!lblNy.visible = (Me!Nr > varNr)
End Sub


Nr skal erstattes af navnet på dit felt i tabellen.

/Thomas
www.makeiteasy.dk
Avatar billede mtm Praktikant
10. november 2001 - 10:39 #2
Hej Thomas
og undskyld det sene svar..
Men jeg har prøvet at rode med det du har skrevet. Men kan dessvære ikke få det til at vikke.

har oprettet en etiket navngivet den lblNy og har lagt følgne kode ind..

Dim varId as Integer
Private Sub Report_Open(Cancel As Integer)
  varId = Inputbox(\"Angiv antal\") 
End sub

Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
  Me!lblNy.visible = (Me!Id > varId)
End Sub

Kan du evt. se hvad jeg laver forkert ?
Mvh mtm
Avatar billede mtm Praktikant
10. november 2001 - 10:41 #3
BTW.. den visser etiketen ud for alle posterne..
11. november 2001 - 17:30 #4
Hmm, har du tekstboksene liggende i detaljesektionen? - det er selvfølgelig en forudsætning.

Prøv endvidere at kontrollere at der står (Hændelsesprocedure) i egenskaben \"VedFormattering\" på detaljesektionen.
Hvis der gør det, så prøv at lav et breakpoint ud for linien:
Me!lblNy.visible = (Me!Id > varId)

(det gør du ved at klikke på den grå lodrette bjælke i ventre side af kodevinduet ud for den pågældende linie.

Derefter starter du rapporten og linien skulle gerne komme frem, markeret med gult.

Herefter kan du trykke Ctrl+G og spørge på forskelleige værdier for at kontrollere at betingelserne er korrekte.
Skriv f.eks.:
?Me!Id  (og tryk ENTER)
?varID (og tryk ENTER)

Let me know what happens?
Avatar billede mtm Praktikant
11. november 2001 - 20:51 #5
Hej Thomas
Mine tekstboxe ligger i detaljesektionen
det skal være en etiket jeg skriver ny i og ikke en tekst box ikke?
Jeg kan kun breake den ved
Private Sub Report_Open(Cancel As Integer)
varId = Inputbox(\"Angiv antal\") 
end sub (Her kan jeg se at varId passer med det jeg har skrevet)
med ikke ved
Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
  Me!lblNy.visible = (Me!Id > varId)
End Sub
der springer den bare videre og viser rapporten..
11. november 2001 - 22:39 #6
OK, så prøv at ændre
Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
til
Private Sub Detaljesektion_Format(Cancel As Integer, FormatCount As Integer)

Og kontroller at der står (Hændelsesprocedure) i egenskaben Ved Formattering\" på detaljesektionen.

Jeg tror, at det var en sprog-bøf, der sneg sig ind der....
Avatar billede mtm Praktikant
12. november 2001 - 16:45 #7
hej Thomas igen..
der står (Hændelsesprocedure) i egenskaben Ved Formattering
men nu siger den.
runtime error MS.Access kan ikke finde feltet \"id\" der refereres til i udtrykket.
i line Me!lblNy.visible = (Me!id > varId)

Min min id felt hedder Id (har prøver at omdøbe det til id , vikker heller ikke)

men jeg kan ikke skrive Me!Id, den laver det hele tiden om til Me!id (ved ikke om det har noget at sige)

Nogen ide`er ?
Mvh mtm
Avatar billede mtm Praktikant
12. november 2001 - 16:52 #8
den siger \"runtime error 2465\" hvis det hjælper
12. november 2001 - 20:04 #9
Underligt!

Men én ting slog mig: Din Report_Open burde ikke virke, som den er nu:

Den bør se således ud:
Private Sub Report_Open(Cancel As Integer)
  varId = val(Inputbox(\"Angiv antal\"))
End sub

Det undre mig, at du ikke fik en fejl på den.
Prøv at se om det ændre noget!
Avatar billede mtm Praktikant
12. november 2001 - 20:36 #10
Hej Thomas
Desværre det samme.
hvis jeg prøver ?varId, får jeg det jeg taste i boxen.
12. november 2001 - 20:45 #11
Sidste mulighed: Send det til mig, så kigger jeg på det i morgen tidlig.
tj@makeiteasy.dk

Jeg lukker for i aften ;o)
13. november 2001 - 08:38 #12
Hej igen,

Tak for det modtaget ;o)

Jeg kan se, at du slet ikke har ID-feltet med på rapporten. Dette er en nødvendighed for at kunne referere til det i en beregning.
Hvis du ikke ønsker at vise ID-feltet, så skal du blot skjule det.

Endvidere havde du (i hvert fald i den version jeg fik) undladt at erklære varID på modul-niveau (øverst). Du havde godt nok fjernet Option Explicit, men dette var årsagen til at den ikke brokkede sig over den manglende Val(). Simpelthen fordi Access betragtede varID som 2 forskellige lokale variable.

Jeg har sendt dig den rettede db.

mvh
Thomas
Avatar billede mtm Praktikant
13. november 2001 - 16:44 #13
Hej Thomas..
okay. det med id feltet var jeg ikke klar over..
Men nu vikker det, næsten...
hvis jeg skriver 810 så ta` den 82 til 99 med.
Kan man ikke sætte sit id felt til 0001, 0002 o.v.s. ?  eller hvad skal jeg gøre ?
mvh.
MtM
13. november 2001 - 16:49 #14
Argh, jeg skrev vist Dim varID as String, gjorde jeg ikke?
Den skal selvfølgelig hedde:
Dim varID as Long

Prøv om det hjælper.

/Thomas
Avatar billede mtm Praktikant
13. november 2001 - 17:03 #15
Jammen! nu er den der.  :o)
Jeg takker mange gange. igen igen...
Mvh MtM
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