Kati: Microsoft VBScript runtime error '800a0009'

Hallo,

Ich habe eine Mitahrbörse für das Intranet einer Firma programmiert.Getestet habe ich die Seiten immer auf meinem eigenen Pc und dort liefen sie auch einwandfrei.
Nun habe ich das Web auf den Web Server der Firma übertragen und meine Seite funktionieren nicht mehr. Ich bekomme die Fehlermeldung

Microsoft VBScript runtime error '800a0009'

Subscript out of range: '[number: 1]'

Das ist mein Quelltext:
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Benutzerübersicht</title>
<style>
<!--
h1           { font-family: Arial; font-size: 10pt; color: #FF0000; margin-top: 0;
               margin-bottom: 0 }
h2           { font-family: Arial; font-size: 8pt; color: #FF0000; margin-top: 0;
               margin-bottom: 0 }
h3           { font-family: Arial; font-size: 10pt; color: #FFFFFF; margin-top: 0;
               margin-bottom: 0 }
h4           { font-family: Arial; font-size: 8pt; margin-top: 0; margin-bottom: 0 }
table        { border-style: solid; border-width: 0px }
b            { font-family: Arial; font-size: 10pt; font-weight: bold }
img          { border-style: solid; border-width: 0px }
-->
</style>

</head>
<script type="text/javascript">

</script>

<body>
<%'@ Language=VBScript %>
<% Response.Expires = 0
   Options.Execute

'Deklaration der Variablen für das Auslesen des Benutzernamens und speichern der SQL Anweisung
 Dim strUserName
 Dim ArrUser
 Dim strLogged_In_User
 Dim SQL

'Variablen für die Buttonabfrage anlegen
 Dim butt_ausw
 Dim butt_loesch
 Dim butt_neu
 Dim butt_bearb
 Dim strTab_abfr
 Dim box_check

'Deklaration der Übergabevariablen
 Dim var_check
 Dim var_moeglich
 Dim strmoeglich

'Auslesen des NT-Benutzernamens
 strUserName = Request.ServerVariables("LOGON_USER")
 ArrUser = Split(strUserName,"", -1, 1)
 strLogged_In_User = ArrUser(1)

'Herstellen einer Verbindung zur Datenbank über eine *.udl-Datei
 strPath = Server.MapPath("DB_Verbindung/mitfahr.udl")
 Set conn = Server.CreateObject("ADODB.Connection")
   conn.open "file name=" & strPath
 Set rs = Server.CreateObject("ADODB.RecordSet")
 strQuery = "SELECT 0"
 rs.Open strQuery, conn

'Auslesen aller Datensätze aus der Tabelle Gebote die der eingeloggte User abgegeben hat
 SQL="Select * from Gebote where Gebote.Benutzername='"&strLogged_In_User&"' "
 set rs=conn.execute(SQL)

Nun Zeigt es mir beim Auslesen des LOGON_Users dieses Fehler in Zeile 55 an. Was ist falsch an dem Array?

