Avatar billede cgleerup Nybegynder
09. november 2001 - 09:28 Der er 58 kommentarer og
1 løsning

udskriv - preferencer

Jeg har en udskriftsknap i en formular!

Hvordan får jeg denne til at spørge brugeren hvilken printer han/hun vil benytte. Altså ikke med en speciel msg box, bare windows standard for udskrift!
Avatar billede terry Ekspert
09. november 2001 - 09:30 #1
    DoCmd.RunCommand acCmdPrint
Avatar billede terry Ekspert
09. november 2001 - 09:31 #2
Put this on a buttons on click event

Public Function AppPrintOut()
On Error GoTo ErrorTrap

    DoCmd.RunCommand acCmdPrint
    Exit Function
   
ErrorTrap:

    \'Check whether the run command was canceled
    If Err.Number = 2501 Then
        Exit Function
    Else
        msgBox Err.Number & vbCrLf & Err.Description
    End If
   
End Function

Avatar billede cgleerup Nybegynder
09. november 2001 - 09:31 #3
hvordan skal jeg sætte den ind her:

On Error GoTo Err_Udskriv_Click

    Dim stDocName As String

    stDocName = \"Scanbox_Alle\"
    DoCmd.OpenReport stDocName, acNormal

Exit_Udskriv_Click:
    Exit Sub

Err_Udskriv_Click:
    MsgBox Err.Description
    Resume Exit_Udskriv_Click
Avatar billede terry Ekspert
09. november 2001 - 09:41 #4
The DoCmd.OpenReport stDocName, acNormal
prints the report on the current (default) printer.
You could change the line to the following
DoCmd.OpenReport stDocName, acPreview

And then pressing Ctrl+P shows the printer dialog wher eyou can change the default printer. Or you can sellect Print from the file menu. I call the function AppPrintOut in the answer I gave from a custom menu I use.



Avatar billede cgleerup Nybegynder
09. november 2001 - 10:16 #5
If i understand you and the code rigt, this i the way to create a preview, altso called \"Vis udskrift\" in danish - then the user have to press ctrl+P to print the page, are there no possibilities for print with the dialog directly from a botton
Avatar billede terry Ekspert
09. november 2001 - 10:28 #6
Yes \"Vis udskrift\" is correct. As far as I know, there isnt a way to choose another printer other than by opening the print dialog.
The print dialog prints the object which has the focus. This means that if you are previewing a report but select a form (give it the focus) then the print dialog will print that (the form) and not your report. So the only way I can see is by pressing Ctrl+P or through the menu.

It is possible to use a specific printer with your report (Page setup) when the report is in design view. But this cant be changed (or not easily).
Avatar billede terry Ekspert
09. november 2001 - 10:36 #7
You can try this to see if it works.
Place the function AppPrintOut in a global module

Then alter your code so it looks like this

DoCmd.OpenReport stDocName, acPreview
AppPrintOut


Or you can use DoCmd.RunCommand acCmdPrint
insteadd of AppPrintOut
Avatar billede larsen Nybegynder
09. november 2001 - 20:49 #8
Du kan prøve at finde \"PrtDevMode Property\" under hjælpen til access. Den indeholder alle data til printeren (printerne).

Hvis du laver en \"for each\"-løkke kan du finde ud af hvilke printere der er installeret.
Avatar billede larsen Nybegynder
09. november 2001 - 21:21 #9
Her er et link, som giver dig din default printer :
http://168.144.193.113/downloads/DefPrt.zip
Avatar billede cgleerup Nybegynder
12. november 2001 - 08:40 #10
Hvor kan jeg så indsætte en linje der svarer til terry\'s \"DoCmd.OpenReport stDocName, acPreview\" i følgende udksriftskode ?

Private Sub üdskriv_post_Click()
On Error GoTo Err_üdskriv_post_Click


    DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
    DoCmd.PrintOut acSelection

Exit_üdskriv_post_Click:
    Exit Sub

Err_üdskriv_post_Click:
    MsgBox Err.Description
    Resume Exit_üdskriv_post_Click
   
End Sub
Avatar billede terry Ekspert
12. november 2001 - 09:00 #11
Not sure what the Docmd.DoMenuItem is doing but the open report needs to be before you open the printer dialog

Private Sub üdskriv_post_Click()
On Error GoTo Err_üdskriv_post_Click

Dim stDocName As String

    stDocName = \"Scanbox_Alle\"
    DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70

    DoCmd.OpenReport stDocName, acNormal


    DoCmd.PrintOut acSelection

Exit_üdskriv_post_Click:
    Exit Sub

Err_üdskriv_post_Click:
    MsgBox Err.Description
    Resume Exit_üdskriv_post_Click
   
