Probleme bei der Verknüpfung von Textboxen mit Access Datenbank

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Probleme bei der Verknüpfung von Textboxen mit Access Datenbank

    Moin zusammen,

    kurz zum Aufbau meines Programms:

    ich arbeite mit einer Access Datenbank, in welcher mehrere Tabellen (Projekte) angelegt sind, die vom Aufbau her (Spalten) identisch sind, nur eben unterschiedlicher Inhalt.
    Auf meiner Form habe ich diese Datenbank in einem Datagridview dargestellt. Neben diesem DGV habe ich auch noch einzelne Textboxen, welche an die dementsprechende Tabelle geknüpft sind.

    Nun möchte ich über verschiedene Buttons zwischen den Projekten, also den Tabellen in der Datenbank, wechseln und die Datenquelle des DGV sowie der Textboxen sollte sich demnach auch ändern.

    Bei dem DGV habe ich das bereits geschafft, mit "DGV.Datasource = ...", also das klappt.
    Das Problem ist, dass ich es nicht schaffe, die Datenquelle/Binding Source der Textbox auch mitzuziehen.
    Habe diverse Möglichkeiten probiert, aber irgendwie scheitert das ganze immer.

    Ich hoffe ich konnte mein Problem halbwegs verständlich schildern und ihr habt eine passende Lösung für mich parat.

    Vielen Dank schon mal im Voraus!!!
    Ich hatte das einmal so gelöst.
    Mit Textbox.DataBindings.RemoveAt(0) die Datenbindung entfernen und mit Textbox.DataBindings.Add() neu setzen.

    VB.NET-Quellcode

    1. DGV.DataSource = Ds1
    2. DGV.DataMember = Ds1.Tables(0).TableName
    3. Dim txtBoxes As TextBox() = {TextBox1, TextBox2, TextBox3, TextBox4, TextBox5, TextBox6, TextBox7}
    4. For i As Integer = 0 To txtBoxes.Length - 1
    5. txtBoxes(i).DataBindings.RemoveAt(0)
    6. txtBoxes(i).DataBindings.Add(New Binding("Text", Ds1, Ds1.Tables(0).TableName & "." & Ds1.Tables(0).Columns.Item(i).ColumnName))
    7. Next

    Nookie schrieb:

    ich arbeite mit einer Access Datenbank, in welcher mehrere Tabellen (Projekte) angelegt sind, die vom Aufbau her (Spalten) identisch sind, nur eben unterschiedlicher Inhalt.
    Das ist ein ungünstiges Datenmodell und widerspricht den Regeln relationaler Datenmodellierung.
    Folglich wirst du damit nich glücklich werden - fängt ja schon an, weil bei einem korrekten Datenmodell könntest du Databinding anwenden, wie es eiglich gedacht ist - dazu bräuchteste nichtmal Code zu schreiben.

    Meine Empfehlung:
    1. Lerne relationale Datenmodellierung - also wie man eine 1:n-Relation verwendet, anstatt vieler struktur-identischer Tabellen.
      codeproject.com/Articles/10309…l-Datamodel-for-Beginners
    2. Lass die Datenbank erstmal weg. Hinweise (und Begründung) dazu sind auch im verlinkten Tut enthalten.