2017-12-06 5 views
-1

나는 similar question이 내 것으로 보았지만 거기에 제공된 해결 방법은 나를 위해 가능한 방법이 아닙니다. 최대 1000 개 이상 인쇄해야합니다. DoCmd.PrintOut는 하나의 복사본 만 인쇄합니다

DoCmd.OpenReport Report, acViewReport 'Open report 
DoCmd.PrintOut , , , acHigh, copys' Print report 

(copys으로 내가 copys의 양을 지정한는.)

내가 뭘 잘못 했습니까?

보고서를 인쇄하는 다른 방법이 있습니까?

도움 주셔서 감사합니다.

완전한 코드 :

Private Sub cmd_openreport_Click() 

'Set Variables 
Dim Report 
Dim Etikette 
Dim Copyes As String 
Dim SQLString 
Dim SQLString2 


DoCmd.SetWarnings False 'Turns Off Warnings 

Etikette = comb_etiketten_auswahl 'Etikette Equals the    comb_etiketten_auswahl value 
Report = comb_etiketten_layout 'Report equals the value in the dropdown list 
Copyes = Forms!frm_Hauptmenu!comb_etiketten_auswahl.Column(1) 


'If The Etiketten Dropdown is empty message to client 
If Etikette <> "" Then 

'Do Nothing/Continue 

Else 
MsgBox "Bitte wählen Sie einen Datensatz aus" 
Exit Sub 

End If 


'If The Report Dropdown is empty message to client 
If Report <> "" Then 

'Do Nothing (because dropdown is mot empty) 

Else 
MsgBox "Bitte wählen Sie ein Etikettenlayout aus" 
Exit Sub 

End If 

MsgBox anzahl 
'If Amount of copies is less than 1 message to client 
If anzahl > 0 Then 


On Error GoTo Error_MayCauseAnError 
    DoCmd.OpenReport Report, acViewReport 'Open report 
    DoCmd.PrintOut , , , , Copyes 
    DoCmd.Close Report ' Close the Report 
+0

이유 해결 방법을 지정하십시오 당신을 위해 불가능합니다. 인쇄물의 양은 부적합합니다. = 2로 :: = –

+0

(https://msdn.microsoft.com/en-us/vba/excel-vba/articles/sheets-printout-method-excel) 'DoCMD.PrintOut 가입일이 [예]를 시도 3, 사본 :.. 3' –

+0

내 손 :(를 벗어 그런 :( – kint

답변

0

당신은 변형으로 copyes를 선언 했습니까?

PrintOut 설명서를 읽고 난 다음 발견 :

이름을 복사

필수/선택 옵션

데이터 형식 변형

설명 인쇄 매수. 이 인수를 공 i으로두면 기본값 (1)이 가정됩니다. https://msdn.microsoft.com/en-us/vba/access-vba/articles/docmd-printout-method-access

또한

는 값 대신에 단지 테스트를위한 변수를 사용해보십시오.

당신이 기능을 사용

는 기능 설명서를 읽기 위해이 함수 (또는 프로 시저) 기대 변수의 종류를 알고 정말 중요합니다. 이 경우이 함수는 Variant 변수 (이유를 모르겠 음)를 사용하면 Variant 개체를 제공해야합니다. 예를 들어 설명해 드리겠습니다.

음료 기계가 있습니다. 변종에 관한 돈에 대해 생각해 봅시다. papermetal. 음료 기계는 돈으로 paper 만받습니다. metal (동전)을 넣으려고하면 기기에서 오류가 발생합니다. 이 경우 음료 기계가 허용하는 특정 종류의 돈을 제공해야합니다.

이 설명을 통해보다 효과적으로 문제를 이해하고 사용중인 기능 또는 절차에 대한 문서를 읽는 데 도움이 될 수 있기를 바랍니다.

+0

예 copys는 변수입니다 같은 기능을 수행합니다 (예 : /vba/excel-vba/ articles/sheets-printout-method-excel) 난 그냥 12 입력하면 내 말은 – kint

+0

(변형 내가이 MSGBOX에 체크 된 모든 시간이 정확) ...'copys' 변수 유형은'Variant'입니까? –

+0

내 총 코드 – kint

0

"PrintOut"바로 다음에 "복사본"이있는 이유를 알지 못합니다. 원하는 수만큼 인쇄하는 것이 좋습니다.당신은 단순히 당신이 또한 단지

DoCmd.PrintOut Copies:=copys 'Print report 

당신은 그 기본값 그대로 acHigh를 작성하지 않아도 쓸 수 있어야한다, 또는

DoCmd.PrintOut , , , , copys 'Print report 

를 넣을 수 있습니다

+0

감사합니다. 죄송 합니다만 제 질문을 바로 잡아야합니다. 나는 당신에게 첫 번째 옵션을 사용했으나 ... 작동하지 않는 것이 있습니다 ... 오직 하나의 복사본 만 인쇄합니다 ... – kint

+0

당신이 선언 한 곳을 볼 수 있도록 좀 더 많은 코드를 보여 주어야한다고 생각합니다. copys 및 해당 값 업데이트 – Marcucciboy2

+0

방금 ​​코드의 나머지 부분을 추가했습니다 – kint