End Sub
Avatar billede cgleerup Nybegynder
12. november 2001 - 09:03 #12
sorry - i have not explained my self.
Den ovenstående kode udskriver en post i formularen - men for at den bliver udskrevet korrekt skal siden ligge ned, og af samme grund er det nødvendigt at brugeren kan vælge i printer dialog boxen!
Avatar billede terry Ekspert
12. november 2001 - 09:09 #13
cgleerup> can you tell me what the DomenuItem and the printout are doing in your code.

As far as I know the printout just prints the current object WITHOUT opening the print dialog.



Avatar billede cgleerup Nybegynder
12. november 2001 - 09:12 #14
Det er acces standard knappens kode, bare indsat på en anden knap! Så det er muligt at du har ret, men vil det så sige at jeg blot kan fjerne denne ?
Avatar billede terry Ekspert
12. november 2001 - 09:21 #15
Try this.

Private Sub Command2_Click()
On Error GoTo Err_Command2_Click

    Dim stDocName As String

    stDocName = \"Scanbox_Alle\"
    \'Preview report
    DoCmd.OpenReport stDocName, acPreview
    \'Open printer dialog
    DoCmd.RunCommand acCmdPrint
   
Exit_Command2_Click:
    Exit Sub

Err_Command2_Click:
    \'Check whether the run command was canceled
    If Err.Number = 2501 Then
        Exit Function
    Else
        msgBox Err.Number & vbCrLf &    Err.Description
    End If
   
    Resume Exit_Command2_Click
   
End Sub
Avatar billede cgleerup Nybegynder
12. november 2001 - 11:21 #16
Terry - jeg tror nok at jeg har forstået din pointe!
Men hvordan får jeg den til at spørge efter hvordan jeg vil udskrive når jeg skal udskrive en formular
Avatar billede terry Ekspert
12. november 2001 - 11:23 #17
di you want to print the form you are on or do you wnat to print areport from the form?
Avatar billede cgleerup Nybegynder
12. november 2001 - 11:26 #18
the form that i am on, i know its a different question - or more than i asked about the first time, but i will add 10 more points...

and once more - i want to print the post at the form that i am stayin at!
Avatar billede terry Ekspert
12. november 2001 - 11:35 #19
Now I am confused! is there  asingle record shown at a time or is it a continuous form showing many records?
Avatar billede cgleerup Nybegynder
12. november 2001 - 11:40 #20
Jeg forsøger mig lige på dansk, det er nu en gang det jeg er bedst til!

Jeg har en formular der viser flere forskellige poster, i denne formular har jeg følgende kode der udskriver den enkelte post:

Private Sub üdskriv_post_Click()
On Error GoTo Err_üdskriv_post_Click


    DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
    DoCmd.PrintOut acSelection

Exit_üdskriv_post_Click:
    Exit Sub

Err_üdskriv_post_Click:
    MsgBox Err.Description
    Resume Exit_üdskriv_post_Click
   
End Sub

Problemet er dog bare at jeg skal have adgang til printerdialogen for at kunne udskrive horizontalt i stedet for vertikalt (du ved stående og liggende) desuden er jeg ikke interesseret i at fyre sådanne fomularudskrifter i hovedet af min store farveprinter - det er rigeligt med lidt s/h!
Avatar billede terry Ekspert
12. november 2001 - 11:41 #21
You can use the button wizard to print a form. In this example I have just replaced the DoCmd.PrintOut with DoCmd.RunCommand acCmdPrint
DoCmd.PrintOut just prints the current object without opening the printer dialog, the Runcommand .... printe sthe current object opening the printer dialog

Private Sub Command38_Click()
On Error GoTo Err_Command38_Click

    Dim stDocName As String
    Dim MyForm As Form

    stDocName = \"YourForm\"
    Set MyForm = Screen.ActiveForm
    DoCmd.SelectObject acForm, stDocName, True
    \'DoCmd.PrintOut
    DoCmd.RunCommand acCmdPrint
    DoCmd.SelectObject acForm, MyForm.Name, False

Exit_Command38_Click:
    Exit Sub

Err_Command38_Click:
    msgBox Err.Description
    Resume Exit_Command38_Click
   
End Sub
Avatar billede cgleerup Nybegynder
12. november 2001 - 15:06 #22
nu udksriver jeg jo alle poster fra databasen, det var sådanset kun den aktive der skulle afsted
Avatar billede terry Ekspert
12. november 2001 - 15:09 #23
yes thats why I made the comment 11:35! Can you answer that comment please?
Avatar billede cgleerup Nybegynder
12. november 2001 - 15:13 #24
11:40:58
Jeg har en formular der indeholder flere poster. Altså mange forskellige poster og jeg vil gerne kunne udskrive dem enkeltvis.

