Daten aus Textboxen in ein DataGritView einer anderen Form

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von Skaletti.

    Daten aus Textboxen in ein DataGritView einer anderen Form

    Guten Tag!
    Ich habe in der Form "Schüler" Textboxen die aus dem dazugehörigen DatagritView gefüllt werden. Funzt
    Diese Daten sollen jetzt in die Form "Anmeldung" in das DataGritView "Anmeldung DataGritView" übertragen werden.
    Frage: Geht das überhaupt, wenn ja, wie??
    Vielen Dank für jede Hilfe im Voraus.
    Gruß Ulli!
    Mein bisheriger Versuch:
    Fehlermeldung: AnmeldungDataGritView ist kein Member von Windows Application1.frmAnmeldung

    Quellcode

    1. Private Sub cmdAnmeldungstabelle_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdAnmeldungstabelle.Click
    2. Dim I As Integer
    3. frmAnmeldung.AnmeldungDatagritviewItem(0, I).Value = txtID.Text
    4. frmAnmeldung.AnmeldungDatagritviewItem(1, I).Value = txtStartnummer.Text
    5. frmAnmeldung.AnmeldungDatagritviewItem(2, I).Value = txtVerein.Text
    6. frmAnmeldung.AnmeldungDatagritviewItem(3, I).Value = txtName.Text
    7. frmAnmeldung.AnmeldungDatagritviewItem(4, I).Value = txtKlasse.Text
    8. End Sub
    I anpassen:

    VB.NET-Quellcode

    1. Private Sub cmdAnmeldungstabelle_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdAnmeldungstabelle.Click
    2. Dim I As Integer
    3. I = 0
    4. frmAnmeldung.AnmeldungDatagritviewItem(0, I).Value = txtID.Text
    5. I += 1
    6. frmAnmeldung.AnmeldungDatagritviewItem(1, I).Value = txtStartnummer.Text
    7. I += 1
    8. frmAnmeldung.AnmeldungDatagritviewItem(2, I).Value = txtVerein.Text
    9. I += 1
    10. frmAnmeldung.AnmeldungDatagritviewItem(3, I).Value = txtName.Text
    11. I += 1
    12. frmAnmeldung.AnmeldungDatagritviewItem(4, I).Value = txtKlasse.Text
    13. End Sub
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Bin zwar nicht der große Crack, aber es erscheint mir doch sehr umständlich, die Daten zwischen Forms "zu Fuß" hin- und herzuschieben. Du musst doch deine Daten irgendwo speichern. Und ich würde von der jeweiligen Form aus auf diese gespeicherten Daten direkt zugreifen und nicht über ne andere Form. Häufig geht das am besten über ein typisiertes DataSet.
    Aber das sind natürlich nur grundsätzliche Erwägungen.
    Ich code nur 'just for fun'! Damit kann ich jeden Mist entschuldigen, den mein Interpreter verdauen muss :D
    Hi RodFromGermany, Marsianer,
    Danke für die schnellen Antworten.

    RodFromGermany,
    Die Fehlermeldung ist immer noch die gleiche. frmAnmeldung und AnmeldungDatagritview sind richtig geschrieben.



    Marsianer,
    werde mich mal mit typisierten Dataset beschäftigen.
    Geplant ist das später aus ca. 20 Datagritviews Daten in die frmAnmeldung übertragen werden sollen.
    Diese DGV werden Einzeltabellen mit Ergebnissen. Aus den Daten frmAnmeldung sollen dann Mannschaften gebildet werden
    die dann wiederum in Mannschaftstabellen kommen.
    Könnte man vielleicht automatisieren:
    Neue Eingabe direkt übertragen?
    Gruß Ulli!

    Skaletti schrieb:

    VB.NET-Quellcode

    1. frmAnmeldung.AnmeldungDatagritviewItem(0, I).Value = txtID.Text

    Willst Du aus einer Klasse heraus ein DGV, das in einer anderen Klasse liegt, befüllen?
    In welchem Verhältnis stehen denn die Klassen / Instanzen zueinander?
    Ist frmAnmeldung der Name der Klasse oder die mit New XXX erstellte Instanz dieser Klasse?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    Skaletti schrieb:

    werde mich mal mit typisierten Dataset beschäftigen.
    guter Plan :thumbup:
    Geplant ist das später aus ca. 20 Datagritviews Daten in die frmAnmeldung übertragen werden sollen.
    schlechter Plan :thumbdown:
    Wenndedich mit typDataset beschäftigst, sollteste es iwie hinkriegen, die Fixierung auf DatagridView (und annere Controls) aufzulösen, und nicht mehr über DatagridViews nachdenken, sondern über deine Daten.

    Diese DGV werden Einzeltabellen mit Ergebnissen. Aus den Daten frmAnmeldung sollen dann Mannschaften gebildet werden
    Es gäbe also keine Ergebnis-DGVs, sondern im typDataset wäre eine Ergebnis-Datatable anzulegen.
    Weiters eine Mannschaft-DataTable
    Im Zusammenhang mit evtl. weiteren DataTables würdeman dann die Mannschaft-DataTable befüllen.

    Die Anzeige und Bearbeitung in DGVs ist eine andere Baustelle, über die du dir zunächst keinerlei Gedanken machen mußt - glaub mir einfach: die Anzeige ist das geringste Problem.

    Auch planst du iwie, Daten von einem Form ins annere zu transportieren. Stattdessen empfehle ich ein global zugreifbares Dataset mit allen Daten drin, und jedes Form zeigt daraus den Teil an, wofür es zuständig ist.
    Auf diese Weise entfällt jeglicher DatenTransport, sondern, was das eine Form ändert, ist damit bereits im anneren Form ebenfalls geändert, weil sie verwenden ja dieselbe DataSource.

    Databinding macht diese Änderungen dann auch sofort sichtbar - wie gesagt: die Anzeige ist das geringste Problem.
    Hi RodFromGermany,
    Bin noch ein ziemlich grüner Anfänger und denke warscheinlich noch zu viel in VBA.
    Die Tabellen sind in einer Access Data.mdb und werden in die Form geladen, und die eingegeben Daten dort gespeichert.
    Warscheinlich ist es doch besser so vorzugehen wie "Der Erfinder des Rades" es vorschlägt.
    Trotzdem würde ich gerne wissen ob man die Daten auch per Hand übertragen kann.

    Für die Tips und ausfürlichen Informationen meinen Dank an Den Erfinder des Rades.

    Gruß Ulli!
    Na wenn du die Daten schon inner DB hast: DataSet in Projekt einfügen und als Quelle die DB angeben. Und schon haste über das DataSet alles zur Verfügung
    Ich code nur 'just for fun'! Damit kann ich jeden Mist entschuldigen, den mein Interpreter verdauen muss :D