Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Compilazione di documenti word con vb.net
martedì 11 aprile 2006 - 17.08
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
fonzinieto
Profilo
| Newbie
9
messaggi | Data Invio:
mar 11 apr 2006 - 17:08
Ciao a tutti , mi serve il vostro aiuto perchè non riesco ad andare avanti...mi sono cotto!!!
Ho inserito in un applicazione vb.net il seguente codice (1) per aprire un foglio word 2003 e compilare i diversi bookmark al suo interno . Quando eseguo sul mio pc il programma tutto ok , eseguo il programma sun un pc in cui ho distribuito il programma e cerco di fare la stessa operazione che ha esito positivo sul mio pc mi esce un errore che dice: "riferimento ad un oggetto non impostato su un' istanza di oggetto" ; preciso che sul pc dove distribuisco il programma non c'è la stessa versione di word 2003 che ho sul mio pc ma la versione word 2000. Ho letto un pò di cose ma mi sono propio impallato !!!
Grazie in anticipo a chi può darmi una mano
Allego il codice che eseguo per aprire il foglio word e compilare i bookmark:
Imports Microsoft.Office.Interop.Word
Imports Microsoft.Office.Interop.Word.ApplicationClass
Imports System.Data.Common
Imports System.Data.OleDb
Imports System.Data
Dim docxltcmd As New OleDbCommand
Dim docxltda As New OleDbDataAdapter
Dim docxltds As New DataSet
Dim docxcloseCn As Boolean = False
Dim docxltstrsql As String
Dim docxltcon As New OleDbConnection
Dim docxltstrconn As String
Dim docxmyrow As DataRow
docxltcon.ConnectionString = <<< stringa connessione per access >>
docxltcmd = New OleDbCommand
docxltda.SelectCommand = docxltcmd
docxltcmd.CommandText = "SELECT * FROM clienti where id = " & Me.editID.Text
docxltcmd.Connection = docxltcon
docxltcon.Open()
'MsgBox("connessione aperta")
docxltda.SelectCommand.Connection = docxltcon
docxltda.Fill(docxltds)
' IMPOSTAZIONE FOGLIO DI STAMPA WORD
Dim objword As New Microsoft.Office.Interop.Word.Application
'Dim filename As Object = "c:\SCHEDA DI NOTIFICAZIONE II.doc"
Dim filename As String filename = "c:\SCHEDA DI NOTIFICAZIONE II.doc"
Dim docxxrow As DataRow
objword.Documents.Open(filename)
For Each docxxrow In docxltds.Tables(0).Rows
objword.ActiveDocument.Bookmarks.Item("DATAARRIVO").Select()
objword.Selection.Text = docxxrow("data arrivo")
objword.ActiveDocument.Bookmarks.Item("COGNOME").Select()
objword.Selection.Text = docxxrow("cognome") + " " + docxxrow("nome")
objword.ActiveDocument.Bookmarks.Item("NATOA").Select()
objword.Selection.Text = docxxrow("nato a")
objword.ActiveDocument.Bookmarks.Item("RESIDENTE").Select()
objword.Selection.Text = docxxrow("citta")
Next
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
mer 12 apr 2006 - 10:15
>Ho inserito in un applicazione vb.net il seguente codice (1)
>per aprire un foglio word 2003 e compilare i diversi bookmark
>al suo interno . Quando eseguo sul mio pc il programma tutto
>ok , eseguo il programma sun un pc in cui ho distribuito il programma
>e cerco di fare la stessa operazione che ha esito positivo sul
>mio pc mi esce un errore che dice: "riferimento ad un oggetto
>non impostato su un' istanza di oggetto" ; preciso che sul pc
>dove distribuisco il programma non c'è la stessa versione di
>word 2003 che ho sul mio pc ma la versione word 2000. Ho letto
>un pò di cose ma mi sono propio impallato !!!
Ti do questi consigli:
1) Fai un test su una macchina con Word 2003 per capire se il problema è quello.
2) Se vuoi che il sistema a runtime si colleghi alla corretta libreria del Word installato su quella particolare macchina utilizza il CreateObject() che in VB.NET è disponible. Se non ricordo male questo recupera il COM di Word della versione installata nel sistema.
3) Se usi features di Word 2003 che Word 2000 non ha non andrà mai.
ciao
David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/
fonzinieto
Profilo
| Newbie
9
messaggi | Data Invio:
mer 12 apr 2006 - 18:38
Grazie David ,
ieri sera sono riuscito a risolvere il problema come mi suggerisci anche tu ;
ho inserito il seguente codice (SOSTITUENDO QUELLO CHE E' NEL POST) e tutto funziona
Dim objword As Object 'New Word.ApplicationClass
objword = CreateObject("Word.Application")
objword.Visible = True
Dim filename As String
filename = "c:\residence\SCHEDA DI NOTIFICAZIONE II.doc"
objword.Documents.Open(filename)
Grazie per il tuo aiuto
Ciao a tutti
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
gio 13 apr 2006 - 10:42
Ciao,
puoi accettare la mia risposta cliccando sull'apposito link, in questo modo il Thread viene marcato come risolto.
ciao
David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/
dominic
Profilo
| Newbie
20
messaggi | Data Invio:
gio 15 apr 2010 - 11:02
ciao,
avrei bisogno anche io di aprire un modello word da asp.
sai come posso risolvere?
dominic
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !