Toon posts:

nieuwe record afdrukken op rapport in acces 2k

Pagina: 1
Acties:

Verwijderd

Topicstarter
Weet iemand hoe ik een net aangemaakte record kan afdrukken op een rapport in access 2000, door middel van een opdrachtknop. Krijg het wel voor elkaar dat hij ook alle oude aangemaakte adrukt, maar niet die ik net heb aangemaakt.
Heb nu deze broncode in visual basic:

*edit* Broncode verwijdert, deel hierboven is al gelukt. Iets verder naar onder staat het andere probleem *edit*

[ Voor 48% gewijzigd door Verwijderd op 04-06-2003 14:09 ]


  • Masch
  • Registratie: Augustus 2002
  • Laatst online: 21:16
Code lijkt me goed..

Misschien eerst DoCmd.Save uitvoeren?

(\__/) Ik wist totaal niet wat hier neer te zetten....
(='.'=) Dus het werd....
("")("") Een konijn!!


Verwijderd

Topicstarter
*verwijdert*

[ Voor 96% gewijzigd door Verwijderd op 04-06-2003 14:11 ]


Verwijderd

Laat die NTT het zelf uitzoeken... Is met z'n stage opdracht bezig ;)

NTT, lukt je wel.....een keer! :O

[ Voor 26% gewijzigd door Verwijderd op 08-05-2003 15:33 ]


Verwijderd

Topicstarter
*offtopic* Bram, ssst. Ga jij nou maar iets doen op je stage ipv internetten. *offtopic*
PS. Het zal me eerder lukken als jou

[ Voor 18% gewijzigd door Verwijderd op 08-05-2003 15:35 ]


Verwijderd

*offtopic* Moeten ze wel wat te doen hebben ;) *offtopic*

Ik ga nie met die acces shit werken, geef my maar php en mysql :D

[ Voor 38% gewijzigd door Verwijderd op 08-05-2003 15:37 ]


Verwijderd

Topicstarter
*offtopic* En daar kun je zelfs geen fuck van! *offtopic*
Nu even ontopic AUB!

Verwijderd

Topicstarter
Ben der waarschijnlijk al uit. Zit hem in quey volgens mij.

Verwijderd

Topicstarter
Ben nu zover dat hij er maar 1 adrukt, maar nu zet hij de ingevoerde gegevens niet op het rapport. Nu dacht ik eerst, zet in broncode dat hij eerst record opslaat. Maar dan komt hij met melding: De opdracht of actie Recordopslaan is momenteel neit beschikbaar.
Broncode nu:
Sub Knop72_Click()
On Error GoTo Err_Knop72_Click

Dim stDocName As String

stDocName = "Klachtenformulier"
DoCmd.OpenReport stDocName, acNormal

If Me![RETOUR] Then stDocName = "Retourgoederenformulier": DoCmd.OpenReport stDocName, acNormal

DoCmd.Close

Exit_Knop72_Click:
Exit Sub

Err_Knop72_Click:
MsgBox Err.Description
Resume Exit_Knop72_Click

End Sub

Verwijderd

Topicstarter
Dit is overigens code zonder opslaan, daarvoor zet ik er tussen:

DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70

Verwijderd

Topicstarter
Niemand een idee wat het kan zijn?

  • Boss
  • Registratie: September 1999
  • Laatst online: 00:09

Boss

+1 Overgewaardeerd

ARH!
1. Wizard gebruikt die onnodige variabelen aanmaakt (stDocName)
2. Wat is Knop72? Geef eens een naam aan je objecten!

Maargoed, dat moet je zelf weten.

Voor je probleem: als je gewoon het record opslaat voordat je het rapport opent werkt dat gewoon hoor.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
Sub cmdOpenRapport_Click()
On Error GoTo Err_cmdOpenRapport_Click

DoCmd.RunCommand acCmdSaveRecord
DoCmd.OpenReport "Klachtenformulier", acPreview

Exit_cmdOpenRapport_Click:
Exit Sub

Err_cmdOpenRapport_Click:
MsgBox Err.Description
Resume Exit_cmdOpenRapport_Click
End Sub

The process of preparing programs for a digital computer is especially attractive, not only because it can be economically and scientifically rewarding, but also because it is an aesthetic experience much like composing poetry or music.


Verwijderd

Topicstarter
Werkt ook niet, krijg precies zelfde melding:
De actie of opdracht Recordopslaan is momenteel niet beschikbaar

  • Boss
  • Registratie: September 1999
  • Laatst online: 00:09

Boss

+1 Overgewaardeerd

Is dat tijdens het debuggen? Dan kan je idd niet opslaan.

Kan je iets anders bedenken waardoor het niet mogelijk zou zijn om een record op te slaan? Dan kunnen we iets gerichter meedenken :)

The process of preparing programs for a digital computer is especially attractive, not only because it can be economically and scientifically rewarding, but also because it is an aesthetic experience much like composing poetry or music.


Verwijderd

Topicstarter
Nee, gewoon tijdens het normaal invoeren van gegevens.
Is er miss een optie om het via een macro te kunnen op slaan en daarna de broncode voor printen laten uitvoeren?

  • Boss
  • Registratie: September 1999
  • Laatst online: 00:09

Boss

+1 Overgewaardeerd

DoCmd.RunCommand acCmdSaveRecord zou in principe de 'broncode' voor opslaan moeten uitvoeren. Vreemd hoor.

The process of preparing programs for a digital computer is especially attractive, not only because it can be economically and scientifically rewarding, but also because it is an aesthetic experience much like composing poetry or music.


Verwijderd

Topicstarter
Dat vond ik dus ook. Normaal moet het ook werken als je zo'n standaard opdrachtknop in access aanmaakt, maar die doen het dus ook niet.
Heeft er iemand miss een oplossing?

