On 12 Gen, 00:09, ***@alice.it wrote:
> On 11 Gen, 23:47, ***@alice.it wrote:
>
>
>
>
>
> > On 11 Gen, 18:58, ***@alice.it wrote:
>
> > > On 11 Gen, 13:03, "Sergio MAZZA" <***@tiscali.it> wrote:
>
> > > > "Alessandro Baraldi" <***@libero.it> ha scritto nel messaggionews:e442fb56-aa46-4a69-9ccc-***@k2g2000hse.googlegroups.com...
>
> > > > Se le Costanti le dichiari funziona, io però non le chiamo mai come
> > > > quelle definite, ma aggiungo un "c_" in modo che no mi dia errore in
> > > > fase di progettazione in cui ho abilitato Early con i Riferimenti.
>
> > > > Peraltro sembra che non vengano valorizzate, ma ho il sospetto che non
> > > > siano stati tolti i rifeirmenti ... o che il nome possa generare
> > > > anomalia.
>
> > > > @Alex
>
> > > > [risposta]
> > > > Si lo so'; lo dicevo perché se non leggo male, non ha dichiarato alcune
> > > > costanti che invece utilizza, sempre che il codice inviato sia completo...
>
> > > > Ciao.
> > > > --
> > > > Sergio MAZZA
>
> > > Ciao Sergio, questo è il codice completo con un solo Bookmarks:
>
> > > Private Sub AnteprimaWord_Click()
> > > Dim Wrd As Object, Doc As Object
> > > Dim Rst As DAO.Recordset
> > > Dim Modello As String, NomeFile As String, i As Integer
> > > Dim Record As String, sql As String
> > > Dim Tbl As String * 1
> > > Dim TotRiga As Currency, Totale As Currency
> > > Dim ReplSel As Boolean
>
> > > Me.Requery
> > > Modello = CurrentDb.Name
> > > Modello = Left(Modello, Len(Modello) - Len(Dir(Modello))) &
> > > "Stampa_Comunicato.dot"
>
> > > On Error Resume Next
> > > Set Wrd = GetObject(, "Word.Application")
> > > If Err.Number = 429 Then
> > > Set Wrd = CreateObject("Word.Application")
> > > End If
>
> > > On Error GoTo 0
> > > Wrd.Visible = True
> > > Wrd.Activate
> > > ReplSel = Wrd.Options.ReplaceSelection
> > > Wrd.Options.ReplaceSelection = True
>
> > > Set Doc = Wrd.Documents.Add(Modello)
> > > Doc.Activate
>
> > > '----------------------------------------------------------------------------------------------
> > > Doc.Bookmarks("Girone").Select
>
> > > 'impostazione delle tabulazioni:
> > > With Wrd.Selection.Paragraphs.TabStops
> > > .Add Wrd.Application.CentimetersToPoints(7), wdAlignTabCenter
> > > 'G
> > > .Add Wrd.Application.CentimetersToPoints(9), wdAlignTabRight
> > > 'Girone1
> > > End With
>
> > > sql = "SELECT * FROM RisultatoQuery WHERE G=" & Me.G & _
> > > " ORDER BY G_A_R;"
> > > Set Rst = CurrentDb.OpenRecordset(sql)
>
> > > If Not Rst.BOF Then
> > > Tbl = Chr$(9)
>
> > > 'linea orizzontale tra le intestazioni e i dati
> > > Wrd.Selection.Borders(wdBorderTop).LineStyle =
> > > wdLineStyleSingle
> > > 'spaziatura di 8 punti tra la linea e il testo
> > > Wrd.Selection.Borders.DistanceFromTop = 8
>
> > > Record = Tbl & [G_A_R] & "^" & " Giornata - " & Tbl &
> > > _
> > > "Girone di " & [Girone]
> > > Wrd.Selection.Font.Bold = True 'abilita il grassetto
> > > Wrd.Selection.TypeText Record & vbCrLf 'scrivi la riga
> > > Wrd.Selection.Font.Bold = False 'togli il grassetto
>
> > > Rst.Close: Set Rst = Nothing
>
> > > 'linea orizzontale tra i dati e il totale
> > > Wrd.Selection.Paragraphs(1).Borders(wdBorderTop).LineStyle =
> > > wdLineStyleDouble
> > > Wrd.Selection.Paragraphs(1).Borders.DistanceFromTop = 8
>
> > > Else
> > > Wrd.Selection.TypeText "" & vbCrLf
> > > End If
>
> > > Wrd.Options.ReplaceSelection = ReplSel
>
> > > Wrd.Application.WordBasic.MsgBox "Esportazione terminata",
> > > "Esportazione dati da Access"
> > > Set Doc = Nothing
> > > Set Wrd = Nothing
> > > End Sub
>
> > > e queste le costanti (per il momento le ho inserite tutte):
>
> > > Public Const wdWindowStateMaximize As Long = 1
> > > Public Const wdWindowStateMinimize As Long = 2
> > > Public Const wdWindowStateNormal As Long = 0
> > > Public Const wdOrientLandscape As Long = 1
> > > Public Const wdOrientPortrait As Long = 0
> > > Public Const wdToggle As Long = 9999998
> > > Public Const wdPageBreak As Long = 7
> > > Public Const wdAlignTabLeft = 0
> > > Public Const wdTabLeaderSpaces = 0
> > > Public Const wdAlignTabRight = 2
> > > Public Const wdAlignParagraphLeft = 0
> > > Public Const wdAlignParagraphCenter = 1
> > > Public Const wdAlignParagraphRight = 2
> > > Public Const wdAlignParagraphJustify = 3
> > > Public Const wdAlignTabCenter = 1
> > > Public Const wdStory = 6
> > > Public Const wdTextureNone = 0
> > > Public Const wdAuto = 0
> > > Public Const wdBlack = 1
> > > Public Const wdLineStyleNone = 0
> > > Public Const wdLineStyleSingle = 1
> > > Public Const wdLineWidth050pt = 4
> > > Public Const wdBorderLeft = -2
> > > Public Const wdBorderRight = -4
> > > Public Const wdBorderTop=-1
> > > Public Const wdBorderBottom = -3
> > > Public Const wdCharacter = 1
> > > Public Const wdExtend = 1
>
> > > Come vedi ho inserito "Dim Wrd As Object, Doc As Object" ma l'errore è
> > > sempre e solo sulla linea orizzontale.
> > > Ciao Vladimiro.- Nascondi testo tra virgolette -
>
> > > - Mostra testo tra virgolette -
>
> > Allora ho risolto in questo modo:
> > ho eliminato le costanti nel modulo e le ho modificate nel codice
> > così:
> > Wrd.Selection.Borders(1).LineStyle = wdLineStyleSingle
> > non mi dà più errore ma la linea orizzontale non la segna
>
> > Wrd.Selection.Borders(1).LineStyle = 1
> > in questo modo funziona alla grande.
> > L'1 tra parentesi può variare fino a 6, oltre dà lo stesso errore.
> > A voi l'eventuale commento.
> > Vladimiro.- Nascondi testo tra virgolette -
>
> > - Mostra testo tra virgolette -
>
> A questo punto alzo le mani.
> Ho in totale 13 Bookmarks, variando solo il primo in questo modo:
> Wrd.Selection.Borders(1).LineStyle = 0
> e lasciando gli altri invariati compreso
> Wrd.Selection.Borders(wdBorderTop).LineStyle = wdLineStyleSingle
> mi riporta il Word allo stato "originale" comprese le tabulazioni.
> Vladimiro.- Nascondi testo tra virgolette -
>
> - Mostra testo tra virgolette -
Pardon, piccolo passo indietro.
Bisogna modificare tutti i Bookmarks in quanto non mi ero accorto che
sulle librerie c'era nuovamente il segno di spunta su Object Library.
Mi raccomando Alessandro C.... non commentare eh! :-)
Vladimiro.