datenmaulwurf: VBScript in html einbinden und per Button ausführen

Hallo zusammen,
bin ein blutiger anfänger, was vbscript angeht und kenn mich deshalb auch noch nicht so gut damit aus! nun zu meiner frage...
wie bekomme ich das hin, dass mein vbscript ausgeführt wird, wenn ich einen button drücke?
Hier mal mein bisheriger sourcecode:

<html>
<title>test</title>
<head>
<script language="VBScript">
<!--
Function teste()
dim datei
dim xml
dim mainelement
dim feld
set xml = createobject("msxml2.domdocument")
if not xml.load ("\172.16.70.3\www\2\TestOrdner\vartest.xml") then
 msgbox "XML-Daten konnte nicht geladen werden"
 Stop
End If
set datei = getobject("\172.16.70.3\www\2\TestOrdner\VorlageNeu.doc")
set mainelement = xml.documentelement
setVariable "nameBearbeiter", mainelement.selectsinglenode("./nameBearbeiter").text
setVariable "bearbeiterID", mainelement.selectsinglenode("./bearbeiterID").text
setVariable "datum", mainelement.selectsinglenode("./datum").text
setVariable "callNr", mainelement.selectsinglenode("./callNr").text
setVariable "callGeber", mainelement.selectsinglenode("./callGeber").text
setVariable "summary", mainelement.selectsinglenode("./summary").text
for each feld in datei.fields
feld.update
Next

datei.Application.Visible = True

sub setVariable(VarName, Wert)
On Error Resume Next
datei.Variables.Item(VarName).Value = Wert
If Err.Number <> 0 Then
 datei.variables.add VarName, Wert
end If
End Sub
End Function
-->
</script>

</head>
<body>

<input type="button" value="testbutton" onClick='teste()'>

</body>
</html>

Folgender Fehler tritt beim drücken auf den button auf:

Typen unverträglich: 'teste'