Jeg har således en knap på min formular som fungere som udskriftsknap, og den udskriver med din nyeste kode rigtig mange sider på én gang - her var det festligt om den kunne nøjes med den aktuelle post!
Avatar billede terry Ekspert
12. november 2001 - 15:15 #25
But are you displaying a single record at a time or do you have a continuous form (all records)
Avatar billede cgleerup Nybegynder
12. november 2001 - 15:17 #26
Jeg viser en post af gangen, og omtaler det derfor som den aktuelle post :-)
Avatar billede cgleerup Nybegynder
12. november 2001 - 15:52 #27
er du gået hjem terry - eller har du ingen bud?
Avatar billede terry Ekspert
12. november 2001 - 18:20 #28
gone home! get back when I have had something to eat :o)
Avatar billede terry Ekspert
12. november 2001 - 19:22 #29
back again!

When you open the print dialog using DoCmd.RunCommand acCmdPrint you can choose what you want to print from there (all, pages or selected) and you can choose other paramteres such as landscape or portrait.

I think you will have to select \"selected\" manually. If you used the DoCmd.PrintOut method then you could set this in code but then you wouldnt be able to select landscape.

Why dont you set the page layout in the page setup menu and then use the DoCmd.PrintOut method?
Avatar billede terry Ekspert
12. november 2001 - 19:54 #30
After the line DoCmd.RunCommand acCmdPrint

add this
sendkeys \"%r\"

This selects the seltion radion button :o)
Avatar billede cgleerup Nybegynder
13. november 2001 - 08:47 #31
Ja, ok - jeg får da udskriftsdialogen men det er ikke særlig heldigt at en hvilken som helst bruger kan komme til at sætte en udskrift i gang ag de sidste 1500 poster i databasen!

Er der ikke andre løsninger - der er jo ved at være en del point at hendte!
Avatar billede terry Ekspert
13. november 2001 - 09:08 #32
Have you added the sendkeys \"%r\"?
Normally when the print dialog is opened then the All radio button is selected in the print range. The sendkeys \"%r\" selects the Selected Record(s) and it should be only one. Doesnt it just print the one record?

Th eproblem is that you wnat to let the user do some things but not others and this gives room for error.
WHY CAN YOU NOT SELECT THE PRINTER AND PAGE LAYOUT  FROM THE PAGE SETUP DIALOG?


Avatar billede cgleerup Nybegynder
13. november 2001 - 09:13 #33
About the sendkeys \"&r\" - yes i have tryed it, but i still got to count on the user, that he or she will remember to click in the \"selected\" button in the print dialog.

