Collegare Access con word

di danilo123 il
31 risposte

31 Risposte - Pagina 2

  • Però la cosa bella, che quando metto la verifica del codice sull'allineamento mi riconosce che ho chiesto di mettere centrale ma non lo mette.
  • Mi correggo... Ho invertito io l'if.. comunque no, non l'accetta proprio che si trova al centro :S
  • danilo123 ha scritto:


    Ciao Alex, effettivamente questo è proprio un errore da.....................................
    Se devo confessarti una grave negligenza è che non so usare il Debug.
    A volte parte altre invece devo testare manualmente il programma (non chiedermi come mai :S ) è una cosa che stanotte cercherò qqualche video su youtube ... . Oppure quando veramente vado in crisi su una cosa metto delle msgbox nei punti più cruciali per capire se il programma legge la riga oppure no...

    Tornando al punto più cruciale...

    Ho messo Dim però il problema persiste.. Non mi da giustamente più errore nelle dichiarazioni però è come se non prendesse in considerazione

    With Wrd.Selection
    .Font.Bold = True
    .Font.Size = 24
    1(* .ParagraphFormat.Alignment = wdAlignParagraphCenter 1)*
    .TypeText "CISA 2 - Paola (CS) 17-18 giugno 2006" & vbCrLf & vbCrLf
    .Font.Bold = False


    Ho messo una serie di msgbox per interrompere il codice e vedere se il file word si aggiornava.. Il grassetto funziona, la grandezza pure, il messaggio pure.... mentre l'allineamento no... Per caso esiste qualche altro codice per l'allineamento può essere?
    Ho letto una cosa che mi ha fatto sorridere...
    
    .TypeText "CISA 2 - Paola (CS) 17-18 giugno 2006" & vbCrLf & vbCrLf
    Quanto tempo è passato... ero uno dei relatori...
  • F1Non mi dire che questo codice l'hai scritto te???
  • danilo123 ha scritto:


    F1Non mi dire che questo codice l'hai scritto te???
    Se non ricordo male era un DEMO di Marco... io presentai una serie di tematiche legate all'uso delle API.
  • Comunque complimenti per la spiegazione del DEBUG, spettacolare. Credo che bisogna sponsorizzarlo di più sul forum. Se non fosse stato per te non l'avrei mai trovato.
    Grazie ancora
  • Comunque non ci riesco ad allineare il paragrafo :S
  • danilo123 ha scritto:


    Comunque non ci riesco ad allineare il paragrafo :S
    Hai provato a registrare una MACRO in WORD e leggere il codice che ne deriva, riadattarlo dal VBA che stai usando sull'oggetto specifico...?
  • Si provato,
    Questo è quello del registratore di word:

    Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter

    questo è quello che metto io

    .ParagraphFormat.Alignment = wdAlignParagraphCenter

    se mettessi wrd.ParagraphFormat.Alignment = wdAlignParagraphCenter ... mi da errore..
    se mettessi Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter mi da errore..


    C'è l'ha proprio con l'allineamento perchè se cambiassi la grandezza dei caratteri funziona correttamente.
  • Hai tolto i riferimenti alla libreria Word?
    Comunque se usi il late-binding
    Dim Wrd As Object
    il problema resta.

    Togliendo la libreria di Word l'ambiente VBA di MsAccess non conosce le costanti di Word.
    Per cui la costante wdAlignParagraphCenter manco sa cos'è e devi dichiararla nel tuo codice:
    Const wdAlignParagraphCenter = 1
    vedi qui
    WdParagraphAlignment Enum (Microsoft.Office.Interop.Word) | Microsoft Docs
    https://docs.microsoft.com/en-us/dotnet/api/microsoft.office.interop.word.wdparagraphalignment?view=word-pia

    N.B. Questo vale per TUTTE le costanti di Word.
  • FUNZIONAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA!!!!!!!! aggiungendo questa costante Const wdAlignParagraphCenter = 1

    Pero non mi sono chiare due cose..
    1) Se non ho i riferimenti word come può essere che il grassetto e le dimensioni le riconosce?
    2) per inserire delle librerie devo andare nel editor di vba, strumenti, riferimenti, ed abilitare tutte quelle che centrano con word o per non sbagliare quelle che centrano con office? Perchè se è cos' ho tutte abilitate ...
  • 1) perché per impostare le proprietà a cui ti riferisci non usi delle costanti, ma dei valori.
    2) Non importa quali librerie hai nei riferimenti, dal momento che usi il late-binding nessun riferimento e/o costante sarà riconosciuto, nel compilato.

    Tempo fa @Alex ha pubblicato un articolo su questo argomento:

    [Articolo] LATEBINDING Vs EARLYBINDING - Microsoft Office, Access, VBA
    **
  • Ci sono riuscito è sei stato molto d'aiuto... Non mi chiamare romp***** mase volessi invece salvare il file word che apro in pdf?
    Perhcp ho utilizzato il registratore di macro in word ma credo che sia lo stesso problema della costante... ma non capisco quale intende ora..
  • danilo123 ha scritto:


    Non mi chiamare romp*****
    L'invito è rivolto a Gibra, quindi io posso chiamarti così?

    danilo123 ha scritto:


    ...se volessi invece salvare il file word che apro in pdf?...
    io sono pigro e non so niente di VBA di Word. Che codice risulta dal registratore di macro per il salvataggio in pdf? Come l'hai trasposto in Access, nel tuo codice?
  • Philcattivocarattere ha scritto:


    danilo123 ha scritto:


    Non mi chiamare romp*****
    L'invito è rivolto a Gibra, quindi io posso chiamarti così?

    danilo123 ha scritto:


    ...se volessi invece salvare il file word che apro in pdf?...
    io sono pigro e non so niente di VBA di Word. Che codice risulta dal registratore di macro per il salvataggio in pdf? Come l'hai trasposto in Access, nel tuo codice?

    Per il rompi**** do la possibilità di chiamarmi così a tutte le persone che mi danno una mano


    Come codice vb di word mi esce questo

    ActiveDocument.ExportAsFixedFormat OutputFileName:= _
    "C:\Users\D.M. SERVICE\Desktop\test.pdf", ExportFormat:=wdExportFormatPDF _
    , OpenAfterExport:=False, OptimizeFor:=wdExportOptimizeForPrint, Range:= _
    wdExportAllDocument, From:=1, To:=1, Item:=wdExportDocumentContent, _
    IncludeDocProps:=True, KeepIRM:=True, CreateBookmarks:= _
    wdExportCreateNoBookmarks, DocStructureTags:=True, BitmapMissingFonts:= _
    True, UseISO19005_1:=False
    ChangeFileOpenDirectory "C:\Users\D.M. SERVICE\Desktop\"
Devi accedere o registrarti per scrivere nel forum
31 risposte