Toon posts:

[Access]foutmelding bij uitprinten formulier

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo,

Ik ben bezig om het laatste record van een formulier uit te printen via het form_load event. nou dacht ik snel klaar te zijn door er van te maken:

code:
1
2
3
4
Private Sub Form_Load()
DoCmd.gotorecord , , acLast
DoCmd.PrintOut
End Sub


Maar hierbij krijg ik de foutmelding:

Run-time error '2585'

This action can't be carried out while processing a form or report event.

Wanneer ik docmd.printout eruit haal is het klaar maarja dan werkt het niet meer zoals ik het wil hebben.

Als ik dat print commando los aan een knop bind is er geen probleem. Maar ook als ik dit commando in het form_timer event hang om er een vertraging van 5 seconden(las ergens dat dat het ook kon oplossen ) in te bouwen krijg ik nogsteeds de foutmelding.

Dus iemand hier een oplossing voor?

  • thomrob
  • Registratie: Maart 2001
  • Laatst online: 22-05 12:22

thomrob

allround developer

F! of googlezoeken??

Verwijderd

Topicstarter
had ik al gedaan, vind je niet echt nuttige info over het specifieke probleem of duidelijke oplossingen staan er volgens mij ook niet bij.

Verwijderd

Je zou het eens kunnen proberen in de Form_activate. Maar dan moet je er wel voor zorgen dat die code maar 1 keer kan worden uitgevoerd ( Form_activate wordt iedere keer als het form opnieuw de focus krijgt getriggerd )

Zoiets als dit
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
Dim Init as Boolean

Private Sub Form_load()
  Init = true
end sub

Private Sub Form_Activate()
  If init the
    Init = false
    ' Doe hier je print
  end if
end sub

  • jwpmzijl
  • Registratie: December 2002
  • Laatst online: 20:46
Ik heb even zitten testen in Access 97. Ook in het activate-event kun je geen printout opdracht opnemen. De oplossing zal TS dus op een andere wijze moeten vinden.

Dat is op zich niet zo moeilijk. het betreffende formulier wordt ongetwijfeld een menu of knop op een ander formulier geopend. Voeg aan het menu/knop extra code toe die:
- het betreffende formulier opent
- naar het laatste record gaat
- dit laatste record afdrukt
- het formulier open laat staan óf sluit (naar wens).

Waarom MS de printout-functie voor form-events heeft gedeactiveerd is mij onduidelijk. Maar zoals meestal moet je als programmeur zoeken naar een oplossing die het gewenste resultaat geeft. Of dat programmeertechnisch de mooiste oplossing is dan minder van belang. natuurlijk is dit aanvechtbaar. Er zijn echter andere arena's om dat gevecht te voeren en ik trek mij bij voorbaat terug uit dat gevecht....

Hans van Zijl


  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Verwijderd schreef op 11 september 2004 @ 01:00:
Je zou het eens kunnen proberen in de Form_activate.
De foutmelding is duidelijk: geen .printout tijdens de uitvoering van een form event. Je zou wel een aparte functie kunnen maken die het formulier opent en vervolgens afdrukt:
code:
1
2
3
4
5
Sub OpenEnPrint(strFormNaam as string)
        'open formulier strFormNaam
        'ga naar laatste
        'druk formulier af
End Sub

[ Voor 5% gewijzigd door Lustucru op 11-09-2004 10:48 ]

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


Verwijderd

Topicstarter
Toch werkt de oplossing die FFrenzy geeft volgens mij wel goed? Hij gaat iig naar de laatste record en start de printopdracht. behalve dat hij nu alle records uit wil printen inplaats van het laatste record 8)7 .

Maar inderdaad het gaat erom dat ik via een beginform op een knop druk die het betreffende formulier opent die moet dan naar de laatste record gaan en uitprinten.

edit: heb het denk ik al opgelost, moest even het record nummer meegeven aan de printopdracht.

[ Voor 12% gewijzigd door Verwijderd op 11-09-2004 13:12 ]

Pagina: 1