Intanto Buona Pasqua (gli ospiti se ne sono andati, ...).
Lo so che VB6 non è più attuale, ma non ho ancora avuto il coraggio di affrontare VB.net: spero che ci sia ancora qualcuno ad aiutarmi.
Ho scritto una piccola procedura per stampare un Fie.xls in .pdf.
Funziona tutto lanciando il file .exe fino a Windows 7. In Windows 10 non funziona.
Da quanto ho potuto verificare, credo che l'errore dipenda dalla chiamata della connessione: se metto un apice davanti alla chiamata e alla procedura coinvolta, l'errore non si verifica.
Questa è la procedura che da errore:

codice:
Sub Stampa()
On Error GoTo Errore_Stampa
 
    Dim msAccess As Access.Application
    Dim rcrdst As ADODB.Recordset
    Dim sSQL As String
    Dim blRet As Boolean, NomeReport As String, NomeFilePDF As String
 
    Set msAccess = New Access.Application
    msAccess.OpenCurrentDatabase (MainDir & "PrgOrdNsf\DB\Conversioni.mdb")
 
    If MsgBox("Stampare anche l'Ordine per il Cliente?", vbYesNo) = vbYes Then
        NomeReport = "Ordine_XLS_per_Cli"
        NomeFilePDF = Cliente & "_Ord_Nsf_" & DataTxt
        blRet = ConvertReportToPDF(NomeReport, vbNullString, MainDir & "\OrdiniPerClienti\" & NomeFilePDF & ".pdf", False, True, 150, "", "", 0, 0, 0)
    End If
        NomeReport = "Ordine_XLS"
        NomeFilePDF = "OrdNsfCli_" & Cliente & "_" & DataTxt
        blRet = ConvertReportToPDF(NomeReport, vbNullString, MainDir & "\ArchivioOrdini\" & NomeFilePDF & ".pdf", False, True, 150, "", "", 0, 0, 0)
   
    msAccess.CloseCurrentDatabase
    Set msAccess = Nothing
 
    Exit Sub
Errore_Stampa:
    MsgBox "C'è un errore nella stampa dei File .pdf"
End Sub

È però possibile che siano anche le stringhe che eseguono la conversione a generare l'errore e non ho avuto modo di verificarlo
So però che se faccio eseguire il codice con queste variazioni, rilevo l'errore:

codice:
Sub Stampa()
On Error GoTo Errore_Stampa
 
    Dim msAccess As Access.Application
    Dim rcrdst As ADODB.Recordset
    Dim sSQL As String
    Dim blRet As Boolean, NomeReport As String, NomeFilePDF As String
 
    Set msAccess = New Access.Application
    msAccess.OpenCurrentDatabase (MainDir & "PrgOrdNsf\DB\Conversioni.mdb")
 
    If MsgBox("Stampare anche l'Ordine per il Cliente?", vbYesNo) = vbYes Then
        NomeReport = "Ordine_XLS_per_Cli"
        NomeFilePDF = Cliente & "_Ord_Nsf_" & DataTxt
'        blRet = ConvertReportToPDF(NomeReport, vbNullString, MainDir & "\OrdiniPerClienti\" & NomeFilePDF & ".pdf", False, True, 150, "", "", 0, 0, 0)
    End If
        NomeReport = "Ordine_XLS"
        NomeFilePDF = "OrdNsfCli_" & Cliente & "_" & DataTxt
'        blRet = ConvertReportToPDF(NomeReport, vbNullString, MainDir & "\ArchivioOrdini\" & NomeFilePDF & ".pdf", False, True, 150, "", "", 0, 0, 0)
   
    msAccess.CloseCurrentDatabase
    Set msAccess = Nothing
 
    Exit Sub
Errore_Stampa:
    MsgBox "C'è un errore nella stampa dei File .pdf"
End SubErrore_Stampa:
    MsgBox "C'è un errore nella stampa dei File .pdf"
End Sub
Come si può vedere, le due stringhe che generano la stampa .pdf son inibite, mentre quelle della connessione no.
Quindi l'errore dovrebbe essere proprio lì.
Spero che qualcuno sappia indicarmi una connessione valida per tutti i S.O. o che, al limite mi spieghi come fare una procedura condizionale che verifichi quale S.O. si sta utilizzando e di conseguenza quale procedura adottare.
Grazie.