unire file tiff con access 2013 64bit

Anonimo
2016-01-10T16:10:53+00:00

Buongiorno a tutti eccoomi qui per chiedere un consiglio di come procedere per un problema che si è verificato a causa del passaggio daun office 10 a 32bit ad un office 13 64bit,  il codice che ho inserito sotto mi unisce tanti tiff in uno solo senza probelmi nel 32bit, ma si blocca  col 64bit , l'errore come si può vedere è nel componente modi, dalle mie ricerche risulta che non esiste una versione per 64 bit, quindi anche installando la 32bit logicamente non funziona, ora vi chiedo che strada posso intraprendere per superare questo ostacolo, ne ho provate diverse ma sono bloccato.

ringrazio in anticipo chiunque sappia darmi qualche dritta sull'argomento..

saluti

Tanino

Public Sub MergeTiffImages()

    Dim TIFPath As String

    Dim Tiffin   As String

    Dim TIFSource As Object 'MODI.Document

    Dim TIFDest   As Object 'MODI.Document

    Dim TIFImage  As Object 'MODI.Image

     Dim strFiletiff As String

Set TIFSource = CreateObject("MODI.Document")  <-----------------------ERRORE

    Set TIFDest = CreateObject("MODI.Document")

    Set TIFImage = CreateObject("MODI.Document")

    TIFDest.Create

    Dim filename As String

    strFiletiff = "d:\archivio2" & [Forms]![salva_con_nome2]![Testo1] & ".tiff" & ""

       filename = [Forms]![salva_con_nome2]![Testo1] & ".tiff"

    TIFPath = "d:\archivio2\tiffs"   '<--- MODIFICARE"

    Tiffin = Dir(TIFPath & "*.TIFF")

    If Len(Tiffin) Then

    Do While Len(Tiffin)

      TIFSource.Create TIFPath & Tiffin

      For Each TIFImage In TIFSource.Images

        TIFDest.Images.Add TIFImage, Nothing

        Debug.Print Tiffin

        With TIFImage

          Debug.Print "TIFImage:"; .PixelWidth; "x"; .PixelHeight

        End With

        With TIFDest.Images

          With .item(.Count - 1)

            Debug.Print "TIFDest :"; .PixelWidth; "x"; .PixelHeight

          End With

        End With

        Debug.Print

      Next TIFImage

      TIFSource.Close

      Tiffin = Dir()

    Loop

    If TIFDest.Images.Count Then

      TIFDest.SaveAs "d:\archivio2" & filename & "" '

    End If

    Else

      MsgBox "Nessun file TIFF nella cartella " & TIFPath _

           , vbOKOnly Or vbExclamation _

           , "MergeTiff"

    End If

    Set TIFImage = Nothing

    Set TIFSource = Nothing

    Set TIFDest = Nothing

    DoCmd.RunSQL "insert into scantemp2 (immagine) values ('" & strFiletiff & "')"

End Sub

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2016-01-14T13:12:51+00:00

ciao Tanino,

visto che disponi di adobe Acrobat.

ho eseguito questo test giusto per provare...

maschera con command button cmdFirstFile e textBox txtFirstFile che permette di selezionare il primo file Tiff e visualizzarlo nella textbox.

altro command button cmdRestOfFiles che permette di selezionare gli altri tiff da accorpare al primo.

listbox lstRestOfFiles che permette di mostrare il file Tiff da accorpare al primo popolare in seguito all'evento click.

evento click per la scelta del primo file:

Private Sub cmdFirstFile_Click()

Me.txtFirstFile = cmdFileDialog(0)

End Sub

evento click per la scelta di tutti gli altri files:

Private Sub cmdRestOfFiles_Click()

Dim strFiles As String

Dim aFiles() As String

strFiles = cmdFileDialog(-1)

Me.lstRestOfFiles.RowSource = strFiles

aFiles = Split(strFiles, ";")

mergePDFfiles2 Me.txtFirstFile, aFiles()

End Sub

