tag:forum.selfhtml.org,2005:/self ADO - ASP und Access - Datenbankeintrag mehrfach duplizieren – SELFHTML-Forum 2019-08-05T07:05:37Z https://forum.selfhtml.org/self/2019/aug/02/ado-asp-und-access-datenbankeintrag-mehrfach-duplizieren/1754456#m1754456 supernewb 2019-08-02T06:34:23Z 2019-08-02T06:34:23Z ADO - ASP und Access - Datenbankeintrag mehrfach duplizieren <p>hi ich suche einen Weg in meiner Datenbank einen Eintrag zu duplizieren. Das ginge jetzt grundlegend ganz einfach mit einem INSERT. Aber ich möchte ihn gerne x-mal kopieren? Es handelt sich um eine Inventurdatenbank, in der ich Hardware aufliste. Wenn ich nun beispielsweise 20 Laptops geliefert bekomme und diese übers WebIF in die Datenbank eintragen möchte, würde ich gerne einen Eintrag erstellen und diesen dann 19 mal kopieren, sodass ich nur noch Daten ändern muss die die entsprechenden Geräte einzigartig machen (Seriennummer, MAC/IP Adresse, etc.. )</p> <p>Da fehlt mir jetzt die Idee, wie ich z.B. auf Knopfdruck 19 INSERTs machen kann</p> <p>Habt ihr einen Vorschlag für mich ?</p> <p>Danke ;)</p> <p>Grüße</p> https://forum.selfhtml.org/self/2019/aug/02/ado-asp-und-access-datenbankeintrag-mehrfach-duplizieren/1754457#m1754457 dedlfix 2019-08-02T06:40:10Z 2019-08-02T06:40:10Z ADO - ASP und Access - Datenbankeintrag mehrfach duplizieren <p>Tach!</p> <blockquote> <p>Da fehlt mir jetzt die Idee, wie ich z.B. auf Knopfdruck 19 INSERTs machen kann</p> </blockquote> <p>Ein Insert in einer Schleife, die 19 Durchläufe hat. Sowas muss ja nicht super ausgeklügelt sein. Ein Computer macht auch stupide Wiederholarbeit ohne zu murren. Zur Not geht auch ein Insert-Statement 19x kopiert. Kopieren ist aber schlecht wenn man mal eine Änderung vornehmen möchte.</p> <p>dedlfix.</p> https://forum.selfhtml.org/self/2019/aug/02/ado-asp-und-access-datenbankeintrag-mehrfach-duplizieren/1754458#m1754458 supernewb 2019-08-02T06:49:45Z 2019-08-02T06:49:45Z ADO - ASP und Access - Datenbankeintrag mehrfach duplizieren <p>hy dedlfix und danke für deine Antwort :)</p> <p>Die 19 war jetzt freilich nur ein Beispiel. Der echte Wert müsste aus einem Textfeld geholt werden. Mal sind es 20 Notebooks, und mal nur 4. Die Schleife wäre eine gute Idee. Lässt sich das im INSERT realisieren ?</p> <p>Wie könnte das aussehen? Bin da leider nicht so der Profi</p> https://forum.selfhtml.org/self/2019/aug/02/ado-asp-und-access-datenbankeintrag-mehrfach-duplizieren/1754460#m1754460 dedlfix 2019-08-02T06:57:38Z 2019-08-02T06:57:38Z ADO - ASP und Access - Datenbankeintrag mehrfach duplizieren <p>Tach!</p> <blockquote> <p>Die Schleife wäre eine gute Idee. Lässt sich das im INSERT realisieren ?</p> </blockquote> <p>Nein, die Schleife muss drumherum gebaut werden. Beim Programmieren zerlegt man üblicherweise das Problem in kleine Schritte und kombiniert diese dann für das gewünschte Ergebnis. Und so sind die Anweisungen auch meist aufgebaut, dass sie nicht alles selbst können, aber miteinander verwendet werden können.</p> <blockquote> <p>Wie könnte das aussehen? Bin da leider nicht so der Profi</p> </blockquote> <p>Das kann ich dir für Access nicht sagen, aber Schleifen sind grundlegendes Handwerkszeug, dazu findest du garantiert Beispiele im Netz.</p> <p>dedlfix.</p> https://forum.selfhtml.org/self/2019/aug/02/ado-asp-und-access-datenbankeintrag-mehrfach-duplizieren/1754463#m1754463 supernewb 2019-08-02T07:13:44Z 2019-08-02T07:37:34Z ADO - ASP und Access - Datenbankeintrag mehrfach duplizieren <p>ich hab's nun mal so versucht</p> <pre><code class="block">Dim i DO until i = Session("Eintraege") "INSERT INTO ...." Loop </code></pre> <p>Session("Eintraege") kommt aus einem input Feld</p> <p>Leider gibt es einen Syntaxfehler. Sowas hatte ich schon erwartet :D</p> https://forum.selfhtml.org/self/2019/aug/02/ado-asp-und-access-datenbankeintrag-mehrfach-duplizieren/1754469#m1754469 Tabellenkalk 2019-08-02T07:41:09Z 2019-08-02T07:41:54Z ADO - ASP und Access - Datenbankeintrag mehrfach duplizieren <p>Hallo,</p> <blockquote> <p>ich hab's nun mal so versucht</p> <pre><code class="block">Dim i DO until i = Session("Eintraege") "INSERT INTO ...." Loop </code></pre> <p>Session("Eintraege") kommt aus einem input Feld</p> <p>Leider gibt es einen Syntaxfehler. Sowas hatte ich schon erwartet :D</p> </blockquote> <p>Ich habe deinen Code-Schnipsel mal als solchen ausgezeichnet, ohne zu wissen, welche Sprache es ist.</p> <p>Deine Schleife benötigt einen Zähler (das <code>i</code>), der eben auch hochgezählt werden muss.</p> <p>Außerdem sollte die Abbruch-Bedingung (das <code>until</code>) auch als Vergleich notiert sein. Im Moment sieht es wie eine Zuweisung aus.</p> <p>Gruß<br> Kalk</p> https://forum.selfhtml.org/self/2019/aug/02/ado-asp-und-access-datenbankeintrag-mehrfach-duplizieren/1754470#m1754470 supernewb 2019-08-02T07:48:15Z 2019-08-02T07:50:14Z ADO - ASP und Access - Datenbankeintrag mehrfach duplizieren <p>hi kalk :)</p> <p>die sprache ist asp bzw vbscript. Datenbank ist access</p> <p>ich dachte auch das ich evtl was falsch hatte beim do until. Daher habe ich jetzt eine FOR schleife probiert Aber hier kommt das selbe raus :-/</p> <pre><code class="block language-vbscript">FOR i = 0 To Session("Eintraege") MM_editCmd.CommandText = "INSERT INTO ...." i = i + 1 Next </code></pre> <p>damit kommt zwar kein Fehler mehr, aber der INSERT Befehl wird nur 1x durchgeführt</p> https://forum.selfhtml.org/self/2019/aug/02/ado-asp-und-access-datenbankeintrag-mehrfach-duplizieren/1754471#m1754471 Tabellenkalk 2019-08-02T07:52:01Z 2019-08-02T07:52:01Z ADO - ASP und Access - Datenbankeintrag mehrfach duplizieren <p>Hallo,</p> <blockquote> <p>Aber hier kommt das selbe raus :-/</p> </blockquote> <p>Das ist dann der Zeitpunkt, debugging zu betreiben. Also Schritt für Schritt guggen, ob der Code das Erwartete tut. Da hat vermutlich sogar vbscript Tools dafür…</p> <p>Gruß<br> Kalk</p> https://forum.selfhtml.org/self/2019/aug/02/ado-asp-und-access-datenbankeintrag-mehrfach-duplizieren/1754487#m1754487 Rolf B 2019-08-02T08:39:15Z 2019-08-02T08:39:15Z ADO - ASP und Access - Datenbankeintrag mehrfach duplizieren <p>Hallo supernewb,</p> <p>du betreibst das doch nun schon eine ganze Weile, und bist immer noch so unbeholfen mit VBScript? Daran musst Du dringend arbeiten. Wie man Schleifen programmiert und Befehle voneinander abgrenzt, das ist absolutes Grundwissen. Kennst Du den ASP Teil von W3Schools?</p> <ol> <li> <p>Eine FOR Schleife zählt den Zähler für Dich automatisch, da musst Du ihn nicht selbst zählen (wenn Du es doch tust, würde die Schleife in Zweierschritten springen).</p> </li> <li> <p>Eine DO Schleife prüft nur eine Bedingung, da hättest Du selbst zählen müssen. Eine DO Schleife, wo Du nicht selbst zählst, läuft endlos. Die FOR-Schleife ist für deinen Zweck die einfacherere Lösung.</p> </li> <li> <p><code>DO until i = Session("Eintraege")</code> ist grundsätzlich richtig in VBScript. Der Einwand von Tabellenkalk, dass das wie eine Zuweisung aussähe und deswegen falsch wäre, gilt nur für Sprachen der C-Familie (wozu auch C#, Java und JavasSript gehören).</p> </li> <li> <p>Wenn in Session("Eintraege") die Anzahl von INSERTs steht, die ausgeführt werden sollen, dann darfst Du die FOR Schleife nicht bei 0 beginnen lassen. Beispielsweise lässt <code>FOR i=0 TO 3</code> die Schleife für i=0, 1, 2, 3 laufen, also 4 Durchläufe. Du musst mit i=1 beginnen. VB hat <a href="https://www.w3schools.com/asp/asp_looping.asp" rel="nofollow noopener noreferrer">6 Schleifenvarianten</a>, und man muss das Verhalten jeder einzelnen genau beachten, sonst hat man einen Durchlauf zu viel oder zu wenig.</p> </li> <li> <p>Der Steuerbefehl für eine Schleife und die Befehle in der Schleife sind zwei verschiedene Dinge, diese Befehle müssen voneinander getrennt werden. Das ist vermutlich der Syntaxfehler in</p> </li> </ol> <pre><code class="block bad language-vbs">Dim i DO until i = Session("Eintraege") "INSERT INTO ...." Loop </code></pre> <p>Entweder muss hinter dem Test ein Doppelpunkt kommen (neuer Befehl in der gleichen Zeile) oder der INSERT-Befehl muss in eine eigene Zeile.</p> <ol start="6"> <li>Du kannst nicht einfach einen SQL Befehl in Anführungszeichen notieren. Da musst Du, wie auch sonst, ein SQL-Statement erzeugen und ausführen. Aber ich nehme einfach mal an, dass Du Dir die Schreibarbeit sparen wolltest und nur das SQL notiert hast.</li> </ol> <p><em>Rolf</em></p> <div class="signature">-- <br> sumpsi - posui - clusi </div> https://forum.selfhtml.org/self/2019/aug/02/ado-asp-und-access-datenbankeintrag-mehrfach-duplizieren/1754486#m1754486 supernewb 2019-08-02T08:34:50Z 2019-08-02T08:34:50Z ADO - ASP und Access - Datenbankeintrag mehrfach duplizieren <p>mh, dann mach ich mich mal schlau</p> <p>wahrscheinlich aber wirds wohl einen workaround geben müssen</p> <p>danke kalk</p> https://forum.selfhtml.org/self/2019/aug/02/ado-asp-und-access-datenbankeintrag-mehrfach-duplizieren/1754496#m1754496 supernewb 2019-08-02T08:57:12Z 2019-08-02T08:57:12Z ADO - ASP und Access - Datenbankeintrag mehrfach duplizieren <p>Hallo Rolf (:</p> <p>Ja, dass stimmt wohl leider. Ich beschäftige mich immer nur alle jubeljahre damit Dann ist oft so viel Zeit dazwischen, dass ich das alt-gelernte schon wieder vergessen habe Ich hatte noch nie was mit Programmierung am Hut, und will das auch eigentlich gar nicht.</p> <p>Ich kann aber der Tatsache nichts entgegen tun, dass es wirklich toll ist eine solche Inventurliste (nur beispiel) selbst zu kreieren, genau so, wie es MIR am besten passt. daher ärgere ich mich selbst sehr, dass ich immer wieder in Schwierigkeiten komme. Wobei ich die letzten fünftausend probleme ohne SELFHTML lösen konnte :D</p> <p>Ich habe oft probleme mit den Syntaxen. Wie schreibt man wo was, wo darf ich das und wo nicht Einfache FOR Schleifen kenne und kann ich schon aus dem Scripting. Aber im ASP/VBSCRIPT/HTML Bereich ist das eben alles anders Datenbank ist übrigens ACCESS, kein SQL</p> <pre><code class="block language-vbscript">Dim zaehler zaehler = 1 MM_editCmd.CommandText = FOR zaehler = 1 To Session("Eintraege") "INSERT INTO ...." Next </code></pre> <p>So habe ich das jetzt aufgebaut, und erhalte einen syntaxfehler. mit sicherheit, da ich einen break nach MM_editCmd.CommandText = habe, ohne sofort den INSERT Befehl zu geben</p> <p>Deinen Hinweis mit dem Doppelpunkt habe ich leider nicht geschnallt ... Wo soll der hin ?!</p> <p>Sorry :/</p> <p>Und Danke</p> https://forum.selfhtml.org/self/2019/aug/02/ado-asp-und-access-datenbankeintrag-mehrfach-duplizieren/1754498#m1754498 Matthias Apsel matthias.apsel@selfhtml.org https://brückentage.info 2019-08-02T09:02:26Z 2019-08-02T09:02:26Z ADO - ASP und Access - Datenbankeintrag mehrfach duplizieren <p>Hallo supernewb,</p> <blockquote> <p>Datenbank ist übrigens ACCESS, kein SQL</p> </blockquote> <p>SQL bedeutet Structured Query Language. Das ist also die Sprache, in der (bzw. im passenden Dialekt) Anweisungen für dein Datenbanksystem geschrieben werden müssen. Auch Access versteht SQL, und zwar (mit Einschränkungen) SQL-92.</p> <p>Bis demnächst<br> Matthias</p> <div class="signature">-- <br> Pantoffeltierchen haben keine Hobbys.<br> ¯\_(ツ)_/¯ </div> https://forum.selfhtml.org/self/2019/aug/02/ado-asp-und-access-datenbankeintrag-mehrfach-duplizieren/1754501#m1754501 Tabellenkalk 2019-08-02T09:11:39Z 2019-08-02T09:11:39Z ADO - ASP und Access - Datenbankeintrag mehrfach duplizieren <p>Hallo,</p> <blockquote> <p>So habe ich das jetzt aufgebaut, und erhalte einen syntaxfehler.</p> </blockquote> <p>Du bekommst doch nicht nur „Syntaxfehler!“ vor den Latz geknallt, oder?</p> <blockquote> <p>mit sicherheit, da ich einen break nach MM_editCmd.CommandText = habe, ohne sofort den INSERT Befehl zu geben</p> </blockquote> <p>Zwei grundsätzliche Vorgehensweisen: Entweder in der Schleife ein langes Statement für alle Inserts zusammenbauen und dann anschließend ausführen<br> oder<br> innerhalb der Schleife jeweils ein Insert ausführen.</p> <p>Du scheinst irgendein Mittelding zu versuchen.</p> <p>Gruß<br> Kalk</p> https://forum.selfhtml.org/self/2019/aug/02/ado-asp-und-access-datenbankeintrag-mehrfach-duplizieren/1754532#m1754532 Rolf B 2019-08-02T11:22:32Z 2019-08-02T11:22:32Z ADO - ASP und Access - Datenbankeintrag mehrfach duplizieren <p>Hallo supernewb,</p> <p>ich weiß ja nicht, warum die anderen hier das nicht sehen...</p> <pre><code class="block language-vbs">Dim zaehler zaehler = 1 MM_editCmd.CommandText = FOR zaehler = 1 To Session("Eintraege") "INSERT INTO ...." Next </code></pre> <p>das ist ja sowas von Syntaxerror. CommandText ist eine Eigenschaft der ADODB.Command Objektes, dem musst Du einen String zuweisen, wo genau ein SQL Statement drin steht. Du kannst einer Eigenschaft keine Schleife zuweisen. Das Command könnte damit überhaupt nichts anfangen.</p> <p>Das muss andersrum gemacht werden: Baue eine Schleife, und in jedem Durchlauf erzeugst Du ein Command-Objekt, setzt den CommandText auf das SQL statement und führst das Command-Objekt aus. Den Zähler eigens auf 1 setzen brauchst Du nicht, das macht der FOR Befehl für Dich. Das ADODB.Command-Objekt kannst Du meines Wissens vor der Schleife erzeugen und pro Durchlauf wiederverwenden.</p> <pre><code class="block language-vbs">Dim zaehler, insertCmd SET insertCmd = CreateObject("ADODB.Command") insertCmd.ActiveConnection = ... FOR zaehler = 1 To Session("Eintraege") insertCmd.CommandText = "INSERT INTO ...." insertCmd.Execute() Next </code></pre> <p><em>Rolf</em></p> <div class="signature">-- <br> sumpsi - posui - clusi </div> https://forum.selfhtml.org/self/2019/aug/02/ado-asp-und-access-datenbankeintrag-mehrfach-duplizieren/1754502#m1754502 supernewb 2019-08-02T09:16:06Z 2019-08-02T09:16:06Z ADO - ASP und Access - Datenbankeintrag mehrfach duplizieren <p>Danke für die Aufklärung :) Ich nahm an, wir sprachen von MySQL</p> https://forum.selfhtml.org/self/2019/aug/02/ado-asp-und-access-datenbankeintrag-mehrfach-duplizieren/1754505#m1754505 supernewb 2019-08-02T09:18:17Z 2019-08-02T09:18:17Z ADO - ASP und Access - Datenbankeintrag mehrfach duplizieren <blockquote> <p>Hallo,</p> <blockquote> <p>So habe ich das jetzt aufgebaut, und erhalte einen syntaxfehler.</p> </blockquote> <p>Du bekommst doch nicht nur „Syntaxfehler!“ vor den Latz geknallt, oder?</p> </blockquote> <p>tatsächlich doch :-/ <code>2019-08-02 09:15:12 10.0.10.31 POST /inventur/PCs/PCspeichernNeu.asp |42|800a03ea|Syntaxfehler 80</code></p> https://forum.selfhtml.org/self/2019/aug/02/ado-asp-und-access-datenbankeintrag-mehrfach-duplizieren/1754506#m1754506 Tabellenkalk 2019-08-02T09:22:45Z 2019-08-02T09:22:45Z ADO - ASP und Access - Datenbankeintrag mehrfach duplizieren <p>Hallo,</p> <blockquote> <p>tatsächlich doch :-/ <code>2019-08-02 09:15:12 10.0.10.31 POST /inventur/PCs/PCspeichernNeu.asp |42|800a03ea|Syntaxfehler 80</code></p> </blockquote> <p>Da hab ich jetz noch die kleine, aber unbegründete Hoffnung, dass entweder die 42 oder die 80 ein dezenter Hinweis auf die Zeilennummer sein soll…</p> <p>Gruß<br> Kalk</p> https://forum.selfhtml.org/self/2019/aug/02/ado-asp-und-access-datenbankeintrag-mehrfach-duplizieren/1754508#m1754508 supernewb 2019-08-02T09:24:18Z 2019-08-02T09:24:18Z ADO - ASP und Access - Datenbankeintrag mehrfach duplizieren <p>richtig. Die 42 zeigt die Zeile. Und das wiederrum ist die</p> <pre><code class="block">MM_editCmd.CommandText = </code></pre> https://forum.selfhtml.org/self/2019/aug/02/ado-asp-und-access-datenbankeintrag-mehrfach-duplizieren/1754509#m1754509 Matthias Apsel matthias.apsel@selfhtml.org https://brückentage.info 2019-08-02T09:25:13Z 2019-08-02T09:25:13Z ADO - ASP und Access - Datenbankeintrag mehrfach duplizieren <p>Hallo Tabellenkalk,</p> <blockquote> <p>Da hab ich jetz noch die kleine, aber unbegründete Hoffnung, dass entweder die 42 oder die 80 ein dezenter Hinweis auf die Zeilennummer sein soll…</p> </blockquote> <p>und die andere Zahl ein dezenter Hinweis auf den Fehlercode.</p> <p>Bis demnächst<br> Matthias</p> <div class="signature">-- <br> Pantoffeltierchen haben keine Hobbys.<br> ¯\_(ツ)_/¯ </div> https://forum.selfhtml.org/self/2019/aug/02/ado-asp-und-access-datenbankeintrag-mehrfach-duplizieren/1754516#m1754516 Matthias Apsel matthias.apsel@selfhtml.org https://brückentage.info 2019-08-02T09:39:09Z 2019-08-02T09:39:09Z ADO - ASP und Access - Datenbankeintrag mehrfach duplizieren <p>Hallo Tabellenkalk,</p> <blockquote> <p>Hallo,</p> <blockquote> <p>tatsächlich doch :-/ <code>|800a03ea|Syntaxfehler 80</code></p> </blockquote> </blockquote> <p><a href="https://www.computerperformance.co.uk/error-codes/800a03ea/" rel="nofollow noopener noreferrer">https://www.computerperformance.co.uk/error-codes/800a03ea/</a></p> <p>Bis demnächst<br> Matthias</p> <div class="signature">-- <br> Pantoffeltierchen haben keine Hobbys.<br> ¯\_(ツ)_/¯ </div> https://forum.selfhtml.org/self/2019/aug/02/ado-asp-und-access-datenbankeintrag-mehrfach-duplizieren/1754511#m1754511 Tabellenkalk 2019-08-02T09:29:25Z 2019-08-02T09:33:39Z ADO - ASP und Access - Datenbankeintrag mehrfach duplizieren <p>Hallo,</p> <p>Ok</p> <p>Da sind wir dann wieder bei der grundsätzlichen Vorgehensweise. Dem <code>MM...</code> musst du was zuweisen?!</p> <p>Gruß<br> Kalk</p> <p>Edith flüstert: da darf jedenfalls keine Schleife zugewiesen werden</p> https://forum.selfhtml.org/self/2019/aug/02/ado-asp-und-access-datenbankeintrag-mehrfach-duplizieren/1754514#m1754514 supernewb 2019-08-02T09:37:47Z 2019-08-02T09:37:47Z ADO - ASP und Access - Datenbankeintrag mehrfach duplizieren <p>hinter den command text kommt die anweisung</p> <p>ich habe keinen schimmer, wie ich da die schleife drum bastle :/</p> https://forum.selfhtml.org/self/2019/aug/02/ado-asp-und-access-datenbankeintrag-mehrfach-duplizieren/1754524#m1754524 Tabellenkalk 2019-08-02T10:26:38Z 2019-08-02T22:44:05Z ADO - ASP und Access - Datenbankeintrag mehrfach duplizieren <p>Hallo,</p> <blockquote> <p>hinter den command text kommt die anweisung</p> </blockquote> <p>und zwar, wenn ich das richtig verstehe, als String. Den kann man mit Stringoperationen so zusammenbauen, wie man ihn braucht. Wenn man im String Teile mehrfach benötigt, macht man das innerhalb der Schleife, den Rest erledigt man außerhalb.</p> <p>Gruß<br> Kalk</p> https://forum.selfhtml.org/self/2019/aug/02/ado-asp-und-access-datenbankeintrag-mehrfach-duplizieren/1754687#m1754687 supernewb 2019-08-05T07:05:37Z 2019-08-05T07:05:37Z ADO - ASP und Access - Datenbankeintrag mehrfach duplizieren <p>Rolf ... du hast mir hier schon so oft geholfen ... Ich liebe Dich </p> <p>So funktioniert das jetzt. Absolut super</p> <p>Deine Erklärung kann ich auch nachvollziehen.</p> <p>Ich Danke Dir </p>