Hoffe ihr könnt mir helfen!
MfG Kati

  1. Hallo!

    Nun Zeigt es mir beim Auslesen des LOGON_Users dieses Fehler in Zeile 55 an. Was ist falsch an dem Array?

    Und welche ist die Zeile 55? Der Fehler jedenfalls besagt, daß Du auf ein nicht existierende Array-Element zugreifst. Also z.B. "strLogged_In_User = ArrUser(1)" obwohl (1) gar nicht existiert.

    Beste Grüße
    Viennamade

    1. Hallo!

      Nun Zeigt es mir beim Auslesen des LOGON_Users dieses Fehler in Zeile 55 an. Was ist falsch an dem Array?

      Und welche ist die Zeile 55? Der Fehler jedenfalls besagt, daß Du auf ein nicht existierende Array-Element zugreifst. Also z.B. "strLogged_In_User = ArrUser(1)" obwohl (1) gar nicht existiert.

      Beste Grüße
      Viennamade

      Die Variable ArrUser wird ja normal deklariert. Ich lese den LOGON_User aus und will den NT-Benutzernamen. Mit Split trenne ich den Benutzernamen vom Serveranteil.
      In dem alten Quelltext werden die Teile des LOGON_User einfach in die Variable ArrUser geschrieben und dabei fungiert die Variabl als Array. Das hat sie bis jetzt auch ohne Probleme gemacht, aber das funktioniert ja so nun nicht mehr.

      Wenn ich nun also ArrUser von vorn herein als Array deklariere, wie bekomme ich die Teile meines gesplitteten LOGON_USER in die Array Felder? Vielleicht mit einer Schleife?

      Dim ArrUser(3)
      strUserName = Request.ServerVariables("LOGON_USER")

      ? ArrUser = Split(strUserName,"", -1, 1)

      strLogged_In_User = ArrUser(1)

      1. Hallo!

        Und welche ist die Zeile 55?

        Wenn ich Deine Nicht-Antwort korrekt verstehe, dann ist die Zeile 55 diese:
         strLogged_In_User = ArrUser(1)

        Welchen Inhalt hat denn die Variable
           strUserName
         _vor_ dieser Zeile:
        ArrUser = Split(strUserName,"", -1, 1) ?

        Beste Grüße
        Viennamade

        1. Welchen Inhalt hat denn die Variable
             strUserName
           _vor_ dieser Zeile:
          ArrUser = Split(strUserName,"", -1, 1) ?

          Um mal zu antworten, in der Zeile 55 steht
          strLogged_In_User=ArrUser(1).

          Der Variable strUserName wird eine Zeile vorher mit request.ServerVariable("USER_NAME") der Name des aktuell auf dem PC angemeldeten Benutzer in der Form \serverteil\Benutzername zugewiesen.
          Um nun nur den Benutzernamen zu erhalten habe ich den Benutzernamen gesplittet und die Teile in den Array geschrieben.
          So war zumindest der Plan.

          1. Welchen Inhalt hat denn die Variable
               strUserName
            _vor_ dieser Zeile:
            ArrUser = Split(strUserName,"", -1, 1) ?

            Um mal zu antworten, in der Zeile 55 steht
            strLogged_In_User=ArrUser(1).

            Der Variable strUserName wird eine Zeile vorher mit request.ServerVariable("USER_NAME") der Name des aktuell auf dem PC angemeldeten Benutzer in der Form \serverteil\Benutzername zugewiesen.
            Um nun nur den Benutzernamen zu erhalten habe ich den Benutzernamen gesplittet und die Teile in den Array geschrieben.
            So war zumindest der Plan.

            Hm, würde nicht auch sowas hier funktionieren?

            Benutzername = Right(strUserName, Len(strUserName) - Instr(strUserName,""))

            1. Benutzername = Right(strUserName, Len(strUserName) - Instr(strUserName,""))

              Danke das funktioniert!
              MfG Kati

          2. Hallo!

            ********************************************

            * Welchen Inhalt hat denn die Variable
            *    strUserName
            *  _vor_ dieser Zeile:
            * ArrUser = Split(strUserName,"", -1, 1) ?

            ********************************************

            Um mal zu antworten, in der Zeile 55 steht
            strLogged_In_User=ArrUser(1).

            OK.

            Der Variable strUserName wird eine Zeile vorher mit request.ServerVariable("USER_NAME") der Name des aktuell auf dem PC

            Also was jetzt: request.ServerVariable("USER_NAME") oder Request.ServerVariables("LOGON_USER")?

            Beste Grüße
            Viennamade

            1. Also was jetzt: request.ServerVariable("USER_NAME") oder Request.ServerVariables("LOGON_USER")?

              Schuldigung hab mich verschrieben

              LOGON_USER ist richtig

              1. Hallo!

                Schuldigung hab mich verschrieben
                LOGON_USER ist richtig

                ... womit Du den 2. Teil meines Postings beantwortet hast.

                Und:
                      ********************************************

                * Welchen Inhalt hat denn die Variable
                *    strUserName
                *  _vor_ dieser Zeile:
                * ArrUser = Split(strUserName,"", -1, 1) ?

                ********************************************
                ?
                Beste Grüße
                Viennamade