danke für eure hilfe!

  1. Hello,

    End Sub
    End Function

    die stehen im Code direkt hintereinander, was sie unzweifelhafterweise nicht tun sollen. Verlagere die "End Function" dahin wo sie hingehört und schon reagiert der IE entsprechend (bedenke: Firefox und andere nicht...).

    MfG
    Rouven

    --
    -------------------
    Death is nature's way of telling you to slow down.
    1. Hello,

      End Sub
      End Function
      die stehen im Code direkt hintereinander, was sie unzweifelhafterweise nicht tun sollen. Verlagere die "End Function" dahin wo sie hingehört und schon reagiert der IE entsprechend (bedenke: Firefox und andere nicht...).

      MfG
      Rouven

      Hallo Rouven,

      danke für deine schnelle antwort :-)
      gott sei dank muss das alles auch nur in ie funktionieren :-P
      hab jetzt die Zeile "End Function" vor die Zeile "sub setBariable(VarName, Wert)" gesetzt.
      Das Script schein anzuspringen. Aber jetzt hab ich ein neues Problem...
      -_-'

      -->
      Zeile: 16
      Zeichen: 1
      Fehler: ActiveX-Komponente kann kein Objekt erstellen: 'getobject'
      <--

      Wenn ich das script auf den server als *.vbs datei starte, klappt alles wunderbar. :-(

      liegt das vllt an irgendwelchen sicherheitseinstellungen von ie?!?!?!?

      *verzweifel*

      1. Hello,

        liegt das vllt an irgendwelchen sicherheitseinstellungen von ie?!?!?!?

        entweder daran oder an fehlenden Features auf dem entsprechenden System. GetObject erfordert eine ActiveX-Komponente, die für dich instantiierbar ist. Du forderst augenscheinlich eine ActiveX-Komponente für Word-Dokumente an. Ganz generell könnte das natürlich funktionieren, sofern Word oder ein MS-Word Viewer auf dem Rechner installiert ist, es kann allerdings sein, dass dazu die Sicherheitseinstellungen auf lokales Intranet oder vertrauenswürdige Sites heruntergestellt werden müssen.
        Ganz generell bietet VBScript natürlich eine Menge komfortabler Möglichkeiten, aber es fühlt sich in einer normalen Browserumgebung nicht wirklich wohl...

        MfG
        Rouven

        --
        -------------------
        Inter Arma Enim Silent Leges  --  Cicero
        1. Hallo,
          ich hab alles noch einmal lokal getestet und es taucht genau der selbe fehler auf. die sicherheitseinstellungen hab ich testhalber auch mal ganz runter geschraubt, hatte aber auch keine wirkung :-(
          und wie gesagt, wenn ich das script mit einer *.vbs datei starte, klappt alles suupi auf den server und local bei mir. mal ein dummer gedanke: kann es vllt sein, dass dem browser irgdendwie eine activx komponente für ms word fehlt?

          1. Niemand da der mir helfen kann? :'-(

            1. Hallo

              Niemand da der mir helfen kann? :'-(

              Folgender Code öffnet bei mir die von mir gewünschte Word-Datei:
              Voraussetzungen:
               - Site befindet sich in der Liste der vertrauten Sites.
               - Die Ausführung von für das Skripting unsicherer ActiveX-Objekte
                 steht mindestens auf "Bestätigen"

                
              <html>  
              <title>test</title>  
              <head>  
              <script type="text/vbscript">  
              [code lang=vbscript]  
              function teste()  
                  Dim xml  
                  Dim datei  
                  Dim word  
                
                  On Error Resume Next  
                
                  ' Das Erzeugen dieses Objektes kann fehlschlagen,  
                  ' damit müssen wir rechnen  
                  Set xml = CreateObject("msxml2.domdocument")  
                
                  ' Hat's geklappt  
                  If Err.Number > 0 Then  
                      ' Erzeugen des Objekts war nicht erfolgreich,  
                      ' Gebe die Fehlernummer und -beschreibung aus  
                      MsgBox "Konnte das MSXML2.DOMDocument-Objekt nicht erzeugen" & chr(10) & chr(13) & _  
                      Err.Number & chr(10) & chr(13) & _  
                      Err.Description  
                
                      ' Wir brauchen nicht weiter zu machen und verlassen die Funktion  
                      Exit Function  
                  End If  
                
                  ' Verarbeitung der XML-Datei hab ich weggelassen, hatte keine :-)  
                
                  Set word = CreateObject("Word.Application")  
                  ' Hat's geklappt  
                  If Err.Number > 0 Then  
                      ' Erzeugen des Objekts war nicht erfolgreich,  
                      ' Gebe die Fehlernummer und -beschreibung aus  
                      MsgBox "Konnte das Word-Objekt nicht erzeugen" & chr(10) & chr(13) & _  
                          Err.Number & chr(10) & chr(13) & _  
                          Err.Description  
                
                      ' Wir brauchen nicht weiter zu machen und verlassen die Funktion  
               Exit Function  
                  End If  
                
                  word.visible = True  
                
                  ' Auch das Öffnen einer Datei kann fehlschlagen  
                  Set datei = word.documents.open("\\192.168.2.33\www\test.doc")  
                  ' ... und muss im Anschluss überprüft werden  
                
                  ' Du könntest das wie folgt prüfen:  
                  If datei is Nothing Then  
                      MsgBox "Datei konnte nicht geöffnet werden"  
                  End If  
                
                  ' ... nur um festzustellen, dass das Error-Objekt gefüllt ist.  
                  ' was Dir spätere Fehlerprüfungen erschweren könnte ...  
                  If Err.Number > 0 Then  
                      ' Erzeugen des Objekts war nicht erfolgreich,  
                      ' Gebe die Fehlernummer und -beschreibung aus  
                      MsgBox "Konnte die Worddatei nicht öffnen" & chr(10) & chr(13) & _  
                          Err.Number & chr(10) & chr(13) & _  
                          Err.Description  
                
                      ' Wir brauchen nicht weiter zu machen und verlassen die Funktion  
                      Exit Function  
                  End If  
                
                  ' Wenn wir hier angelangt sind, ist die Datei erfolgreich geöffnet -  
                  ' und Du kannst nun anfangen, z.B. die Textfelder zu aktualisieren ...  
                
              End Function  
              
              

              </script>

              </head>
              <body>

              <input type="button" value="testbutton" onClick="teste()">

              </body>
              </html>
              [/code]

              Der Versuch mit

              GetObject("Pfad\zu\Datei")

              eine Wordinstanz zu öffnen, schlug jeweils fehl. Deswegen ist es wichtig, eine
              Fehlerbehandlung einzubauen. Allerdings solltest Du eher wie auf meiner
              Testseite die Fehlernummer und -beschreibung einer allgemeinen Funktion
              übergeben statt überall direkt eine angepasste Fehlermeldung in den Quelltext
              zu schreiben - wie ich es hier der Einfachheit halber getan habe.

              Freundliche Grüße

              Vinzenz

              1. Hallo Vinzenz,

                du hast mir sehr weiter geholfen :-)

                Vielen Dank
                Datenmaulwurf

      2. Hallo

        Das Script schein anzuspringen. Aber jetzt hab ich ein neues Problem...

        Fehler: ActiveX-Komponente kann kein Objekt erstellen: 'getobject'
        liegt das vllt an irgendwelchen sicherheitseinstellungen von ie?!?!?!?

        ja, siehe z.B. meine Ausführungen auf meiner meine Testseite.

        Freundliche Grüße

        Vinzenz