tamaeril ha scritto:
...
sto riscontrando alcuni problem nel creare del codice che mi consenta da form di stampare automaticamente un numero di copie N (valore preso da una text box) di un report.
...
Private Sub Print_Click()
Dim stDocName As String
stDocName = "Etichette"
If [controllo se report è vuoto) then
MsBox "Errore bla bla bla"
Else
DoCmd.OpenReport stDocName, acViewPreview, , , acHidden
DoCmd.SelectObject acReport, stDocName
DoCmd.PrintOut , , , [Num_copies].Value
DoCmd.Close acReport, stDocName, acSaveNo
End if
Num_copies.Value = 1
End Sub
Nel momento in cui Num_copies.value = 1 tutto perfetto, se il numero cambia restituisce error 13.
...
Quale ennesima banalità non ho considerato?
EDIT: il debugger mi segnala il .printout!
L'errore 13 si verifica quando il tipo di informazione non è compatibile con quello che il codice si aspetta.
In questa riga
DoCmd.PrintOut , , , [Num_copies].Value
[Num_copies].Value è il quarto parametro che per
DoCmd.PrintOut è PrintQuality. Questo parametro può assumere valori da 0 a 3 (o relative costanti). Quindi, scritto così, stai solo incidendo sulla qualità di stampa, non sul numero delle copie da stampare. Il parametro Copies è il quinto, quindi devi aggiungere una virgola, oppure indicare i parametri con il nome e non per posizione
DoCmd.PrintOut , , , , [Num_copies].Value
oppure
DoCmd.PrintOut Copies:=[Num_copies].Value