Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: не работает!!! :((
 
 автор: Егор   (02.04.2007 в 12:15)   личное сообщение
 
 

.PrintOut True, False, wdPrintAllDocument, "", , , wdPrintDocumentContent, 1, "", wdPrintAllPages, False, True, , True, 0, 0, 0, 0
Пытаюсь отправить на 2-хстороннюю печать- не выходит, распечатываетя, но на отдельных листах. Жирным выделен параметр, который отвечает за такую печать.
HELP ME, PLEASE

  Ответить  
 
 автор: osmor   (02.04.2007 в 12:21)   личное сообщение
 
 

А откуда такой метод PrintOut ?

  Ответить  
 
 автор: Егор   (02.04.2007 в 12:23)   личное сообщение
 
 

Dim app As Word.Application
With app.ActiveDocument
.PrintOut True, False, wdPrintAllDocument, "", , , wdPrintDocumentContent, 1, "", wdPrintAllPages, False, True, , True, 0, 0, 0, 0
End With

  Ответить  
 
 автор: Serge Gavrilov   (02.04.2007 в 12:38)   личное сообщение
 
 

если это весь код, то и не будет работать ..
app не создали, документ не создали или не открыли ...

  Ответить  
 
 автор: Егор   (02.04.2007 в 12:42)   личное сообщение
 
 

Private Sub butNewWord()
Dim app As Word.Application
Dim strDoc As String
Dim strDOT As String
Dim S As String
Dim i As String
On Error GoTo 999
i = Me.pole41.Value
Select Case i
Case "USD"
With Application.CurrentProject
strDOT = .Path & "\" & "USD\USD.dot"
strDoc = .Path & "\" & "USD\USD.doc"
End With
Case "UAH"
With Application.CurrentProject
strDOT = .Path & "\" & "UAH\UA.dot"
strDoc = .Path & "\" & "UAH\UA.doc"
End With
End Select

Set app = New Word.Application

app.Documents.Add strDOT
app.Visible = True

app.CommandBars("Menu Bar").Enabled = False
app.CommandBars("Standard").Enabled = False
app.CommandBars("Formatting").Enabled = False
app.CommandBars("Visual Basic").Enabled = False
app.CommandBars("WordArt").Enabled = False
app.CommandBars("AutoText").Enabled = False
app.CommandBars("Database").Enabled = False
app.CommandBars("Web Tools").Enabled = False
app.CommandBars("Web").Enabled = False
app.CommandBars("Picture").Enabled = False
app.CommandBars("Frames").Enabled = False
app.CommandBars("Reviewing").Enabled = False
app.CommandBars("Drawing").Enabled = False
app.CommandBars("Mail Merge").Enabled = False
app.CommandBars("Word Count").Enabled = False
app.CommandBars("Outlining").Enabled = False
app.CommandBars("Tables and Borders").Enabled = False
app.CommandBars("Forms").Enabled = False
app.CommandBars("E-mail").Enabled = False
app.CommandBars("Control Toolbox").Enabled = False
app.CommandBars("Function Key Display").Enabled = False

With app.ActiveDocument
On Error Resume Next
.Bookmarks.Item("versiya").Range.Text = Me.pole64
.Bookmarks.Item("nomer").Range.Text = Me.pole33
.Bookmarks.Item("famname").Range.Text = Me.pole7 & " " & Me.pole9 & " " & Me.pole11
.Bookmarks.Item("datazakl").Range.Text = Me.pole35
.Bookmarks.Item("datar").Range.Text = Me.pole15
.Bookmarks.Item("mesto").Range.Text = Me.pole13
.Bookmarks.Item("sernompas").Range.Text = Me.pole17
.Bookmarks.Item("datapas").Range.Text = Me.pole19
.Bookmarks.Item("vidanpas").Range.Text = Me.pole21
.Bookmarks.Item("ident").Range.Text = Me.pole5
.Bookmarks.Item("nomkr").Range.Text = Me.pole23
.Bookmarks.Item("datazkr").Range.Text = Me.pole25
.Bookmarks.Item("sum").Range.Text = Me.pole39
.Bookmarks.Item("tarif").Range.Text = Me.pole49
.Bookmarks.Item("premiya").Range.Text = Me.pole51
.Bookmarks.Item("granica").Range.Text = Me.pole53
.Bookmarks.Item("dataok").Range.Text = Me.pole37
Err.Clear
.Protect wdAllowOnlyReading, False, "dsitk,feirb", False, True
.SaveAs strDoc
makros
'***************************
.PrintOut True, False, wdPrintAllDocument, "", , , wdPrintDocumentContent, 1, "", wdPrintAllPages, False, True, , True, 0, 0, 0, 0
On Error GoTo 999
End With
Exit Sub
999:

MsgBox Err.Description
Err.Clear
Set app = Nothing
app.Quit
End Sub

  Ответить  
 
 автор: osmor   (02.04.2007 в 12:43)   личное сообщение
 
 

Я могу конечно ошибаться, но кажется вы не тот параметр сделали TRUE
У вас выделен ActivePrinterMacGX (14-й по счету), а для 2-х сторонней печати надо ManualDuplexPrint (15-й) он у вас как раз 0

  Ответить  
 
 автор: Bellerofont   (02.04.2007 в 13:26)   личное сообщение
 
 

Считать не стал, скопировал и подставил в Immediate window для ActiveDocument, вроде правильно - ManualDuplexPrint ...

  Ответить  
 
 автор: Егор   (02.04.2007 в 13:28)   личное сообщение
 
 

всетаки верно- он 14

  Ответить  
 
 автор: osmor   (02.04.2007 в 14:49)   личное сообщение
 
 

Вот из HELP:
expression.PrintOut(Background, Append, Range, OutputFileName, From, To, Item, Copies, Pages, PageType, PrintToFile, Collate, FileName, ActivePrinterMacGX, ManualDuplexPrint, PrintZoomColumn, PrintZoomRow, PrintZoomPaperWidth, PrintZoomPaperHeight)
1- Background
2 - Append
3- Range
4- OutputFileName
5- From
6- To
7- Item
8- Copies
9- Pages
10- PageType
11- PrintToFile
12- Collate
13- FileName
14- ActivePrinterMacGX
15 - ManualDuplexPrint
16 - PrintZoomColumn
17- PrintZoomRow
18- PrintZoomPaperWidth
19- PrintZoomPaperHeight

  Ответить  
 
 автор: Serge Gavrilov   (02.04.2007 в 15:35)   личное сообщение
 
 

FileName не используется для Document

FileName   Optional Variant. The path and file name of the document to be printed.
If this argument is omitted, Word prints the active document. 
(Available only with the Application object.)

  Ответить  
 
 автор: osmor   (02.04.2007 в 15:41)   личное сообщение
 
 

увидел, понял...

  Ответить  
 
 автор: Bellerofont   (02.04.2007 в 13:32)   личное сообщение
 
 

А что со свойствами PrintOddPagesInAscendingOrder and PrintEvenPagesInAscendingOrder?


ManualDuplexPrint   Optional Variant. 
True to print a two-sided document on a printer without a duplex printing kit.
If this argument is True, the PrintBackground and PrintReverse properties are ignored.
Use the PrintOddPagesInAscendingOrder and PrintEvenPagesInAscendingOrder properties to control the output during manual duplex printing.
This argument may not be available to you, depending on the language support (U.S. English, for example)
 that you’ve selected or installed.

  Ответить  
 
 автор: Bellerofont   (02.04.2007 в 13:34)   личное сообщение
 
 

извините, не разбил вручную цитату из Help на строки

  Ответить  
 
 автор: Егор   (02.04.2007 в 14:10)   личное сообщение
 
 

Не получилось, кто-нибудь пробовал делать такую печать?
Я уже в Wordе создавал макрос->выполнял действия, потом этот код всьавлял к себе и хоть бы хны, все по барабану.

  Ответить  
 
 автор: Serge Gavrilov   (02.04.2007 в 14:23)   личное сообщение
 
 

А что вы пробовали?

  Ответить  
 
 автор: Егор   (02.04.2007 в 14:32)   личное сообщение
 
 

Private Sub butNewWord1()
Dim app As Word.Application
Dim strDOC As String
Dim strDOT As String
Dim s As String
Dim i As String
On Error GoTo 999

i = Me.pole41.Value
Select Case i
Case "USD"
With Application.CurrentProject
strDOT = .Path & "\" & "USD\USA.dot"
strDOC = .Path & "\" & "USD\USA.doc"
End With
Case "UAH"
With Application.CurrentProject
strDOT = .Path & "\" & "UAH\UAH.dot"
strDOC = .Path & "\" & "UAH\UAH.doc"
End With
End Select

Set app = New Word.Application
app.Documents.Add strDOT
app.Visible = True '

app.CommandBars("Menu Bar").Enabled = True
app.CommandBars("Standard").Enabled = True

With app.ActiveDocument
On Error Resume Next
.Bookmarks.Item("versiya").Range.Text = Me.pole64
.Bookmarks.Item("nomer").Range.Text = Me.pole33
.Bookmarks.Item("famname").Range.Text = Me.pole7 & " " & Me.pole9 & " " & Me.pole11
.Bookmarks.Item("datazakl").Range.Text = Me.pole35
.Bookmarks.Item("datar").Range.Text = Me.pole15
.Bookmarks.Item("mesto").Range.Text = Me.pole13
.Bookmarks.Item("sernompas").Range.Text = Me.pole17
.Bookmarks.Item("datapas").Range.Text = Me.pole19
.Bookmarks.Item("vidanpas").Range.Text = Me.pole21
.Bookmarks.Item("ident").Range.Text = Me.pole5
.Bookmarks.Item("nomkr").Range.Text = Me.pole23
.Bookmarks.Item("datazkr").Range.Text = Me.pole25
.Bookmarks.Item("sum").Range.Text = Me.pole39
.Bookmarks.Item("tarif").Range.Text = Me.pole49
.Bookmarks.Item("premiya").Range.Text = Me.pole51
.Bookmarks.Item("granica").Range.Text = Me.pole53
.Bookmarks.Item("dataok").Range.Text = Me.pole37
Err.Clear
.Protect wdAllowOnlyReading, False, "dsitk,feirb", False, True
.SaveAs strDOC

Options.PrintOddPagesInAscendingOrder = True
Options.PrintEvenPagesInAscendingOrder = False
.PrintOut True, False, wdPrintAllDocument, "", , , wdPrintDocumentContent, 1, "", wdPrintAllPages, False, True, , False, 0, 0, 0, 0

On Error GoTo 999
End With
Exit Sub
999:
MsgBox Err.Description
Err.Clear
Set app = Nothing
app.Quit
End SubПо идее это должна быть 2-хсторонняя печать, но не пашет

  Ответить  
 
 автор: Serge Gavrilov   (02.04.2007 в 15:50)   личное сообщение
 
 

Вы запускали Word из Access? Тогда вы неправильно использовали Options. Откуда Access VBA должен понять, что речь идет о Word.Options? Надо так:

app.Options.PrintOddPagesInAscendingOrder = True
app.Options.PrintEvenPagesInAscendingOrder = False

  Ответить  
 
 автор: Егор   (04.04.2007 в 12:13)   личное сообщение
 
 

спасибо но что-то не работает, как еще можно обойти єто?
можно ли как-то вівести диалоговое окно печати?

  Ответить  
 
 автор: Serge Gavrilov   (04.04.2007 в 12:21)   личное сообщение
 
 

у меня работает.
А открыть диалог печати можно так:

Const wdDialogFilePrint = 88 (&H58)
app.dialogs(wdDialogFilePrint).Display

  Ответить  
 
 автор: Егор   (04.04.2007 в 13:09)   личное сообщение
 
 

попробую, спасибо за ответ.
Не могли бы Вы показать ваш код где происходит 2-хсторонняя печать?

  Ответить  
 
 автор: Егор   (06.04.2007 в 12:53)   личное сообщение
 
 

знает кто-нибудь? Помогите- срочно надо!!!

  Ответить  
 
 автор: Егор   (11.04.2007 в 13:16)   личное сообщение
 
 

Ну хоть кто-то знает?

  Ответить  
 
 автор: Serge Gavrilov   (11.04.2007 в 15:18)   личное сообщение
 
 

Что именно кто-то должен знать? Почему у вас не получается?
Я не знаю.
А как надо делать вам уже сказано.
Простой пример

Sub TestDuplexPrint
    Dim oDoc As Word.Document
    Set oDoc = GetObject("c:\DuplexPrint.doc")
    With oDoc
        .Application.Options.PrintOddPagesInAscendingOrder = True
        .Application.Options.PrintEvenPagesInAscendingOrder = False
        .PrintOut ManualDuplexPrint:=True
        .Close
    End With
    Set oDoc = Nothing
End Sub

Проверил работу из Access, установив ссылку на Word. Все работает как надо.
Принтер в сетке, использую hp LaserJet 1010 Series Driver.
Не предствляю, чем еще можно вам помочь?
Вы проверяли на простом примере? Из диалога работает?

  Ответить  
 
 автор: Егор   (12.04.2007 в 13:06)   личное сообщение
 
 

Проверил: с помощью диалога делает двухстороннююю печать(HP LaserJet 1320n).
Установил в References ссылку на Microsoft Word 11.0 Object Library, и все равно не пашет(даже Ваш пример).
В чем может быть проблема?
Выложите работающий пример, пожалуйста!

  Ответить  
 
 автор: Serge Gavrilov   (12.04.2007 в 14:08)   личное сообщение
 
 

Я вам привел работающий у меня пример. Больше в mdb ничего нет. Запускал из окна отладки.

  Ответить  
 
 автор: Егор   (12.04.2007 в 14:13)   личное сообщение
 
 

Тогда в чем может быть проблема?

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList