Buongiorno a tutti,
Volevo avere un aiuto su un problema che mi si è presentato con il passaggio a W10. Non è possibile installare il Viewer di snapshot, per tanto in azienda mi ritrovo con dei database access creati da un utente che non lavora più per noi, che generano dei Report in questo formato.
Premesso che sono un utente base di access con conoscenze minime, sono riuscito a trovare il form di generazione del report SNP. Lo riporto qui:
Option Compare Database
Private Sub cliente_AfterUpdate()
Me.marchio.Requery
Me.stabilimento.Requery
End Sub
Private Sub customer_id_AfterUpdate()
End Sub
Private Sub factory_id_BeforeUpdate(Cancel As Integer)
End Sub
Private Sub Form_Open(Cancel As Integer)
DoCmd.Restore
DoCmd.GoToRecord acActiveDataObject, , acLast
End Sub
Private Sub report_Click()
On Error GoTo Err_report_Click
Dim stDocName As String
stDocName = "nc_tag_report_new"
Forms!nc_entry_frm_new.Refresh
DoCmd.OpenReport stDocName, acPreview
Exit_report_Click:
Exit Sub
Err_report_Click:
MsgBox Err.description
Resume Exit_report_Click
End Sub
Private Sub send_cmd_Click()
On Error GoTo Err_send_cmd_Click
Dim stMailTxt(4), stMailTitleTxt, stDocName, stDocFileName, stDocFilePath, stToList, stCcList As String
Dim rstRecipients, rstExtraRecipients As Object
Forms!nc_entry_frm_new.Refresh
If IsNull(Forms!nc_entry_frm_new.phase_id) Then Exit Sub
Set rstRecipients = CurrentDb.OpenRecordset("SELECT * FROM recipient_list_tbl WHERE factory_id=" & Me.factory_id & "AND phase_id=" & Me.phase_id)
If rstRecipients.BOF Then
MsgBox "Stabilimento o fase mancante o non riconosciuta!"
rstRecipients.Close
Exit Sub
End If
Set rstExtraRecipients = CurrentDb.OpenRecordset("SELECT * FROM extra_recipient_list_tbl")
If rstExtraRecipients.BOF Then
MsgBox "Destinatati extra non trovati"
rstExtraRecipients.Close
End If
If Forms!nc_entry_frm_new.factory_id = 1 Then
'Imbersago
stMailTitleTxt = "IMBERSAGO - Verbale interno nr. " & Forms!nc_entry_frm_new.nc_id & " del " & _
Forms!nc_entry_frm_new.nc_date & ", articolo " & Forms!nc_entry_frm_new.product_pn & " " & _
Forms!nc_entry_frm_new.technical_reference
stDocFilePath = "S:\Qualità\Non conformita'\Interne\"
stDocFileName = "IMBERSAGO_" & Format(Forms!nc_entry_frm_new.nc_id, "000000") & "_rapporto di non conformita' interno"
ElseIf Forms!nc_entry_frm_new.factory_id = 2 Then
'Verderio
stMailTitleTxt = "VERDERIO - Verbale interno nr. " & Forms!nc_entry_frm_new.nc_id & " del " & _
Forms!nc_entry_frm_new.nc_date & ", articolo " & Forms!nc_entry_frm_new.product_pn & " " & _
Forms!nc_entry_frm_new.technical_reference
stDocFilePath = "S:\Qualità\Non conformita'\Interne\"
stDocFileName = "VERDERIO_" & Format(Forms!nc_entry_frm_new.nc_id, "000000") & "_rapporto di non conformita' interno"
ElseIf Forms!nc_entry_frm_new.factory_id = 3 Then
'Bottanuco
stMailTitleTxt = "BOTTANUCO - Verbale interno nr. " & Forms!nc_entry_frm_new.nc_id & " del " & _
Forms!nc_entry_frm_new.nc_date & ", articolo " & Forms!nc_entry_frm_new.product_pn & " " & _
Forms!nc_entry_frm_new.technical_reference
stDocFilePath = "S:\Qualità\Non conformita'\Interne\"
stDocFileName = "BOTTANUCO_" & Format(Forms!nc_entry_frm_new.nc_id, "000000") & "_rapporto di non conformita' interno"
End If
stMailTxt(0) = "Nella cartella: " & stDocFilePath
stMailTxt(1) = Chr(13) & Chr(10) & "leggere il file: " & stDocFileName & Chr(13) & Chr(10)
stDocName = "nc_tag_report_new"
'DoCmd.OutputTo acOutputReport, stDocName, acFormatSNP, stDocFilePath & stDocFileName & ".snp", True
DelTempFile (stDocName & ".snp") 'Cancella file temporaneo per evitare errore Lotus Notes in invio
[color=#FF0000] Select Case Me.decision
Case 3 'Distruzione
stMailTitleTxt = "VERBALE DI DISTRUZIONE - " & stMailTitleTxt
DoCmd.SendObject acSendReport, stDocName, "Snapshot Format", rstExtraRecipients!extra_recipient_list_to & rstRecipients!recipient_list_to, rstRecipients!recipient_list_cc, , _[/color]
stMailTitleTxt, stMailTxt(0) & stMailTxt(1), True
Case Else
DoCmd.SendObject acSendReport, stDocName, "Snapshot Format", rstRecipients!recipient_list_to, rstRecipients!recipient_list_cc, , _
stMailTitleTxt, stMailTxt(0) & stMailTxt(1) & stMailTxt(2), True
End Select
rstRecipients.Close
rstExtraRecipients.Close
Exit_send_cmd_Click:
Exit Sub
Err_send_cmd_Click:
MsgBox Err.description
Resume Exit_send_cmd_Click
End Sub
Sub DelTempFile(stFileName As String)
Dim fs As Object
Dim stPath As String
Set fs = CreateObject("Scripting.FileSystemObject")
stPath = Environ("TEMP") & "\" 'Cerca la variabile d'ambiente
On Error Resume Next
fs.DeleteFile stPath & stFileName
End Sub
Private Sub label_cmd_Click()
On Error GoTo Err_label_cmd_Click
Dim stDocName, stCopies As String
Me.Refresh
stDocName = "nc_label_report_new"
stCopies = InputBox("Indicare il numero di etichette da stampare:", _
Title:="Informazioni utente", XPos:=2000, YPos:=2000)
DoCmd.OpenReport stDocName, acPreview
DoCmd.PrintOut acSelection, , , , CInt(stCopies)
DoCmd.Close
Exit_label_cmd_Click:
Exit Sub
Err_label_cmd_Click:
MsgBox Err.description
Resume Exit_label_cmd_Click
End Sub
Private Sub find_record_cmd_Click()
On Error GoTo Err_find_record_cmd_Click
Me.nc_id.SetFocus
DoCmd.FindRecord InputBox("Indicare un nr. di rapporto:", "Ricerca")
Exit_find_record_cmd_Click:
Exit Sub
Err_find_record_cmd_Click:
MsgBox Err.description
Resume Exit_find_record_cmd_Click
End Sub
Private Sub Form_Close()
Forms![navigation_panel_frm].Requery
If Not IsNull(Me.nc_id) Then DoCmd.FindRecord Me.nc_id, , True, , True
End Sub
Private Sub close_cmd_Click()
On Error GoTo Err_close_cmd_Click
DoCmd.Close
Exit_close_cmd_Click:
Exit Sub
Err_close_cmd_Click:
MsgBox Err.description
Resume Exit_close_cmd_Click
End Sub
Private Sub print_cmd_Click()
On Error GoTo Err_print_cmd_Click
Dim stDocName As String
Forms!nc_entry_frm_new.Refresh
stDocName = "nc_tag_report_new"
DoCmd.OpenReport stDocName, acNormal
Exit_print_cmd_Click:
Exit Sub
Err_print_cmd_Click:
MsgBox Err.description
Resume Exit_print_cmd_Click
End Sub
Ho evidenziato in rosso la stringa che penso si riferisca alla generazione del report. Non so se è sufficiente sostituire l'output format o bisogna riscrivere interamente parti di codice. A me interessa che il comando invia presente nella tabella che genera questi report, li generi direttamente in Word o PDF. Attualmente gli utenti usano un software locale per la conversione ma non è comodissimo.
Qualche anima pia potrebbe darmi una dritta?