Verwijderd

Topicstarter
Schop

Ondertussen nog niks verder mee gekomen.
Nieuwe install van access heeft ook niks geholpen.

  • WimB
  • Registratie: Juli 2001
  • Laatst online: 30-03-2024
Werkt dit niet:
code:
1
DoCmd.OpenReport  "Klachtenformulier", acViewNormal, ,  "Order-id =" & Order-id.Value

Verwijderd

Topicstarter
Dat deel werkt al, zit nu met probleem dat hij het record meot opslaan voordat hij gaat printen. Als dat niet gebeurt van tevoren drukt hij de gegevens niet af, dus leeg rapport.

  • WimB
  • Registratie: Juli 2001
  • Laatst online: 30-03-2024
Opslaan doet hij automatisch in Access. Desnoods kan je gewoon een Me.Requery doen, maar dat is normaal niet nodig.

De bovenstaande code werkt bij mij ook bij een nieuw record.

Verwijderd

Topicstarter
Als ik dat gebruik vraagt ie zelf nog om order.
Dit heb ik nu:

Dim stDocName As String
DoCmd.Save
stDocName = "Klachtenformulier"
DoCmd.OpenReport stDocName, acNormal

If Me![RETOUR] Then stDocName = "Retourgoederenformulier": DoCmd.OpenReport stDocName, acNormal

DoCmd.Close

Maar bij dit, sruk hij een leeg rapport af en is de bedoeling dat hij ook de gegevens die net ingevuld zijn mee afdrukt.
Is het zo dat ik bijvoorbeeld nog eerst keer naar ontwerpweergave ga en dan weer terug en ik klik dan pas op knop van afdrukken werkt het wel.

ps. Dit gebeurt vanuit een formulier, je vult hem in en drukt dan op de knop voor afdrukken.

  • WimB
  • Registratie: Juli 2001
  • Laatst online: 30-03-2024
Je geeft helemaal geen filter mee :?
En wat bedoel je met zelf om order vragen.

Verder begrijp ik niet dat je in bepaalde gevallen 2 rapporten opent, zowel Klachtenformulier als Retourgoederenformulier.

Wat is nu eigenlijk de bedoeling van dit alles, want ik begrijp het niet goed meer.

  • Han
  • Registratie: Juli 2001
  • Niet online

Han

--> P&W :)

En zou de topicstarter wat vaker gebruik willen maken van de editknop (Afbeeldingslocatie: http://gathering.tweakers.net/global/templates/got/images/icons/edit.gif). Als je iets wil toevoegen en je hebt als laatste gereply'ed dan kan je dat in je laatste reply toevoegen. Daarmee voorkom je de indruk dat je techpost wilt scoren of dat je je topic omhoog loopt te schoppen. Tevens graag ontopic blijven..

B.v.d. :)

[ Voor 96% gewijzigd door Han op 04-06-2003 13:14 ]

Doubt thou the stars are fire; Doubt that the sun doth move; Doubt truth to be a liar; But never doubt I love.


Verwijderd

Topicstarter
Ok, zal ik doen.

Nou het gaat om een klachtendatabase.
Bij het invullen van het formulier moet je bij retour invullen ja of nee. Staat er ja dan print hij de retourgeoderenformulier uit, anders niet.
Hoe zit dat dan met filter?
Als er wat niet duidelijk is moet je het maar zeggen, dan zal ik wel een post hierboven editten ;) en het proberen wat duidelijker uit te leggen.

  • WimB
  • Registratie: Juli 2001
  • Laatst online: 30-03-2024
Stel, je hebt op je formulier minimum een tekstveld voor retour en een tekstveld Order-id
In dit tekstveld Order-id staat de sleutel van het order (waarschijnlijk autonummering). Van zodra je een nieuw record aanmaakt en je geeft iets in, plaatst Access normaalgezien het id in Order-id. Vanaf dan is het record ineens opgeslagen.

DoCmd.Save heeft geen zin, want dat bewaart enkel de layout van het formulier. Deze functie dien je dus enkel te gebruiken bij het wijzigen van de layout.

Hier een voorbeeld van hoe de code eruit kan zien als er voldaan is aan de voorwaarden die ik net heb omschreven:

code:
1
2
3
4
5
6
7
8
Dim stDocName As String

If Retour.Value = True Then 
    stDocName = "Retourgoederenformulier"
Else
    stDocName = "Klachtenformulier"
End If
DoCmd.OpenReport  stDocName, , acViewNormal, ,  "Order-id =" & Order-id.Value

Verwijderd

heb niet het hele verhaal gelezen, maar mij komt het over alsof je een rapport wil maken van een record dat nog niet is opgeslagen. Typ anders eens: Requery in je VBA voordat je het rapport opent.

Verwijderd

Topicstarter
WimB:

Ok, bedankt. zal es even wat gaan uitproberen.

Wim de vaatwasspecialist:

Nee, ik heb al een rapport. Maar ik maak in een formulier een nieuwe record aan. Dan met klik op knop is het de bedoeling dat gegevens uit record worden afgedrukt op dat rapport.

  • WimB
  • Registratie: Juli 2001
  • Laatst online: 30-03-2024
Je kan inderdaad in mijn code net voor de If een Me.Requery zetten, maar ik weet niet of dit noodzakelijk is. Gewoon proberen zou ik zeggen

Verwijderd

Topicstarter
Heb nog wat dingen geprobeert, maar het wil niet echt werken.

Hoorde net dat ik ergens voor het printen: DoCmd.Requery moet zetten, maar heb geen idee waar in de code. Kan iemand me dit vertellen?

[ Voor 54% gewijzigd door Verwijderd op 23-06-2003 16:18 ]

Pagina: 1