modulo standard che genera i pdf da ogni singolo tiff file e lo accopa in un unico file in PDF: Personalizza il path in cui vai a salvare i files i pdf generati  e quello ed il nome del file che contiene tutti i pdf accorpati.

dopo avere scelto gli altri files la routine mostra il file PDF JoinedTiff2.pdf con tutte le immagini accorpate.

Testato anche con A2010 64 bit tutto regolare.

Facci sapere.

ciao, Sandro.

Option Compare Database

Option Explicit

Private Const pdfJoinedPath As String = "C:\combine\pdf\JoinedTiff2.pdf"

Private Const pdfCovertedPath As String = "C:\combine\pdf"

Sub mergePDFfiles2(ByVal strFirstFile As String, _

                   ByRef strArray() As String)

On Error GoTo errorHanlder

    Dim i             As Integer

    Dim firstFile     As Object 'Acrobat.CAcroPDDoc

    Dim nFiles        As Object 'Acrobat.CAcroPDDoc

    Dim pdfFile       As String

    Dim numPages As Integer

    Set firstFile = CreateObject("AcroExch.PDDoc")

    Set nFiles = CreateObject("AcroExch.PDDoc")

    pdfFile = Tif2PDF(strFirstFile)

    DoEvents

    firstFile.Open pdfFile

    For i = 0 To UBound(strArray())

        pdfFile = Tif2PDF(strArray(i))

        nFiles.Open (pdfFile)

        numPages = firstFile.GetNumPages()

         firstFile.InsertPages numPages - 1, nFiles, _

                                      0, nFiles.GetNumPages(), True

          nFiles.Close

     Next

    firstFile.Save 1, pdfJoinedPath 'PDSaveFull

    firstFile.Close

        Application.FollowHyperlink pdfJoinedPath

ext_errorLoadAccountHandler:

    Set firstFile = Nothing

    Set nFiles = Nothing

    Exit Sub

errorHanlder:

   With Err

        MsgBox "ERR#" & .Number _

             & vbNewLine & .Description _

             , vbOKOnly Or vbCritical

      End With

      Resume ext_errorLoadAccountHandler

End Sub

Public Function cmdFileDialog(ByVal blnMultiselected As Boolean) As String

   Dim fDialog As Object

   Dim varFile As Variant

   Dim i       As Integer

    Set fDialog = Application.FileDialog(3)

    With fDialog

        .AllowMultiSelect = blnMultiselected

       .Title = "Select One or More Files"

       .Filters.Clear

       .Filters.Add "modelli di word", "*.tif"

      .InitialFileName = CurrentProject.Path & ""

       If .Show = True Then

        For i = 1 To .SelectedItems.Count

            varFile = varFile & ";" & .SelectedItems(i)

        Next

            cmdFileDialog = Mid$(CStr(varFile), 2)

       Else

          cmdFileDialog = vbNullString

       End If

    End With

End Function

Public Function Tif2PDF(ByVal strFirstFile As String) As String

Dim AcApp     As Object 'Acrobat.AcroApp

Dim TiffDoc   As Object 'Acrobat.AcroAVDoc

Dim PdfDoc    As Object 'Acrobat.AcroPDDoc

Dim justFile  As String

    Set AcApp = CreateObject("AcroExch.App")

    Set TiffDoc = CreateObject("AcroExch.AVDoc")

    Call TiffDoc.Open(strFirstFile, "")

    Set TiffDoc = AcApp.GetActiveDoc

    Set PdfDoc = TiffDoc.GetPDDoc

    justFile = justFileName(strFirstFile)

    PdfDoc.Save &H5, justFile

    PdfDoc.Close

    TiffDoc.Close True

    AcApp.Exit

    Tif2PDF = justFile

    Set PdfDoc = Nothing

    Set TiffDoc = Nothing

    Set AcApp = Nothing

End Function

