Frage zum übertragen von einer Variable in eine andere Form

  • VB.NET

Es gibt 17 Antworten in diesem Thema. Der letzte Beitrag () ist von BliZzard7987.

    Frage zum übertragen von einer Variable in eine andere Form

    Hey ihr,
    Da ich das letzte mal vor einem Jahr mit VB2008 programmiert habe, bin ich jetzt daran ein Programm zu programmieren, womit ich meine Noten verwalten kann.
    Es soll aus zwei Formen bestehen.
    In der 1. Form werden die Semesternoten angezeigt.
    Mit einem Button soll man in die 2. Form kommen, in der man für die einzelnen Fächer die erreichten und erreichbaren Punkte eingeben kann.
    Mit einem Klick auf einen Button sollen die eingetragenen Werte in ein Label ausgegeben werden, in dem die Note in Prozent steht.
    Dieser Prozentwert soll bei einem Klick auf einen weiteren Button in die Form 1 übertragen werden und dort als Note ausgegeben werden.
    Es funktioniert eigentlich alles, bis auf das, dass ich einfach nicht mehr weiß wie ich einen Wert von einer Form in einen anderen übertragen kann.
    Könnte mir bitte einer helfen?

    Wäre echt toll! :D

    MfG
    Hi.

    Als erstes musst du die Variable als Public deklarieren, also so:

    VB.NET-Quellcode

    1. Public Variable As Typ
    Dann kannst du beispielsweise so auf sie zugreifen:

    VB.NET-Quellcode

    1. FormName.Variable = Wert
    Hey,
    Danke für die rasche Anwort!!!
    Hat mein Problem wirklich gelöst ;)
    Vielleicht kann mir gleich noch jemand helfen und ich brauche kein neues Thema aufmachen.
    Habe das Programm jetzt so hingebracht, dass es nun für einen Schulgegenstand funktioniert.
    Allerdings möchte ich nur ungern alles noch 13 mal neu schreiben.
    Gibt es eine Möglichkeit, dass Ganze wie eine Tabelle aufzubauen?
    Ich weiß das es leichter wäre, dies in einem Excel-Sheet zu lösen aber ich würde mir gerne wieder das Programmieren beibringen deswegen versuche ich es so.

    MfG
    Du bist dabei eine Datenverarbeitung zu entwickeln, und da machts keinen Sinn, ohne die dafür vorgesehene Technologie weiterzuwursteln. Ich rede vom typisierten Dataset, weil das ist das einzige Code-Objekt, mit dem man ein relationales Datenmodell zimmern kann, ohne gleich eine DB aufsetzen zu müssen. Gugge DB-Programmierung ohne Datenbank.

    Für einen kleinen einblick in Flexiblität und Leistungsfähigkeit grade was tabellarische Ansichten betrifft, gugge DataExpressions

    So, wenns überzeugt, kann man beginnen, das Datenmodell zu besprechen.

    Mir scheint, da gibts Entitäten wie Schuljahr, Fach, Schüler (vlt auch nicht, wenn du für dein Prog der einzige bist), Note natürlich - obwohl: Note ist eiglich eine Property der Fach-Entität.

    Diese Überlegungen sind die wesentlichen, man nennt das Datenmodellierung. So ein Datenmodell kannst du dir im Dataset-Designer zusammenklicksen, und wenn dessen Struktur hinhaut, hast du in einer Stunde den ersten Prototypen deiner App lauffähig, mit laden, speichern, ändern, zufügen und löschen aller Datensätze aller Tabellen.

    Aber ohne stichhaltiges Datenmodell kommt da garnix bei raus.
    Habe mit Dataset leider noch nie gearbeitet.
    Habe es mir allerdings angesehen und festgestellt, dass es ähnlich wie Acces aussieht.
    Acces behersche ich eigentlich ganz gut.
    Allerdings bin ich jetzt momentan etwas planlos unterwegs und weiß nicht wie ich genau anfangen soll.
    Die Datenbank soll nur für mich selbst sein.
    Ich möchte auch nur meine Noten aus den 14 Gegenständen verwalten.
    Mit Excel habe ich das ganze schon verwirklicht.
    Kann mir jemand vielleicht einen kleinen Anschub geben?

    Danke
    Ja, was sagst du zu meiner Datenmodellierung?

    Gibt es Fächer bei euch?
    Gibt es Schuljahre?

    Erst sprichst du von Fächern, dann von Gegenständen, dann gibts da noch erreichte und erreichbare Punkte, und Noten sind in % angegeben.
    Zu meiner Schulzeit wurde man mit Punkten benotet, von 0 bis 15.

    Das muss sich alles ordentlich klären. sind die Punkte nicht die Noten? Ist 100% eine 1?

    Also im Ernst:
    Fächer sind Gegenstände, oder?
    Und so ein Fach muß eine Eigenschaft "erreichbare Punktzahl" haben. Ah, und einen Namen natürlich auch.

    Ach, ich machs mal eben fertig


    So, aber das Helpers-projekt darinnen brauchste erst noch garnet
    Dateien

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

    BliZzard7987 schrieb:

    Habe mit Dataset leider noch nie gearbeitet.
    Habe es mir allerdings angesehen und festgestellt, dass es ähnlich wie Acces aussieht.
    Acces behersche ich eigentlich ganz gut.
    Allerdings bin ich jetzt momentan etwas planlos unterwegs und weiß nicht wie ich genau anfangen soll.
    Die Datenbank soll nur für mich selbst sein.
    Ich möchte auch nur meine Noten aus den 14 Gegenständen verwalten.
    Mit Excel habe ich das ganze schon verwirklicht.
    Kann mir jemand vielleicht einen kleinen Anschub geben?


    Öhem ... wait a moment.

    Du kennst Dich mit Access "gut" aus, wieso löst Du nicht dort Dein Problem und wagst Dich an das komplexe Thema der Programmierung erstmal eine Stufe tiefer mit VBA ran?

    Wenn Du VBA kannst, dann hast Du die Grundzüge der Syntax von VB.NET und kannst Dich jetzt auf die ganzen neuen Objektmodelle und das Thema OOP konzentrieren.

    Nur mal so als Überlegung. ;)

    Gruß

    Rainer
    Habe es in Access nun auch schon gelöst ;)
    Allerdings würde ich dies eben gerne in einem Programm lösen, da bei VB nicht irgendetwas zusätzlich auf einem Computer installiert werden muss, wenn ich das Programm ausführen will.
    Fächer sind Gegenstände. (ist bei uns in Österreich das gleiche)
    Da ich in Österreich wohne, gibt es leider die Punkteskala von 0-15 nicht.
    Bei uns rechnet man die erreichten Punkte durch die erreichbaren.
    Dann wird das ganze mit 100 multipliziert um auf die Prozent zu kommen.
    Ab 92% ist es eine 1, ab 84% eine 2 und so weiter.
    Es gibt die Noten 1 bis 5 wobei 5 das schlechteste ist.
    Schuljahre brauche ich nicht, da ich einfach nur das ganze für 14 verschiedene Gegenstände brauche.
    Wenn das nächste Schuljahr beginnt kann ich die Punkte ja wieder zurück setzen.
    Es sollte 2 Semester geben.
    Ein Semester sollte Jeweils 3 Spalten für die erreichbaren Punkte von Tests und 3 für die erreichten Punkte von Tests beinhalten.
    Außerdem noch eine Spalte für erreichbare Punkte der Mitarbeit und erreichten Punkte der Mitarbeit.

    Danke, dass du dich so bemühst mir zu helfen!!

    MfG :thumbsup:
    Jap genau.
    Jedes Fach hat 2 Semester.
    Wie du das mit den Spalten genau meinst weiß ich jetzt nicht. Ich komme auf 16 Spalten.
    Spalten für erreichte Punkte: 3x2 (2 wegen Semester und 3 wegen 3 Tests pro Semester) also 6
    Spalten für erreichbare Punkte: 3x2 (-"-) also auch 6
    1 Spalte für erreichbare Mitarbeitspunkte
    1 Spalte für erreichte Mitarbeitspunkte
    1 Spalte für die Prozentangabe der Noten
    1 Spalte für die Note.

    So komme ich auf 16 Spalten.

    Die Note kann ich leider nur nach Prozent ausgeben, da ich keine "Formel" finde, wie ich aus den erreichten und erreichbare Punkten die Note berechnen kann.

    Habe schon ziemlich lange versucht aus dem Sample schlau zu werden.
    Allerdings kommen schon beim öffnen an die 100 Fehlermeldungen.

    Aber noch lass ich nicht locker und versuche es weiter ;)
    Hey,
    Habe das Programm jetzt so weit mal hingekommen.
    Allerdings habe ich einen unbekannten Syntaxfehler eingebaut.
    Vielleicht kann sich das jemand mal kurz anschauen.
    Wenn der Quellcode nicht reicht kann ich auch das ganze Programm raufladen.
    Der Fehler ist in Zeile 11 bei Handles.


    VB.NET-Quellcode

    1. Imports WindowsApplication1.SchulnotenDataSet
    2. Imports System.IO
    3. Public Class Form1
    4. Private _DataFile As New FileInfo("C:\Users\Florian\Desktop\Notenstand\Notenstand\SchulnotenDataSet.DataSet.xml")
    5. Private Sub DataGridView1_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick
    6. End Sub
    7. Private Sub SpeichernToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SpeichernToolStripMenuItem.Click
    8. Handles(SaveToolStripMenuItem.Click, ReloadToolStripMenuItem.Click, TestToolStripMenuItem.Click)
    9. Select Case True
    10. Case sender Is SpeichernToolStripMenuItem1
    11. Save()
    12. Case sender Is AktualisierenToolStripMenuItem
    13. Reload()
    14. End Select
    15. End Sub
    16. Private Sub Form_FormClosing(ByVal sender As Object, ByVal e As FormClosingEventArgs) _
    17. Handles Me.FormClosing
    18. If e.Cancel Then Return
    19. Dim frm = DirectCast(sender, Form)
    20. If Not SchulnotenDataSet1.HasChanges Then Return
    21. Select Case MessageBox.Show(frm, "Änderungen sichern?", MessageBoxButtons.YesNoCancel)
    22. Case Windows.Forms.DialogResult.Yes
    23. Save()
    24. Case Windows.Forms.DialogResult.No
    25. Return
    26. Case Windows.Forms.DialogResult.Cancel
    27. e.Cancel = True
    28. Return
    29. End Select
    30. e.Cancel = False
    31. End Sub
    32. Private Sub Save()
    33. Me.Validate()
    34. Me.SchulnotenDataSet1.WriteXml(_DataFile.FullName)
    35. SchulnotenDataSet1.AcceptChanges()
    36. Media.SystemSounds.Asterisk.Play()
    37. End Sub
    38. Private Sub Reload()
    39. Me.SchulnotenDataSet1.Clear()
    40. If _DataFile.Exists() Then
    41. Me.SchulnotenDataSet1.ReadXml(_DataFile.FullName)
    42. Else
    43. MsgBox(String.Concat( _
    44. "Leider keine Daten vorhanden"))
    45. End If
    46. SchulnotenDataSet1.AcceptChanges()
    47. End Sub
    48. End Class


    DANKE
    Naja - da kommt das Handles Schlüsselwort zwiemal vor:

    VB.NET-Quellcode

    1. Private Sub SpeichernToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SpeichernToolStripMenuItem.Click
    2. Handles(SaveToolStripMenuItem.Click, ReloadToolStripMenuItem.Click, TestToolStripMenuItem.Click)
    Habe gestern schon das Problem gefunden und weiter gearbeitet.
    Allerdings habe ich Probleme mit dem Speichern.
    Habe zwar die Befehle eingegeben aber es wird nichts gespeichert.
    Ich glaube es liegt daran, dass ich die DataSet nicht richtig mit dem GridView verknüpft habe.
    Könnte mir vielleicht jemand eine Schritt für Schritt Anleitung geben?
    Habe schon gegooglet aber nicht wirklich eine Anleitung gefunden.
    Ein Link zu einem Tut-Video würde auch reichen.

    MfG
    Hallo,
    Bin jetzt noch einmal einen ganzen Tag an dem Programm gesessen.
    Leider ohne Erfolg.
    Ich kann jedes simplere Progamm erstellen.
    Aber das mit DataGridView ist einfach eine Nummer zu hoch.
    Habe leider zuvor noch nie DataGridView verwendet sondern lediglich die anderen Steuerelemente.
    Vielleicht kann mir irgendjemand dabei helfen.
    Sonst muss ich mein Projekt leider einstellen.

    Danke