🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: free.it.visual-basic
Article #2140

Re: Inesperto chiede....

#2140
From: stgfv
Date: Wed, 15 Oct 2003 22:01
91 lines
4866 bytes
Grazie della dritta ma ho trovato questa soluzione tra tutte molto
interessante cio� passare a dei campi %%nome%% in word delle variabili dei
form attraverso Vb.
Il problema sorge con il fatto che non conosco gli object e nemmeno
GetObject (e purtroppo non ho neanche una guida di Vb!).
Considerato il fatto che i riferimenti di word sono incompatibili se fatti
con versioni differenti, vorrei che fosse possibile sostituitre i dati
indipendentemente dalla versione di Word, quindi far diventare xWord un
object.
Mi manca la sostituzione dei dati %%nome%% nelle tabelle di word!
Ho provato tutta la sera e niente!
Listato del codice e il seguente:
Dim xWord As Object
    Dim xRange As Range           ' Oggetto Range
    Dim xSelection As Find        ' Oggetto Find
    Dim xTabella As Table         ' Oggetto Tabella
    Dim xCella As Cell            ' Oggetto Cella

    'istanzio una nuovo oggetto Word.Application
    Set xWord = CreateObject("Word.Application")
    If Err.Number <> 0 Then
        'c'� stato qualche errore nell'aprire l'istanza Word
        'Solitamente l'errore �: n.429 Can't create activex component
        MsgBox ("Word non c'�?")
    End If
    'Rendo invisibile l'instanza
    xWord.Visible = False

    'Se fosse visibile, potrei massimizzare la finestra con
    'la seguente riga di codice

    'xWord.WindowState = wdWindowStateMaximize

    'aggiungo un documento (in questo caso un modello)
    xWord.Documents.Add App.Path & "\Parcella.doc"
    'imposto i vari dati (qui naturalmente sostituirai i dati con quelli
    'presi da un DB. I campi contrassegnati con %%<nome campo>%% sono
corrispondenti
    'a quelli inseriti nel documento (o modello) word.
    Set xRange = xWord.ActiveDocument.Range
        xRange.Find.Execute "%%nome%%", , , , , , , , , Stampa.Nome, True

    Set xRange = xWord.ActiveDocument.Range
        xRange.Find.Execute "%%cognome%%", , , , , , , , , Stampa.Indirizzo,
True

    Set xRange = xWord.ActiveDocument.Range
        xRange.Find.Execute "%%Albo%%", , , , , , , , , Stampa.Albo, True

    Set xRange = xWord.ActiveDocument.Range
        xRange.Find.Execute "%%int%%", , , , , , , , , Form1.int, True

    Set xRange = xWord.ActiveDocument.Range
        xRange.Find.Execute "%%Signor%%", , , , , , , , , Form1.Signor, True

    Set xRange = xWord.ActiveDocument.Range
        xRange.Find.Execute "%%recapito%%", , , , , , , , , Form1.Indirizzo,
True

    Set xRange = xWord.ActiveDocument.Range
        xRange.Find.Execute "%%citta%%", , , , , , , , , Form1.citt�, True

"KillerBoy" <@nospam@@pippo.it> ha scritto nel messaggio
news:358jb.36973$vO5.1379953@twister1.libero.it...
> "stgfv" <stgfv@NOSPAM-tiscali.it> ha scritto nel messaggio
> news:o4%ib.216840$hE5.7311795@news1.tin.it...
> > Forse sono stato poco chiaro,
> > ho implementato attraverso il codice :
> [CUT]
>
> Ora credo di aver capito.
>
> > Dim WrdApp As Word.Application 'Se Word sul Pc non c'� mi manda in crash
> > l'applicazione!!!!!!!!!!
>
> ti manda in crash l'applicazione perch� non la definisci come "new" quindi
> cerca word gi� istanziato
> potresti definire wrdapp come object (conseguentemente anche wrddoc e
campo)
> e poi usare la GetObject, con i parametri appropriati, in modo tale che se
> non c'� word viene istanzianziato (ed oltretutto se non lo metti tra i
> riferimenti il codice diventa conpatibile con le varie versioni di word)
>
> > 'Vorrei ora proteggere il file aperto con una password!!
> > 'Come farlo?
>
> la password, se non ricordo male puoi impostarla al momento del
salvataggio
> del documento, tra i vari parametri gli puoi anche dare le password per
> accedere al file
>
Technical Details
Message-ID: <1tjjb.221829$hE5.7469284@news1.tin.it>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news2.google.com!news.maxwell.syr.edu!nntp.infostrada.it!newsfeeder.edisontel.com!news-out.tin.it!news-in.tin.it!news1.tin.it.POSTED!not-for-mail
References: <ZwBib.277259$R32.9038809@news2.tin.it> <sUOib.36322$e6.1287211@twister2.libero.it> <o4%ib.216840$hE5.7311795@news1.tin.it> <358jb.36973$vO5.1379953@twister1.libero.it>

Show Full Headers
Complete Article Headers
X-Google-Language: ITALIAN,ASCII
X-Google-Thread: f94ee,3c3673a7b24ed666
X-Google-Attributes: gidf94ee,public
X-Google-ArrivalTime: 2003-10-15 15:01:33 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news2.google.com!news.maxwell.syr.edu!nntp.infostrada.it!newsfeeder.edisontel.com!news-out.tin.it!news-in.tin.it!news1.tin.it.POSTED!not-for-mail
From: "stgfv" <stgfv@NOSPAM-tiscali.it>
Newsgroups: free.it.visual-basic
References: <ZwBib.277259$R32.9038809@news2.tin.it> <sUOib.36322$e6.1287211@twister2.libero.it> <o4%ib.216840$hE5.7311795@news1.tin.it> <358jb.36973$vO5.1379953@twister1.libero.it>
Subject: Re: Inesperto chiede....
Lines: 93
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2800.1158
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165
Message-ID: <1tjjb.221829$hE5.7469284@news1.tin.it>
Date: Wed, 15 Oct 2003 22:01:33 GMT
NNTP-Posting-Host: 80.181.84.65
X-Complaints-To: newsmaster@tin.it
X-Trace: news1.tin.it 1066255293 80.181.84.65 (Thu, 16 Oct 2003 00:01:33 MET DST)
NNTP-Posting-Date: Thu, 16 Oct 2003 00:01:33 MET DST
Organization: TIN