ERLEDIGT
JA
JA
ANTWORTEN
14
14
ZUGRIFFE
10281
10281
EMPFEHLEN
-
Hab ein kleines Problem...
Ich will mittels VBScript eine kleine SQL-Abfrage machen, was eigentlich nicht weiter schwierig wäre, wenn nicht drei Frage-Felder zur Verfügung stehen würden...
Hier mein 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 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
<%@ Language=VBScript %> <% dim vname dim vfirstname dim vplz vname = Request("fname") vfirstname = Request("ffirstname") vstreet = Request("fplz") set ors = CreateObject("ADODB.RECORDSET") 'ors = objetrecordset set Ocn = CreateObject("ADODB.Connection") 'ocn = objectconnect ocn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\ad.mdb;"'Verbindung zur Datenbank wird erstellt ors.Open "Select * from adressbook where name = " & chr(34) & vname & chr(34) " and firstname = " & chr(34) & vfirstname & chr(34) " and plz = " & chr(34) & vplz & chr(34),ocn,1,1 %> <HTML> <HEAD> <META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0"> </HEAD> <BODY> <table border=1> <tr> <th bgcolor="#b9b9b9" colspan="9">Adressliste</th> </tr> <tr> <td>Vorname</td> <td>Name</td> <td>Strasse</td> <td>Nummer</td> <td>PLZ</td> <td>Ort</td> <td>Telefon</td> <td>Fax</td> <td>E-Mail</td> </tr> <% while not ors.EOF Response.Write("<tr>") Response.Write("<td>") Response.Write ors("firstname") Response.Write("</td>") Response.Write("<td>") Response.Write ors("name") Response.Write("</td>") Response.Write("<td>") Response.Write ors("street") Response.Write("</td>") Response.Write("<td>") Response.Write ors("number") Response.Write("</td>") Response.Write("<td>") Response.Write ors("plz") Response.Write("</td>") Response.Write("<td>") Response.Write ors("location") Response.Write("</td>") Response.Write("<td>") Response.Write ors("phone") Response.Write("</td>") Response.Write("<td>") Response.Write ors("fax") Response.Write("</td>") Response.Write("<td>") Response.Write ors("e-mail") Response.Write("</td>") Response.Write("</tr>") ors.MoveNext wend %> </table> </BODY> </HTML>
Mein Problem ist nun diese Fehlermeldung:
Fehlertyp:
Kompilierungsfehler in Microsoft VBScript (0x800A0401)
Anweisungsende erwartet
/Project1/list.asp, Zeile 12, Spalte 78
ors.Open "Select * from adressbook where name = " & chr(34) & vname & chr(34) " and firstname = " & chr(34) & vfirstname & chr(34) " and plz = " & chr(34) & vplz & chr(34),ocn,1,1
-----------------------------------------------------------------------------^
Was genau ist falsch?
Danke für eine baldige Antwort...
MfG Torgath
-
Hi
hier fehlt noch ein Anführungszeichen
and plz = " & chr(34) & vplz & chr(34) & ",ocn,1,1
würd ich jetzt mal sagen
Alles hat ein Ende nur die ....liebe Grüße, die Luzie
-
Danke, hat geholfen, und hab unterdessen auch weiter daran gearbeitet:
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 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
<%@ Language=VBScript %> <% dim vname dim vfirstname dim vplz vname = Request("fname") if vname <> "" Then strCond = "and name = " & chr(34) & vname & chr(34) End if vfirstname = Request("ffirstname") if vfirstname <> "" Then strCond = strCond & " and firstname = " & chr(34) & vfirstname & chr(34) End if vplz = Request("fplz") if vplz <> "" Then strCond = strCond & " and plz = " & chr(34) & vplz & chr(34) End if set ors = CreateObject("ADODB.RECORDSET") 'ors = objetrecordset set Ocn = CreateObject("ADODB.Connection") 'ocn = objectconnect ocn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\ad.mdb;"'Verbindung zur Datenbank wird erstellt ors.Open "Select * from adressbook where 1=1 " & strCond ,ocn,1,1 %> <HTML> <HEAD> <META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0"> </HEAD> <BODY> <table border=1> <tr> <th bgcolor="#b9b9b9" colspan="9">Adressliste</th> </tr> <tr> <td>Vorname</td> <td>Name</td> <td>Strasse</td> <td>Nummer</td> <td>PLZ</td> <td>Ort</td> <td>Telefon</td> <td>Fax</td> <td>E-Mail</td> </tr> <% while not ors.EOF%> <tr> <td> <%=ors("firstname")%> </td> <td> <%=ors("name")%> </td> <td> <%=ors("street")%> </td> <td> <%=ors("number")%> </td> <td> <%=ors("plz")%> </td> <td> <%=ors("location")%> </td> <td> <%=ors("phone")%> </td> <td> <%=ors("fax")%> </td> <td> <%=ors("e-mail")%> </td> </tr> <%ors.MoveNext wend %> </table> </BODY> </HTML>
Nun habe ich ein weiteres anliegen... wie kriege ich es hin, dass nach dem ich 10 Datensätze ausgegeben habe (nehmen wir an es sind 35 Datensätze ingesammt) dass ganze unterbrochen wird und man unten weiter klicken muss, damit die nächsten 10 Datensätze kommen?
-
Hi
am performantesten ist die Methode der Abfrage über die SQL.
Hier ein erstklassiges Beispiel:
http://www.aspheute.com/artikel/20000403.htmliebe Grüße, die Luzie
-
Ziemlich gut, was da steht, und ich kanns zum Teil sogar nachvollziehen, aber ich kriegs nicht auf meinen Code zugeschnitten...
-
Jetzt weiss ich, wie ichs haben muss... es sollte quasi so aussehen, wie wenn man bei Google was sucht und dann auf die zweite Seite geht...
Sprich, man soll vor und zurück gehen können, und dazwischen sollen zahlen sein, wieviele Seiten es gibt, also bei 35 z.B. 4...
Ich weiss nicht, wie ich dass machen soll...
-
Hallo
schau mal Hierliebe Grüße, die Luzie
-
Bin jetzt schon einiges weiter, aber hab immer noch ein Problem! Hier mein 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 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
<%@ Language=VBScript %> <% dim vname ' --- dim vfirstname ' --- dim vplz ' --- dim count ' --- count = 1 dim count1 ' --- dim c ' --- dim pagesize ' --- Definieren der Seitengröße (Anzahl Datensätze pro Seite) pagesize = 10 dim absolutepage absolutepage = Request("PN") vname = Request("fname") if vname <> "" Then strCond = "and name = " & chr(34) & vname & chr(34) End if vfirstname = Request("ffirstname") if vfirstname <> "" Then strCond = strCond & " and firstname = " & chr(34) & vfirstname & chr(34) End if vplz = Request("fplz") if vplz <> "" Then strCond = strCond & " and plz = " & chr(34) & vplz & chr(34) End if 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=D:\adb.mdb;"'Verbindung zur Datenbank wird erstellt ors.Open "Select * from adressbook where 1=1 " & strCond & " order by ID ",ocn,1,1 if absolutepage = "" or not isnumeric(absolutepage) or cint(absolutepage) > cint(ors.PageCount) then absolutepage = 1 end if ors.AbsolutePage = absolutepage%> <HTML> <HEAD> <META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0"> </HEAD> <BODY> <table border=1 align=center> <tr> <th bgcolor="#b9b9b9" colspan="9">Adressliste</th> </tr> <tr> <td>Vorname</td> <td>Name</td> <td>Strasse</td> <td>Nummer</td> <td>PLZ</td> <td>Ort</td> <td>Telefon</td> <td>Fax</td> <td>E-Mail</td> </tr> <% do while not ors.EOF and intcounter <= pagesize%> <tr> <td> <%=ors("firstname")%> </td> <td> <%=ors("name")%> </td> <td> <%=ors("street")%> </td> <td> <%=ors("number")%> </td> <td> <%=ors("plz")%> </td> <td> <%=ors("location")%> </td> <td> <%=ors("phone")%> </td> <td> <%=ors("fax")%> </td> <td> <%=ors("e-mail")%> </td> </tr> </table> <% count = count + 1 ors.MoveNext loop for intpagecounter = 1 to ors.PageCount if cint(intpagecounter) = cint(absolutpage) then Response.Write intpagecounter & "" else Response.Write "<a href=""list.asp?PN=" & intpagecounter & """>" & intpagecounter & "</a> " end if next %> <table align=center> <tr> <td> <a href="list.asp"><<</a> </td> <%for c=1 to count1%> <td> <a href="list.asp"><%=c%></a> </td> <%next%> <td> <a href="list.asp">>></a> </td> </tr> </table> <%ors.Close set ors = nothing ocn.Close set ocn = nothing %> </BODY> </HTML>
Wenn ichs ausführen will, kommt diese Meldung:
Fehlertyp:
ADODB.Recordset (0x800A0CC1)
Ein Objekt, das dem angeforderten Namen oder dem Ordinalverweis entspricht, kann nicht gefunden werden.
/Project2/list.asp, line 72
Irgendwie scheint er nur name und plz rauslesen zu können. Warum? Ich verstehs einfach nicht und finde dazu im Moment auch gar nichts...
-
Der Fehler wurde gefunden! Hab die falsche DB gekriegt...

