tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
2
ZUGRIFFE
445
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von Torgath
    Torgath Torgath ist offline Mitglied Silber
    Registriert seit
    Feb 2005
    Beiträge
    84
    So, hab ein kleines Proplem...

    Ich hab diese beiden Quellcodes:

    list.asp:

    Code asp:
    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
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    
    <%@ Language=VBScript %>
    <%
    dim vararray(16)
    dim vartable
    vartable = Request("vtable")
    Response.Write vartable%><br>
    <%Response.Write vtable%><br>
    <%="test123"%>
    <%
    Select Case vartable
     Case "mitarbeiter"
      'Response.Write "1"
      vararray(0) = "glo_Mitarbeiter"
      vararray() = ""
      vararray() = ""
      vararray() = ""
      vararray() = ""
      vararray() = ""
     Case "kunden"
      'Response.Write "2"
      vararray(0) = "tbl_customer"
      vararray(1) = "fcompany"
      vararray(2) = "fzip"
      vararray(3) = "flocation"
      vararray(4) = "vcompany"
      vararray(5) = "vzip"
      vararray(6) = "vlocation"
      vararray(7) = "id"
      vararray(8) = "company"
      vararray(9) = "street"
      vararray(10) = "zip"
      vararray(11) = "location"
      vararray(12) = "ID"
      vararray(13) = "Firma"
      vararray(14) = "Strasse"
      vararray(15) = "PLZ"
      vararray(16) = "Ort"
     Case else
      'Response.Write "3"
      'Response.Write vartable
      'Request.QueryString (vartable)
      vararray(0) = "tbl_contact"
      vararray(1) = "fname"
      vararray(2) = "ffirstname"
      vararray(3) = "fzip"
      vararray(4) = "vname"
      vararray(5) = "vfirstname"
      vararray(6) = "vzip"
      vararray(7) = "id"
      vararray(8) = "name"
      vararray(9) = "firstname"
      vararray(10) = "zip"
      vararray(11) = "location"
      vararray(12) = "ID"
      vararray(13) = "Vorname"
      vararray(14) = "Name"
      vararray(15) = "PLZ"
      vararray(16) = "Ort"
    end Select%>
     
    <%
     
    dim vname ' ---
    dim vfirstname ' ---
    dim vzip ' ---
    dim vcompany ' ---
    dim vlocation ' ---
     
    dim counter ' ---
    counter = 1
     
    dim intpagecounter
    intpagecounter = 1
    dim pagesize ' --- Definieren der Seitengröße (Anzahl Datensätze pro Seite)
    pagesize = 5
    dim actpage
    actpage = Request("PN")
     
    'Response.Write vararray(1)%><br><%
    'Response.Write vararray(2)%><br><%
    'Response.Write vararray(3)%><br><%
    vararray(4) = Request(vararray(1))
    if vararray(4) <> "" Then 
        strCond = "and " & vararray(8) & " like " & chr(34) & "%" & vararray(4) & "%" & chr(34)
    End if
    vararray(5) = Request(vararray(2))
    if vararray(5) <> "" Then 
        strCond = strCond & " and " & vararray(9) & " like " & chr(34) & "%" & vararray(5) & "%" & chr(34) 
    End if
    vararray(6) = Request(vararray(3))
    if vararray(6) <> "" Then 
        strCond = strCond & " and " & vararray(10) & " like " & chr(34) & vararray(6) & "%" & chr(34) 
    End if
    'Response.Write vararray(1)%><br><%
    'Response.Write vararray(2)%><br><%
    'Response.Write vararray(3)%><br><%
    'Response.Write strCond %><br><%
    set ors = CreateObject("ADODB.RECORDSET") ' --- ors = objetrecordset
    set ocn = CreateObject("ADODB.Connection") ' --- ocn = objectconnect
    ors.PageSize = pagesize
    ors.CacheSize = pagesize
    ocn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.MapPath(".") & "\db\adb.mdb;"'Verbindung zur Datenbank wird erstellt
    ors.open "Select * from " & vartable & " where 1=1 " & strCond & " order by ID ",ocn,3,3
    if actpage = "" or not isnumeric(actpage) or cint(actpage) > cint(ors.PageCount) then
    actpage = 1
    end if
    dim datarec
    datarec = ors.RecordCount
    dim maxpage
    maxpage = fix(datarec/pagesize)
    if (maxpage*pagesize) < datarec then maxpage = maxpage + 1
    if counter > maxpage then counter = maxpage 
    %>
    <%
    sub arrowleft
     if cint(actpage) <= 1 then
      response.Write Server.HTMLEncode("<<")
     else
      Response.Write "<a href='list.asp?PN=" & actpage - 1 &  "&" &vararray(1) & "=" & Request(vararray(1)) &  "&" &vararray(2) & "=" & Request(vararray(2)) &  "&" &vararray(3) & "=" & Request(vararray(3)) & "&vtable=" & vartable & "'> " & Server.HTMLEncode("<<") & "</a>"
     end if
    end sub
     
    sub arrowright
     if cint(actpage) < cint(maxpage) then
         Response.Write "<a href='list.asp?PN=" & actpage + 1 & "&" & vararray(1) & "=" & Request(vararray(1)) & "&" & vararray(2) & "=" & Request(vararray(2)) &  "&" &vararray(3) & "=" & Request(vararray(3)) & "&vtable=" & vartable & "'> " & Server.HTMLEncode(">>") & "</a>"
     else
         response.Write Server.HTMLEncode(">>")
     end if
    end sub
     
    sub sitenumber
     for intpagecounter = 1 to ors.PageCount
      if cint(intpagecounter) = cint(actpage) then
       Response.Write intpagecounter & ""
      else
       Response.Write "<a href='list.asp?PN=" & intpagecounter &  "&" & vararray(1) & "=" & Request(vararray(1)) &  "&" & vararray(2) & "=" & Request(vararray(2)) &  "&" & vararray(3) & "=" & Request(vararray(3)) & "&vtable=" & vartable & "'> " & intpagecounter & " </a>"
      end if
     next
    end sub
    %>
    <%
    if not ors.EOF then
     ors.AbsolutePage = actpage
    end if
    %>
    <HTML>
    <HEAD>
    <META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
    </HEAD>
    <BODY>
    <table border=1 align=center>
    <tr>
    <td colspan="9">Adressliste; Seite <%=actpage%>; Anzahl Datensätze: <%=datarec%>; <%=maxpage%></td>
    </tr>
    <tr>
     <td>Check</td>
        <td><%=vararray(12)%></td>
        <td><%=vararray(13)%></td>
        <td><%=vararray(14)%></td>
        <td><%=vararray(15)%></td>
        <td><%=vararray(16)%></td>
        <td>Detail</td>
        <td>Editieren</td>
        <td>Löschen</td>
    </tr>
    <%
    if ors.RecordCount > 0 then
        do while not ors.EOF and counter <= pagesize%>
            
            <tr>
       <td>
       <input type="checkbox" name="Auswahl" value="Check">
       </td>
                <td>
                <%=ors("" & vararray(7) & "")%>&nbsp;
                </td>
                <td>
                <%=ors("" & vararray(9) & "")%>&nbsp;
                </td>
                <td>
                <%=ors("" & vararray(8) & "")%>&nbsp;
                </td>
                
                <%'=ors("street")%>
                <%'=ors("number")%>
                
                <td>
                <%=ors("" & vararray(10) & "")%>&nbsp;
                </td>
                <td>
                <%=ors("" & vararray(11) & "")%>&nbsp;
                </td>
                
                <%'=ors("phone")%>
                <%'=ors("fax")%>
                <%'=ors("e_mail")%>
                
                <td>
                <a href="contact.asp?ident=<%=ors("" & vararray(7) & "")%>&vtable=<%=vartable%>" target="Edit">Detail</a>
                </td>
                <td>
       <a href="edit.asp?ident=<%=ors("" & vararray(7) & "")%>&vtable=<%=vartable%>" target="Edit">Editieren</a>
                </td>
                <td>
                <a href="delete.asp?ident=<%=ors("" & vararray(7) & "") & vararray(1) & "=" & Request(vararray(1)) & vararray(2) & "=" & Request(vararray(2)) & vararray(3) & "=" & Request(vararray(3))%>&vtable=<%=vartable%>" onClick="return confirm('Wirklich Löschen?')">Löschen</a>
                </td>
            </tr>
            <%counter = counter + 1
            ors.MoveNext
        loop
    else
        response.Redirect "ask.asp" 'Sollte die Abfrage keinen geeigneten Wert finden wird die Seite neu geladen.
    end if
    %>
    </table>
    <table align=center>
     <tr>
      <td>
      <%
      arrowleft
      %>
      </td>
      <td>
      <%
      sitenumber
      %>
      </td>
      <td>
      <%
      arrowright
      %>
      </td>
     </tr>
    </table>
    <br>
    <br>
    <center><%Response.Write "<a href='select.asp?=&vararray(1)=" & Request("vararray(1)") & "&vararray(2)=" & Request("vararray(2)") & "&vararray(3)=" & Request("vararray(3)") & "'>Tabellenauswahl</a>" ' target='_parent'%> - 
    <%Response.Write "<a href='ask.asp?=&vararray(1)=" & Request("vararray(1)") & "&vararray(2)=" & Request("vararray(2)") & "&vararray(3)=" & Request("vararray(3)") & "'>Neue Abfrage starten</a>" ' target='_parent'%>
    </center>
    <%ors.Close
    set ors = nothing
    ocn.Close
    set ocn = nothing
    %>
    </BODY>
    </HTML>

    edit.asp:

    Code asp:
    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
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    
    <%@ Language=VBScript %>
    <%
    dim nID
    dim vartable
    dim vararray
    nID = Request("ident") ' mitgeliederte ID
    vartable = Request("vtable") ' mitgelieferter Tabellenname
    set ors = CreateObject("ADODB.RECORDSET") 'ors = objetrecordset
    set Ocn = CreateObject("ADODB.Connection") 'ocn = objectconnect
    ocn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.MapPath(".") & "\db\adb.mdb;"'Verbindung zur Datenbank wird erstellt
    ors.Open "Select * from " & vartable &  " where id= " & nID,ocn,1,3 'Abfrage
    vararray = split(space(ors.Fields.count)," ") 
    textfldvararray = vararray
    i = 0 ' i wird als 0 definiert
     
    for each fld in ors.Fields ' for each...next-Schlaufe fld = ein Feld
     vararray(i) = fld.value ' Feldinhalt ist Variabler Array 
     textfldvararray(i) = "TBOX_" & fld.Name ' TBOX_Feldname ist Variabler Textfeldarray 
     i = i + 1 ' Zähler
    next
     
    if Request("Save") <> ""  then
     i = 0 
     for each fld in ors.Fields
      if i > 0 then
      'on error resume next 
      'ors.Fields(fld.name) = request(textfldvararray(i))
      'if err <> 0 then
      ' Response.Write fld.name
      ' Response.End  
      'End if 
      'on error goto 0
      End if
      i = i + 1
      
     next
     ors.Update 
     
     Response.Redirect "list.asp?" & Request.QueryString()
    end if
     
    %>
    <HTML>
     <HEAD>
     <META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
     </HEAD>
     <BODY><form target="Liste" action="edit.asp" method="post" id=form1 name=form1>
      <table border=1 align=center>
       <%=Request.QueryString()%><br>
       <%=vartable%>
       <%
       i = 0 
       for each fld in ors.Fields ' for each...next-Schlaufe
         if i > 0 then ' %>
       <tr>
        <td><%=Fld.name%></td>
        <td><input type="text" value="<%=vararray(i)%>"  name="<%=textfldvararray(i)%>"></td>
       </tr>
        
       <%
       End if 
       i = i + 1
       Next%>
       <tr>
        <td colspan="2" align="center"><input type="submit" value="Ändern" id="submit1" name="Save">
        <input type="hidden" value="<%=nID%>"  name="ident">
        <input type="hidden" value="<%=vartable%>" name="vtable">
        </td>
       </tr>
      </table></form>
     </BODY>
    </HTML>
    <%ors.Close
    set ors = nothing
    ocn.Close
    set ocn = nothing
    %>

    list.asp ist wie ihr sicher seht für die Auflistung einer Tabelle zuständig und edit.asp für die Editierung! (Luzie sollte list.asp noch kennen... )

    Nun will ich einen Datensatz editieren, aber es kommt nur dieser Fehler:


    Microsoft JET Database EngineFehler "80040e14'
    Syntaxfehler in FROM-Klausel. /list.asp, line 119

    Ich hab schon alles mögliche versucht, aber keine Lösung gefunden... könnt ihr mir helfen?
     

  2. #2
    Registriert seit
    Aug 2003
    Ort
    Arnsberg, Germany, Germany
    Beiträge
    1.066
    Hi

    vararray enthält keinen Wert, deshalb vermutlich der Fehler wo auch immer.
    Du hast vararray mit 16 Postionen initialisiert und die werden erwartet, aber case "mitarbeiter" hat sie nicht.

    Beschreib Dein Problem mal etwas näher, evtl gibts eine andere Lösung.
     
    liebe Grüße, die Luzie

  3. #3
    Avatar von Torgath
    Torgath Torgath ist offline Mitglied Silber
    Registriert seit
    Feb 2005
    Beiträge
    84
    1. Hab ich mein Problem gestern spät abends noch gelöst... toll... wenn ich kurz vor dem einschlafen bin so um 12.30 bin ich am produktivsten... *schlagtmichtot!*
    Aber dazu gleich mehr...

    2. Der case "mitarbeiter" war bisher nie relevant und auch nicht in Betrieb... hab da wohl vergessen dies zu sagen. sorry... meine Probleme bezogen sich bisher immer nur auf "kunden" oder "kontakte"...

    3. Das Problem war die Weiterleitung der Variable von edit.asp auf list.asp und somit die endgültige Speicherung...
    Gelöst wurde dies dadurch, das ich auf Zeile 39 von edit.asp
    Response.Redirect "list.asp?" & Request.QueryString()
    in
    Response.Redirect "list.asp?vtable=vartable"
    änderte...
     

Ähnliche Themen

  1. Antworten: 1
    Letzter Beitrag: 03.02.10, 10:53
  2. Editieren beim DataGrid funktioniert nicht!
    Von rainerdam im Forum .NET Archiv
    Antworten: 1
    Letzter Beitrag: 13.01.05, 12:43
  3. Beim editieren alte Daten in Textfeldern
    Von Black Crow im Forum PHP
    Antworten: 14
    Letzter Beitrag: 07.01.05, 19:25
  4. Problem beim Editieren?
    Von vodka im Forum PHP
    Antworten: 3
    Letzter Beitrag: 09.07.04, 15:45