ERLEDIGT
JA
JA
ANTWORTEN
4
4
ZUGRIFFE
1041
1041
EMPFEHLEN
-
22.06.05 09:29 #1Meitli Tutorials.de Gastzugang
Hi Zusammen
Ich hab ein grösseres Projekt und sitzte seit Stunden am gleichen Problem.
Es lassen sich keine Daten aus einem Formular in die Datenbank eintragen.
Das Projekt: Es gibt verschiedene Kurse, welche Unterlagen verwenden, diese Unterlagen werden an einem Ort gespeichert. In folgendem File werden zuerst die Unterlagen, welche schon dem Kurs zugeordnet sind ausgegeben. Das funktioniert, dass heisst auch die Datenbankverbindung funktioniert. Unter der Ausgabe befindet sich eine Form, in welcher ich eine weitere vorhandene Unterlagen hinzufügen kann. Die vorhanden Daten werden in diesem Auswahlfenster angezeigt.
Jetzt zum Probelm: Wenn ich auf "Hinzufügen" klicke passiert nichts, ausser das die Seite neu geladen wird.
Zum Aufbau der Datenbank: In der Tabelle Kursunterlagen wird die Fremdschlüssel KursID und UnterlagenID eingetragen. So können mehrere Kurse die gleiche Unterlagen verwenden, aber auch ein einzelner Kurs kann mehrer Unterlagen verwenden.
Der Formularcode:
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
<form name="form1" method="post" action=""> <table width="100%" border="0" cellspacing="1" bordercolor="#CCCCCC" ID="Table6"> <tr bgcolor="#B7C2D0"> <td width="25%"><font face="Arial, Helvetica, sans-serif" size="2"><b>Unterlagen: </b></font></td> <td width="75%"> <font face="Arial, Helvetica, sans-serif" size="2"> <select name="sUnter" ID="Select4"> <option value="no" selected> <% 'Unterlagen in Auswahlmenu einlesen %> </option> <% Set rs = KPLcon.Execute("SELECT * FROM Unterlagen") do until rs.EOF%> <option value="<%response.write(rs("UnterlagenID"))%>"> <%response.write(rs("Unterlagen"))%> <%response.write(rs("Speicherort"))%> </option> <%rs.MoveNext loop rs.close %> </select> </font></td> </tr> <tr bgcolor="#B7C2D0"> <td width="25%"> <font face="Arial, Helvetica, sans-serif" size="2"> <input type="hidden" name="KursID" value=<%Response.Write(Request("KursID"))%> ID="Hidden1"> </font></td> <td width="75%"> <font face="Arial, Helvetica, sans-serif" size="2"> <input type="submit" name="Submit" value="Übernehmen" ID="Submit1"> </font></td> </tr> </table> </form>
Der Einfügecode:
Code :1 2 3 4 5
if Request("action") = "new" then Set rs = KPLcon.Execute("INSERT INTO Kursunterlagen (KursID, UnterlagenID) VALUES ('" & Request("KursID") & "', '" & Request("UnterlagenID") & "')") end if
Wäre echt froh wenn mir jemand helfen könnte.
Liebe Grüsse
Meitli
-
Hi
habe den Scriptcode überflogen aber ich sehe kein Feld namens action und auch nicht Unterlagenid
Ferner kommt es beim insert darauf an, ob kursid bzw. Unterlagenid Felder vom type Integer sind. Dann nämlich gehören die Hochkomma weg (Access)
Versuchs mal so:
Code :1 2 3 4 5
if Request.Form.Count>0 then Set rs = KPLcon.Execute("INSERT INTO Kursunterlagen (KursID, UnterlagenID) VALUES (" & Request.Form("KursID") & ", " & Request.Form("sUnter") & ")") end ifliebe Grüße, die Luzie
-
22.06.05 14:38 #3Meitli Tutorials.de Gastzugang
Es ist nicht der ganze Code vorhanden! Dieser wäre zu lang um zu posten!
Aber dein Code hat funktioniert. Danke viel mal! Endlich kann ich wieder weiterarbeiten!
P.S. Hast du auch gerade eine Lösung für das Löschen?
Das ist der Löschlink:
Code :1 2 3 4 5 6 7
<td width="10%"> <div align="center"><font face="Arial, Helvetica, sans-serif" size="2"> <a href="kspeicherort.asp?action=del&KurstageID=<%response.write(rs("UnterlagenID"))%>&KursID=<%response.write(Request("KursID"))%>" onClick="return sure()"> Löschen </a>< /div> </td>
Das ist der Löschbefehl:
Code :1 2 3
if Request("action") = "del" then Set rsdel = KPLcon.Execute("DELETE FROM Kursunterlagen WHERE KursunterlagenD=" & Request("KursunterlagenID") & "") end if
Mit diesem Befehl kommt immer der selbe Fehler nach dem ausführen:
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC Microsoft Access Driver] Syntaxfehler (fehlender Operator) in Abfrageausdruck 'UnterlagenID='.Geändert von Meitli (22.06.05 um 14:51 Uhr) Grund: Hab was vergessen...
-
Hi
das ist eigenartig.
Die Meldung besagt, dass in der Where-Bedingung des Delete-Statements kein Wert übergeben wird.
Dieses heißt in Deinem Script KursunterlagenD=" in der Fehlermeldung aber UnterlagenID=.
Das lässt jetzt irgendwie die Vermutung aufkommen, dass sich die Meldung auf ein anderes Script bezieht oder Du hast es geändert. Wie auch immer.
Du rufst den Request aus dem QueryString ("KursunterlagenID") im Statement auf. Aber dieser Parameter ist in Deiner URL nicht zu finden. Dort heißt er vermutlich KurstageID.
Du musst einfach mal etwas sauberer arbeiten.
Wenn Du einen Parameter aus einer URL übergibst, sollstest Du dies dem Server mitteilen und zwar mir Request.QueryString("wert"). Genauso verhält es sich mit dem Parameter aus dem Formular Request.Form("wert"). Gibst Du nur den Request() an, dann geht das auf die Performance, denn er sucht jetzt alle möglichen Konstellationen durch von Cookie bis zu den ServerVarialben.liebe Grüße, die Luzie
-
23.06.05 08:35 #5Meitli Tutorials.de Gastzugang
Es funktioniert! Ich habe ein paar Mal zu viel UnterlagenID verwendet, wo eigentlich KursunterlagenID hätte hinkommen sollen.
Das mit dem Code ist nicht meine Schuld! Ich bearbeite nur das Projekt, dass heisst ich mach einige Erweiterungen. Und mein Vorgänger hat seinen Code nicht besonders schön geschrieben. Und wenn ich dann mal etwas kopier, kann es schon vorkommen das ich ein Fehler auftaucht, oder ich einen Fehler in der bisherigen Anwendung finde.
Sorry! Und nocheinmal danke. Du hast mir sehr geholfen!
Ähnliche Themen
-
Daten in Datenbank eintragen
Von $TîM$ im Forum Relationale DatenbanksystemeAntworten: 7Letzter Beitrag: 27.04.06, 13:55 -
Daten aus einer Form in die Access-Datenbank eintragen
Von Meitli im Forum ASPAntworten: 3Letzter Beitrag: 28.06.05, 15:03 -
Daten mit Form in Datenbank eintragen
Von Hampfibius im Forum PHPAntworten: 1Letzter Beitrag: 12.06.05, 13:46 -
Daten in einer Access datenbank über Formular eintragen
Von bomber080674 im Forum .NET ArchivAntworten: 14Letzter Beitrag: 21.04.05, 20:55 -
Daten in datenbank eintragen
Von AndreBrueck im Forum .NET ArchivAntworten: 3Letzter Beitrag: 17.09.04, 14:02





Zitieren
Login





