Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 11 su 11
  1. #11
    Utente di HTML.it L'avatar di Rickycast
    Registrato dal
    Apr 2007
    residenza
    CHIERI (TO)
    Messaggi
    263
    Mi accorgo solo adesso che nella Stringa
    codice:
    oAccess.DoCmd.OpenReport(ReportName:="Catalog", View:=acViewPreview)

    "Catalog" è il nome del Report e che ovviamente prima di arrivare lì bisogna almeno avere aperto il DB.
    In ogni caso, anche scrivendo solo:
    codice:
    
    Imports Access = Microsoft.Office.Interop.Access.Dao
    
    Public Class Form1
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    
            Dim oAccess As Microsoft.Office.Interop.Access.Application
            oAccess = New Microsoft.Office.Interop.Access.Application
    
        End Sub
    End Class

    l'errore che ottengo è sempre lo stesso descritto nella precedente risposta

  2. #12
    Utente di HTML.it L'avatar di Rickycast
    Registrato dal
    Apr 2007
    residenza
    CHIERI (TO)
    Messaggi
    263
    Mi accorgo solo adesso che nella Stringa
    codice:
    oAccess.DoCmd.OpenReport(ReportName:="Catalog", View:=acViewPreview)

    "Catalog" è il nome del Report e che ovviamente prima di arrivare lì bisogna almeno avere aperto il DB.
    In ogni caso, anche scrivendo solo:
    codice:
    
    Imports Access = Microsoft.Office.Interop.Access.Dao
    
    Public Class Form1
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    
            Dim oAccess As Microsoft.Office.Interop.Access.Application
            oAccess = New Microsoft.Office.Interop.Access.Application
    
        End Sub
    End Class

    l'errore che ottengo è sempre lo stesso descritto nella precedente risposta

  3. #13
    Utente di HTML.it L'avatar di Rickycast
    Registrato dal
    Apr 2007
    residenza
    CHIERI (TO)
    Messaggi
    263
    Ultima informazione.
    Ho copiato tutto quanto contenuto in "HOW TO: Automatizzare Microsoft Access da VB.NEt" seguendo passo passo le istruzioni. Eseguendo il Debug ottengo questo errore:

    Errore BC31541 Il riferimento alla classe 'ApplicationClass' non è consentito se il relativo assembly è configurato in modo da incorporare i tipi di interoperabilità. WindowsApplication3 C:\Users\mionome\Documents\Visual Studio 2015\Projects\WindowsApplication3\WindowsApplicati on3\Form1.vb Riga 256 Attiva

    Lo stesso alle righe 303 e 389 e comunque sempe in corrispondenza alla stringa "oAccess = New Access.ApplicationClass()"

  4. #14
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Scusa, ma quella stringa:

    Imports Access = Microsoft.Office.Interop.Access.Dao

    cosa sarebbe?

    Scusa, ma perché non ti copi il codice dall'articolo Microsoft che ti ho linkato?

  5. #15
    Utente di HTML.it L'avatar di Rickycast
    Registrato dal
    Apr 2007
    residenza
    CHIERI (TO)
    Messaggi
    263

    RISOLTO

    Ho risolto il mio problema, che era originato (credo) da alcuni Riferimenti inesistenti. Aprendo la lista dei riferimenti ho visto che alcuni erano contrassegnati in giallo e dichiarati come inesistenti; li ho rimossi e il Progetto ha subito funzionato. Ovviamente il Riferimento ad Access 12.0 è indispensabile ma non ho avuto problemi con la versione di .NET Framework che nel mio caso è la 4.5.2
    La sola cosa che ho dovuto aggiungere è stata la verifica dell'esistenza o meno del File stampato che, se già esistente, generava un errore e un minimo di tempo di attesa per evitare che la Routine terminasse prima di avere chiuso il DB,
    Posto lo Script caso mai a qualcuno potesse servire.

    codice:
    Imports Access = Microsoft.Office.Interop.Access.Application
    
    Public Class StampaPDF
    
     Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            On Error GoTo errore_Button1_Click
    
            Dim strUserName As String
            Dim TestPDF As String
    
            strUserName = Environ("UserName")
            TestPDF = "C:\Users\" & strUserName & "\Desktop\TestPDF.pdf"
    
            If File.Exists(TestPDF) Then
                MsgBox("Il File esiste già. Eliminarlo o rinominarlo prima di aprirne un secondo")
                Exit Sub
            Else
                Dim oAccess As Microsoft.Office.Interop.Access.Application
                oAccess = New Microsoft.Office.Interop.Access.Application
                oAccess.OpenCurrentDatabase(filepath:="S:\ArcSisVBNet\Access2007\ArcSisVBNetServer.accdb", Exclusive:=False)
                oAccess.DoCmd.RunMacro("Macro1")
                Thread.Sleep(500)
                oAccess.Application.CloseCurrentDatabase()
                Thread.Sleep(500)
                oAccess.Quit()
            End If
    
            Exit Sub
    errore_Button1_Click:
            MsgBox("Errore nella stampa dei Report" & Err.Number & " - " & Err.Description)
        End Sub
    
    End Class

    Lo Script da utilizzare nel DB di Access 2007 è il seguente:

    codice:
    Public Function Stampa()
    
        StampaPDF
    
    End Function
    
    Public Sub StampaPDF()
    
        strUserName = Environ("UserName")
    
        DoCmd.OutputTo acOutputReport, "GiacenzaOdierna", acFormatPDF, "C:\users\" & strUserName & "\Desktop\TestPDF.pdf", True
    
    End Sub

    Quindi creare la Macro1 che deve "Eseguire Codice" richiamando la Function "Stampa()"
    Se qualcuno ha osservazioni o suggerimenti, sono ovviamente i benvenuti.

  6. #16
    sto cercando di risolvere un problema di visualizzazione: scusate il post e per favore ignoratelo
    grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.