About the second question with the dialog \"page setup\" - like i wrote in top of this, i then have to count on the user, cause the page setup are not following the database, its different on different machines, right?
Avatar billede terry Ekspert
13. november 2001 - 09:19 #34
The Senedkeys \"%r\" selects the Selected for you. Obviously the user can change this, but then they can change anything in the print dialog.
If all printers are available for all PC\'s then you should be able to use the Page setup method.
Why dont you just make a report wich gets opened when you press on a button on your form? Th ereport can be fileterd to show just the current record on th eform and then open the printer dialaog. He cvan only print the current record on the report.
Avatar billede cgleerup Nybegynder
13. november 2001 - 09:22 #35
Terry >
Kan jeg lave en slags makrooptagelse der vælger udskriftsdialogen, makere i selected og ligger siden ned? (Som så altså skal kunne aktiveres med en knap!
Avatar billede cgleerup Nybegynder
13. november 2001 - 09:24 #36
Det lyder som en OK! Ide, men tag lige et kig på det sidste jeg skrev, var det en mulighed?

Med hensyn til det at \"%r\" skulle vælge \"selected\" så er det altså ikke tilfældet, man skal som bruger stadig afkrydse dette felt manuelt!
Avatar billede terry Ekspert
13. november 2001 - 09:26 #37
I NEVER use macroes. Everything you can do in a macro you can do in code (VBA). Lets just say that you can us ethe page setting sto set the page layout (landscape) and then the printer dialog to select \"SELECTED\" and then they can select the printer they want, isnt that good enough?
Avatar billede cgleerup Nybegynder
13. november 2001 - 09:30 #38
Det lyder som sagt helt, fint men jeg er ikke sikker på at jeg er helt med!

Kan jeg kode min knao til at udskrive i landscape, selected - således at brugeren ikke skal huske på andet end at vælge printer?
Avatar billede terry Ekspert
13. november 2001 - 09:30 #39
Is this because you have a dansk Access? Look at the Selected Record(s) is the  \"r\" not underlined? The %r sends an Alt+r to the keyboard.
If it is another character that is underlined then you need to change the \"r\" to that character.
Avatar billede terry Ekspert
13. november 2001 - 09:33 #40
In form design view select Page setup (or whatever it is if your using DK Access) and then page layout from the dialog. This is used only for this form and doenst mean that all form/reports get printed in landscape
Avatar billede cgleerup Nybegynder
13. november 2001 - 09:35 #41
Det tjekker jeg lige, men hvor skulle jeg finde ud af om jeg skal bruge alt+r for at markere
Avatar billede cgleerup Nybegynder
13. november 2001 - 09:37 #42
Det er alt+m, hvis jeg skal gå efter printer dialogen, men jeg synes ikke at det virker!

On Error GoTo Err_üdskriv_post_Click

    DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
      DoCmd.RunCommand acCmdPrint
      SendKeys \"%m\"
 
Exit_üdskriv_post_Click:
    Exit Sub

Err_üdskriv_post_Click:
    MsgBox Err.Description
    Resume Exit_üdskriv_post_Click
Avatar billede terry Ekspert
13. november 2001 - 09:38 #43
Look closely at the text \"Selected Record(s)\" One of the characters is underlined, in my version it is R. The R is the shortcut key used together with Alt (Alt+R) to select this radio button (try it)
Avatar billede terry Ekspert
13. november 2001 - 09:39 #44
Why dont you think it works?
Avatar billede cgleerup Nybegynder
13. november 2001 - 09:39 #45
Jeg har som sagt fundet ud af det, når jeg skal finde knappen, skal alt holdes ned for at vise denne \"underline\" det var som sagt m, og virker ikke!
Avatar billede cgleerup Nybegynder
13. november 2001 - 09:47 #46
Jeg har lige indstillet \"page setup\" - og det ser ud til at virke, jeg havde prøvet tidligere men naturligvis ikke i \"design mode\" - og formdenligt af samme grund ikke noget brugbart resultat.

Når jeg bruger den kode jeg skrev, kan jeg jo se om der er vinget af i selected, når jeg kommer til udskriftsdialogen!
Avatar billede terry Ekspert
13. november 2001 - 09:49 #47
Are you saying that the selected Records is selected but still all records are printed?
Avatar billede cgleerup Nybegynder
13. november 2001 - 09:51 #48
Nope, i am saying that the selected records is still not selected and then of cause, alle the records will be printed.

I do not see any mark i the radiobutton called markedere poster/selected records in the printer dialog!
Avatar billede terry Ekspert
13. november 2001 - 09:53 #49
If you Press Alt+m when the dialog is opened what happens, does the seletced... get selected?
Avatar billede cgleerup Nybegynder
13. november 2001 - 09:53 #50
i have allready tryed that, but i can try it again! two sec.
Avatar billede cgleerup Nybegynder
13. november 2001 - 09:55 #51
I just chekec it another time, to be sure!

YES! when i use the Alt+m i have succesfully cheked the radiobutton selected records/markerede poster.

but please take a loke at this code, what is wrong:
On Error GoTo Err_üdskriv_post_Click

    DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
      DoCmd.RunCommand acCmdPrint
      SendKeys \"%m\"
 
Exit_üdskriv_post_Click:
    Exit Sub

Err_üdskriv_post_Click:
    MsgBox Err.Description
    Resume Exit_üdskriv_post_Click
Avatar billede terry Ekspert
13. november 2001 - 09:58 #52
nothing as far as I can see, I dint know what to suggest. I have only English Access so it isnt going to help if you sent the database to me.
I will play around here and get back
Avatar billede cgleerup Nybegynder
13. november 2001 - 09:59 #53
Hey, can you please wait a minut?

if you can, then:
Does the \"%r\" funktion work in youre enlish version?
Avatar billede terry Ekspert
13. november 2001 - 10:00 #54
Yes, or I wouldnty have suggested using it!
Avatar billede cgleerup Nybegynder
13. november 2001 - 10:09 #55
allright - but when i use it, it do not work not whit an \"m\" and not whit and \"r\"!

:0)
Avatar billede cgleerup Nybegynder
13. november 2001 - 10:19 #56
Jeg acceptere dit svar og åbner et nyt med hensyn til den tast!
Avatar billede terry Ekspert
13. november 2001 - 10:20 #57
Ok
Avatar billede cgleerup Nybegynder
13. november 2001 - 10:23 #58
Ofcause i believe that we could have solved the problem, but sometimes the enjoyment of helping with questions are getting lower when you can see that a lot of people have answered the question alleready - right!
Avatar billede kadol Nybegynder
20. juli 2005 - 12:33 #59
DoCmd.RunCommand acCmdPrint does the job, but the dialog appears BEFORE you can preview (actually see it on your screen) the report. How can I first preview the report and then get the print dialog up automatically?
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