Dafür hab ich ein 'neues' Problem mit dem selben Code...
Wenn ich die Seite aufrufe, kommen auf der 'ersten' Seite statt 10 alle 12 Datensätze die ich habe heraus und es gibt eine zweite Seite mit den letzten beiden Datensätze nochmals...
-
Hallo
dieses http://www.aspfaq.de/index.asp?RID=2...bsolute&OSFI=1 Script würde ich zur Vorlage nehmen und dann Deine Tabellen dahingehend anpassen. Dann kann nix schief gehn
liebe Grüße, die Luzie
-
Hab ich schon gemacht... *g* Deshabl sieht es nun so aus, wie es aussieht...
-
das glaube ich nicht, dass Du das gemacht hast. Du hast das Script von Falz in Deines angepasst. Beim Umschreiben von Objektnamen und Variablen passieren da Fehler.
Zitat von Torgath
Du fragst in der do-while-Schleif intcounter ab und nirgends wird der Zähler aktiviert.
Du setzt die vb-Konstanten auf die Werte 1,1 fest, wobei im Script eindeutig 3,3 steht.
Count würde ich nicht als Variablennamen einsetzen. das hat in vbscript (auch in anderen Scriptsprachen) eine eigene Bedeutung und das könnten Fehler geben..
Der Table-End-Tag liegt noch in der While-Schleife
Die Suche wird nicht über die Blätterlinks fortgesetzt.
und und und ...
Hier hättest Du Dir echt Arbeit sparen können, wenn Du das Script als Vorlage genommen hättest und Deine Abfrage dort angepasst hättest.
Ich habe mir lang überlegt, ob ich hier noch antworte. Es liegt oft an der Bequemlichkeit der User, sich das Scirpt nochmals zur Brust zu nehmen und es mit dem Original zu vergleichen.
liebe Grüße, die Luzie
-
Danke Luzie... hab versucht mir deine Kritik zu Herzen zu nehmen und deshalb auch möglichst alleine daran gearbeitet.
Mag zwar noch nicht 100% fehlerfrei sein, finde aber bisher keine Fehler mehr und bin deshalb ganz zufrieden.
Hier die mehr oder weniger fertige Version:
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 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
<%@ Language=VBScript %> <% dim vname ' --- dim vfirstname ' --- dim vplz ' --- dim counter ' --- counter = 1 dim intpagecounter intpagecounter = 1 'dim counter1 ' --- 'dim c ' --- dim pagesize ' --- Definieren der Seitengröße (Anzahl Datensätze pro Seite) pagesize = 5 dim actpage actpage = Request("PN") vname = Request("fname") if vname <> "" Then strCond = "and name = " & chr(34) & vname & chr(34) End if vfirstname = Request("ffirstname") if vfirstname <> "" Then strCond = strCond & " and firstname = " & chr(34) & vfirstname & chr(34) End if vplz = Request("fplz") if vplz <> "" Then strCond = strCond & " and plz = " & chr(34) & vplz & chr(34) End if 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=D:\adb.mdb;"'Verbindung zur Datenbank wird erstellt ors.Open "Select * from adressbook 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 & """>" & Server.HTMLEncode("<<") & "</a>" end if end sub sub arrowright if cint(actpage) < cint(maxpage) then Response.Write "<a href=""list.asp?PN=" & actpage + 1 & """>" & 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 & """> " & 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> <th bgcolor="#b9b9b9" colspan="12">Adressliste; Seite <%=actpage%>; Anzahl Datensätze: <%=datarec%>; <%=maxpage%></th> </tr> <tr> <td>ID</td> <td>Vorname</td> <td>Name</td> <td>Strasse</td> <td>Nummer</td> <td>PLZ</td> <td>Ort</td> <td>Telefon</td> <td>Fax</td> <td>E-Mail</td> <td>Editieren</td> <td>Löschen</td> </tr> <% if ors.RecordCount > 0 then do while not ors.EOF and counter <= pagesize%> <tr> <td> <%=ors("id")%> </td> <td> <%=ors("firstname")%> </td> <td> <%=ors("name")%> </td> <td> <%=ors("street")%> </td> <td> <%=ors("number")%> </td> <td> <%=ors("plz")%> </td> <td> <%=ors("location")%> </td> <td> <%=ors("phone")%> </td> <td> <%=ors("fax")%> </td> <td> <%=ors("e-mail")%> </td> <td> <%response.Write "<a href=""edit.asp"">"%>Editieren<%response.Write "</a>"%> </td> <td> <%response.Write "<a href=""delete.asp"">"%>Löschen<%response.Write "</a>"%> </td> </tr> <%counter = counter + 1 ors.MoveNext loop else response.Redirect "default.asp" end if %> </table> <table align=center> <tr> <td> <% 'response.Write "<a href=""list.asp"">" & Server.HTMLEncode("<<") & "</a>" arrowleft %> </td> <td> <% sitenumber %> </td> <td> <% 'response.Write "<a href=""list.asp"">" & Server.HTMLEncode(">>") & "</a>" arrowright %> </td> </tr> </table> <br> <br> <center><a href="default.asp">Start</a></center> <%ors.Close set ors = nothing ocn.Close set ocn = nothing %> </BODY> </HTML>
-
Huhu
die Kritik ist nicht bös gemeint, aber ich habe manchmal das Gefühl, als wenn manche User einfach etwas zu bequem werden
Die Auslagerung der Blätterlinks in Prozeduren finde ich persönlich sehr gut. Ein kleiner Schritt in Richtung variable sein.liebe Grüße, die Luzie
-
Ich nahms auch nicht als böse auf! Ich nahms wie gesagt als Kritik auf und versuchte daraus das Beste zu machen!

Ich nehme die Sache mit den Blätterlinks übrigens als Lob auf!
Geändert von Torgath (06.04.06 um 09:47 Uhr)
Ähnliche Themen
-
Mysql Abfrage mittels PHP
Von Dunkelelf9 im Forum PHPAntworten: 3Letzter Beitrag: 08.10.09, 09:46 -
Datenbankabfrage mittels VBScript
Von Hawkings im Forum Visual Basic 6.0Antworten: 0Letzter Beitrag: 30.10.07, 11:47 -
Input Abfrage mittels InputHandler in Ant
Von ds3650 im Forum JavaAntworten: 0Letzter Beitrag: 26.07.07, 14:08 -
Tabellen auslesen mittels vbscript möglich?
Von merlin23 im Forum Visual Basic 6.0Antworten: 0Letzter Beitrag: 17.01.05, 18:53 -
Hilfe bei Date-Abfrage aus sql mittels php...
Von susan_freise im Forum PHPAntworten: 3Letzter Beitrag: 10.11.04, 21:12





Zitieren
Login





