[VB.NET] Word document bewerken en opslaan

Pagina: 1
Acties:

  • Roeland_
  • Registratie: Maart 2000
  • Laatst online: 27-04 02:13
Zit al de gehele dag te puzzelen.....

Heb een heel klein stukje code dat een Word document maakt, hier een template invoegd, daar een bepaalde tekst in zoekt en deze vervangt waarna het document wordt opgeslagen.

Dit werk perfect op de pc waar VB.Net op staat, draai ik hem echter op een andere pc werkt het niet.

Hij loopt niet direct vast (alle benodigde Dll's zijn aanwezig), maar loopt pas in het programma vast. Ik krijg dan van de just-in-time debugger de volgende melding: "Object reference not set to an instance of an object".

Aangezien ik een hele tijd niet meer iets met VB heb gedaan kan ik me er op het moment niets bij voorstellen. Heb verschillende dingen geprobeert, alle gevonden items bij google nagekeken echter niets waar ik iets mee kan...

Volgende is de programma code

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Public Class Form1
    Inherits System.Windows.Forms.Form

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        'Hier wordt een nieuw bestand geopend
        Dim aDoc As Word.Document = WordApp.Documents.Add("C:\normal.dot", False, 0, True)

        'Hier wordt de template ingevoegd
        WordApp.Selection.InsertFile(fileName:="C:\template.doc", Range:="", ConfirmConversions:=False, Link:=False, Attachment:=False)

        'hele tekst selecteren...
        WordApp.Selection.WholeStory()

        'hier gaan we een tekst zoeken, en vervangen
        WordApp.Selection.Find.Text = "tezoekentekst"
        WordApp.Selection.Find.Replacement.Text = "teplaatsentest"
        WordApp.Selection.Find.Execute(Replace:=Word.WdReplace.wdReplaceAll)

        'resultaat opslaan
        WordApp.Visible = True
        'WordApp.ActiveDocument.SaveAs(FileName:="C:\blaat.doc")
    End Sub


   Private WordApp As New Word.ApplicationClass
End Class


Dit is een gedeelte uit de foutmelding van JIT debugger:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
************** Exception Text **************
System.NullReferenceException: Object reference not set to an instance of an object.
   at Word.Find.set_Text(String prop)
   at WindowsApplication19.Form1.Form1_Load(Object sender, EventArgs e)
   at System.Windows.Forms.Form.OnLoad(EventArgs e)
   at System.Windows.Forms.Form.OnCreateControl()
   at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
   at System.Windows.Forms.Control.CreateControl()
   at System.Windows.Forms.Control.WmShowWindow(Message& m)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   at System.Windows.Forms.ContainerControl.WndProc(Message& m)
   at System.Windows.Forms.Form.WmShowWindow(Message& m)
   at System.Windows.Forms.Form.WndProc(Message& m)
   at System.Windows.Forms.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
 

************** Loaded Assemblies **************
mscorlib
    Assembly Version: 1.0.5000.0
    Win32 Version: 1.1.4322.573
    CodeBase: file:///c:/winnt/microsoft.net/framework/v1.1.4322/mscorlib.dll
----------------------------------------
WindowsApplication19
    Assembly Version: 1.0.1621.26187
    Win32 Version: 1.0.1621.26187
    CodeBase: file:///C:/ldap/program%20files/fdsf/My%20Product%20Name/WindowsApplication17.exe
----------------------------------------
System.Windows.Forms
    Assembly Version: 1.0.5000.0
    Win32 Version: 1.1.4322.573
    CodeBase: file:///c:/winnt/assembly/gac/system.windows.forms/1.0.5000.0__b77a5c561934e089/system.windows.forms.dll
----------------------------------------
System
    Assembly Version: 1.0.5000.0
    Win32 Version: 1.1.4322.573
    CodeBase: file:///c:/winnt/assembly/gac/system/1.0.5000.0__b77a5c561934e089/system.dll
----------------------------------------
System.Drawing
    Assembly Version: 1.0.5000.0
    Win32 Version: 1.1.4322.573
    CodeBase: file:///c:/winnt/assembly/gac/system.drawing/1.0.5000.0__b03f5f7f11d50a3a/system.drawing.dll
----------------------------------------
Interop.Word
    Assembly Version: 8.3.0.0
    Win32 Version: 8.3.0.0
    CodeBase: file:///C:/ldap/program%20files/fdsf/My%20Product%20Name/Interop.Word.DLL
----------------------------------------
Accessibility
    Assembly Version: 1.0.5000.0
    Win32 Version: 1.1.4322.573
    CodeBase: file:///c:/winnt/assembly/gac/accessibility/1.0.5000.0__b03f5f7f11d50a3a/accessibility.dll
----------------------------------------


Iemand hier ervaring mee, die dit met mij zou willen delen? :)

  • Plecky
  • Registratie: Januari 2004
  • Niet online
Hmm, heeft de ander pc nou wel of niet het .NET framework?
Zelfde versie/taal/etc van Windows & Word?

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 24-05 14:53

NMe

Quia Ego Sic Dico.

Heeft Word.Document geen constructor ofzo? Ik ben geen VB programmeur, maar ik mis een contructor. :P

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • Roeland_
  • Registratie: Maart 2000
  • Laatst online: 27-04 02:13
Computer waar ik het programma probeer te draaien heeft het .NET framework geinstalleerd....

Heb het programma ook al geprobeert te installeren met een InstallShield voor VB.net om te kijken of alles wel correct geinstalleerd is op die andere pc, ook dit hielp niet...

Aan te programmacode verder zou volgens mij niet veel aan mis zijn, als het op die ene PC als een zonnetje draait....

  • Roeland_
  • Registratie: Maart 2000
  • Laatst online: 27-04 02:13
Hmmm

Heb voor de gein de volgende regels weggehaald...

code:
1
2
3
4
'hier gaan we een tekst zoeken, en vervangen
        WordApp.Selection.Find.Text = "tezoekentekst"
        WordApp.Selection.Find.Replacement.Text = "teplaatsentest"
        WordApp.Selection.Find.Execute(Replace:=Word.WdReplace.wdReplaceAll)


en nu werkte hij wel....

Het selectere van de tekst en het laten zien van het word document gaat dan wel gewoon goed.....Hier kan ik verder mee...:)

Naja werken, hetgeen waar het omgaat doet het niet meer, maar weet nu ieder geval waar het probleem zit...

[ Voor 14% gewijzigd door Roeland_ op 09-06-2004 17:44 ]