Daten von einer Tabelle in eine andere Tabelle schreiben

  • VB.NET

Es gibt 15 Antworten in diesem Thema. Der letzte Beitrag () ist von Nilselino.

    Daten von einer Tabelle in eine andere Tabelle schreiben

    Guten Tag,
    Ich möchte aus einer Tabelle in der Access-Datenbank Daten wie z.B Barcode auslesen und die in eine ander Tabelle in der Access-Datenbank speichern. Wie geht das? Vielen Dank im Voraus
    schöne Grüße
    Nils
    Jetzt sagt der mir Fehler in der Insert Into Anweisung.

    VB.NET-Quellcode

    1. query2 = "INSERT INTO" & barcode & "(barcode, buch_name, autor, verlag, kosten, invent) SELECT barcode, buch_name, autor, verlag, kosten, invent FROM buecher WHERE barcode =" & buchname & ";"

    Nilselino schrieb:

    Guten Tag,
    Ich möchte aus einer Tabelle in der Access-Datenbank Daten wie z.B Barcode auslesen und die in eine ander Tabelle in der Access-Datenbank speichern.

    Höchst ungewöhnlich.

    Dazu bräuchtest du ja nicht einmal ein Form. Da kann man in einer Konsole-Anwendung ein listiges InsertCommand schreiben (ich weiß auch grad nicht, wie man das richtig formuliertete), und wups.
    iwie sowas wie:

    SQL-Abfrage

    1. Insert into table2(hi, ha, hu) values (Select hi, ha, hu from Table1)
    (glaubich jdfs, das sowas drin ist, aber vlt. irre ich mich)

    Nur inne Realität lädt man eher die Daten in die Anwendung, bearbeitet sie, und speichert die Änderungen zurück.

    Also man würde den Kopiervorgang im Dataset vornehmen, dass der User die Veränderung auch sehen kann.

    Und später mal alles saven, wenns dem User beliebt.
    Ich hab ja gesagt: ich glaube nur, dass sowas prinzipiell drin ist, wobei ich mir nichtmal sicher bin.
    Die korrekte Syntax wäre eine Frage an ausgewiesene Sql-Cracks.

    Aber ich frage dich nochmal: Willst du das wirklich so direkt auffm Server verwursten, ohne Beteiligung der Client-Anwendung?

    Wie gesagt: Auf diese Weise erfährt der User keine Ansicht des Ergebnisses, und wenn im Client eine Sicht auf die Zieltabelle angezeigt wird, dann enthält diese ab dem Moment falsche Daten.
    Da ich ein Bibliotheksprgramm für die Schule schreibe, muss der Nutzer seinen Barcode und den Barcode des Buches eingeben. Dann soll in die Tabelle wo die Buecher stehen das Buch anhand des Barcodes raussuchen und dann in die Tabelle des Ausleihenden geschrieben werden. Dazu brauch ich eben diesen Code.
    Falsches Datenmodell.

    Richtig wäre eine ZuordnungsTabelle, die über zwei ForeignKeys das Ausgeliehene Buch mit dem Ausleiher verbindet (und Informationen zum Ausleihvorgang (Beginn, Ende, Beanstandet, ...) hinzufügt.
    Ein tumbes Umkopieren von Datensätzen erzeugt redundante Daten, und relationale DBs sind genau dazu erfunden worden, um DatenRedundanz auszuschließen.

    DB-theoretisch liegt eine m:n-Relation zw. Ausleiher und Buch vor, und das muß man dementsprechend modellieren. (Ich hoffe, diese Fachsprache sagt dir was - Datenbänkerei ist halt ein Fachgebiet, mit ungefähr 15 Fachbegriffen.)
    Im Grunde bin ich auch ein Verächter von Fachsprachen. Jedenfalls, wenn sie benutzt werden, um Dinge zu formulieren, die man auch auf Standard-Deutsch sagen könnte.

    Aber hinter den Fachbegriffen "Redundanz", "Datenmodellierung", "ForeignKey", "m:n-Relation", "relationale Datenbank" - dahinter steht die (eiglich nicht soo komplizierte) Theorie der Datenbänkerei, und dieses Wissen musstedir so oder so aneignen, wenn du da einsteigen willst.
    Anners hats ühaupt kein Zweck.

    Hier paar Tuts:
    die relationale GrundIdee
    Fast alle Tuts auf Movie-Tuts, vor allem aber "Datenbank in 10 Minuten" auf Movie-Tuts, und von letzterem das "Main.Doc" geht ziemlich auf die Hintergründe und Vorgehensweisen der Datenbänkerei ein.
    Die Tuts sind bisserl kompliziert zu öffnen, weil sie eine Index.html enthalten, die das animierte Tut startet, aber auch Sample-Solutions mit Vorher- Nachher.
    Und im "Main.Doc" das InhaltsVerzeichnis verlinkt direkt auf mehrere als Kapitel designete Tut-Filme.

    Hinzu kommt noch der Begriff "DataBinding", der eiglich nicht zur Datenbänkerei gehört, sondern eine allgemeine Vorgehensweise bei der Erstellung von AnwendungsOberflächen ist.
    Aber wenne die Tuts durch hast, ist das auch gegessen, denn ohne DataBinding machich garnix ;)

    zu AnwendungsOberflächen für komplexe Datenverarbeitung gugge die vier Views (WinForms)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „ErfinderDesRades“ ()

    Dir ist offensichtlich die fundamentale Wichtigkeit des RedundanzVerbotes nicht klar:
    Wenn du Ausleih-Vorgänge redundant in eine Extra-Tabelle schreibst, und der Kunde bekommt eine neue Addresse?
    Dann kannste seine Addresse ändern, und mußt zusätzlich die Ausleihe-Tabelle durchwühlen, und seine Ausleihen updaten - das ist nämlich eine Auswirkung des Redundanz-Problems.

    Eine DB-Anwendung ohne die Grundregeln der Datenbänkerei zu erstellen, ist absolutely NoGo, und deshalb unterstütz ich dich dabei nicht weiter.
    Mach dir bitte die Grundsätze zueigen, wie sie etwa im o.g. Main.Doc erwähnt sind, dann könnemer weiter-reden.
    Aber einige der Tuts verlinken auch auf weitere Quellen, und im INet findet sich auch allerlei (aber wenig gutes (wenndewas gutes findest - lasses mich wissen, pls)).

    Von wegen "leicht anzeigen" liegst du auch falsch: Kein Mensch wird je eine Tabelle aller Ausleihvorgänge sehen wollen.
    Man braucht die AusleihVorgänge eines Kunden, oder auch (wenn etwa ein grad vergebenes Buch nachgefragt wird) die Ausleivorgänge eines Buches.

    Und für so Zeugs (Abruf abhängiger Datensätze, redundanzfreie Daten-Änderungen) sind DBs erfunden worden, und zwar, weil andere Ansätze nicht mehr hinreichten.
    Sie haben mich falsch verstanden. Jeder Benutzer hat seine eigene Tabelle. Der Nutzer Fred Feuertsein hat jetzt z.B die Tabelle mit dem Barcode 12345678. Fred Feuerstein will sich ein Buch mit dem Barcode 1111 ausleihen. Also gibt man in das Programm den Barcode von Fred Feuerstein und dem Buch ein. Als erstes soll das Programm in die Tabelle gehen wo die Buecher stehen. Dann das Buch mit den Barcode z.B. 1111 suchen die ganze Zeile makieren und in die Tabelle von Fred Feuerstein kopieren. Wenn dann jemand wissen will welche Bücher Fred Feuerstein ausgeliehen hat gibt er einfach den Barcode 12345678 ein und schon sieht er die Bücher.
    Stimmt da hast du recht. Ich habe daran noch gar nicht gedacht. Wüstest
    du ein Buch wo alles über Datanbänkerei drinne steht. Ich habe mir schon
    mal das Main.doc angeschauht und auch den Rest aber ich finde da wird
    das nicht so direkt erklärt. Bist du bie Skype? Denn heute ereicht man die Seite kaum.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Nilselino“ ()