Public Function justFileName(ByVal strFullPath As String) As String

     Dim s() As String

     s = Split(strFullPath, "")

     justFileName = pdfCovertedPath & Left$(s(UBound(s)), InStr(1, s(UBound(s)), ".") - 1) & ".pdf"

 End Function

La risposta è stata utile?

0 commenti Nessun commento

33 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2016-01-15T10:43:07+00:00

    ciao sandro grazie mille  per la dritta, appena ho un po di tempo mi ci dedico e ti farò sapere il risultato.

    grazieee ancora

    Tanino

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2016-01-12T12:18:29+00:00

    ciao a tutti grazie per le informazioni che i state dando, tutti i problemi descritti nei link che mi hi dato li ho riscontrati lavorandoci, la limitazione di modi è grossa come anche le altre.

    ho provato ad inventare un percorso diverso ovvero combinare i tiff in un solo pdf col seguente codice ma mi da errore run time 424  necessario oggetto nella stringa evidenziata sotto ,sto cercando di capire bene i passaggi ma non riesco a capire a cosa si riferisce esattamente l'errore,

    public Sub mergetiff()

    'Dim oFolder As String

    oFolder = "d:\archivio2\tiffs"

    Set fso = CreateObject("Scripting.FileSystemObject")

       Set oFolder = fso.GetFolder("d:\archivio2\tiffs")

        bFirstDoc = True

        For Each oFile In oFolder.files

            If LCase(Right(oFile.Name, 4)) = ".tiff" Then

                If bFirstDoc Then

                    bFirstDoc = False

                    Set oMainDoc = CreateObject("AcroExch.PDDoc")

                    oMainDoc.Open oFolder & "" & oFile.Name

                    WScript.Echo oFolder & "" & oFile.Name

                Else

                    Set oTempDoc = CreateObject("AcroExch.PDDoc")

                    oTempDoc.Open oFolder & "" & oFile.Name

                    WScript.Echo oFolder & "" & oFile.Name

                    oMainDoc.InsertPages oMainDoc.GetNumPages - 1, oTempDoc, 0, oTempDoc.GetNumPages, False

                    oTempDoc.Close

                    End If

            End If

        Next

    oMainDoc.save 1, oFolder & "\Output.pdf"  <----------------------ERRORE RUN TIME 424

        oMainDoc.Close

    end sub

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2016-01-11T18:00:14+00:00

    ciao TaninoWS,

    ho testato il tuo codice con win 8.1 e A13 32 bit e win 7 con office10 a 64 bit, più che il tuo quello che ti aveva consigliato il nostro grande Maurizio qui :

    http://answers.microsoft.com/it-it/office/forum/office\_2010-access/access-2010-il-componente-activex-non-%c3%a8-in/8a99ac0c-63fe-454a-a2d8-ccb3132fea8a

    tutto regolare con la versione a 32 bit, con la versione a 64 bit invece di manifesta il problema che segnali.

    Modi è deprecato già da office 2010 e varrebbe la pena trovare un'alternativa, come ad esempio quella segnalata dalla nostra Cinzia.

    Una delle differenze tra le altre, che caratterizzano le versioni di office 64 bit è il fatto che tutti gli OCX non funzionano per l'impossibiltà di caricare binari a 32 bit di office a 64 bit.

    Personalmente lo ritengo un limite importante soprattutto per controllo treeView.

    MSFT consiglia di installare la versione a 64 solo in casi molto, molto particolari.

    Non credo ci sia soluzione per fare funzionare Modi con Office a 64 bit.... :-((.

    vedi anche qui :

    https://support.office.com/it-it/article/Scelta-della-versione-a-32-bit-o-a-64-bit-di-Microsoft-Office-2dee7807-8f95-4d0c-b5fe-6c6f49b8d261?ui=it-IT&rs=it-IT&ad=IT

    ciao, Sandro

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2016-01-11T12:55:19+00:00

    Ciao TANINOws,

    prova a vedere se questo tool che può essere usato da command line può esserti utile http://www.coolutils.com/TiffCombine

    La risposta è stata utile?

    0 commenti Nessun commento