Frage 1==>n Beziehung?

  • VB.NET

Es gibt 62 Antworten in diesem Thema. Der letzte Beitrag () ist von rrobbyy.

    @ErfinderDesRades

    Ich habe wirklich besseres zu tun als Dich oder andere hier zu veräppeln!

    Wenn du mal richtig gelesen hättest wäre dir der Satz aufgefallen, das ich " umgebaut " hatte, was dazu führte das der Code zwar lief aber eben nicht so wie ich erhoffte, nämlich die Fehler abzufangen.

    Ja ich vergaß den neuen Codeblock zu posten aber dir als "alter Hase" hätte doch auffallen müssen, das da wohl Grundsätzlich etwas nicht stimmt. Scheinbar dürfen Anfänger und das bin ich trotz meines Bemühens zu lernen wohl solch simple Fragen nicht mehr stellen?
    Ist das nur noch ein Forum für Superprogrammierer? Wobei ich mich nicht mal als Programmierer bezeichnen würde.
    -----------------------------------------------------------------------------------
    @All

    Wenn jemand nun einen Vorschlag hat wie ich das immer noch bestehende Problem lösen kann; ich wäre Dankbar.


    Geänderter Code. Was könnte ich verbessern / ändern??

    Spoiler anzeigen

    VB.NET-Quellcode

    1. Private Sub inputcheck()
    2. Dim MwSt1 As Integer
    3. Dim MwSt2 As Integer
    4. Dim result1 As Boolean = String.IsNullOrWhiteSpace(SummeTextBox.Text)
    5. Dim result2 As Boolean = String.IsNullOrWhiteSpace(BeschreibungTextBox.Text)
    6. If MwSt1RadioButton.Checked = True Then
    7. MwSt1 = 1 : MwSt2 = 0
    8. ElseIf MwSt2RadioButton.Checked = True Then
    9. MwSt2 = 1 : MwSt1 = 0
    10. Else
    11. EAklasse.efehler("mwst")
    12. End If
    13. If result1 = True Or result2 = True Then
    14. EAklasse.efehler("default")
    15. Else
    16. ' Die Messageboxen dienen mir nur um zu überprüfen ob die richtigen Werte
    17. ' ankommen die in die Datenbank geschrieben werden sollen!
    18. '-----------------------------------
    19. MessageBox.Show(MwSt1 & "" & MwSt2)
    20. MessageBox.Show(KategorieComboBox.SelectedValue.ToString) '& "" & DatumDateTimePicker.ToString)
    21. MessageBox.Show(SummeTextBox.Text & "" & BeschreibungTextBox.Text)
    22. '-----------------------------------
    23. 'Me.Validate()
    24. 'Me.EATableBindingSource.EndEdit()
    25. 'Me.TableAdapterManager.UpdateAll(Me.EaDBDataSet)
    26. 'btn_save.Enabled = False
    27. EAklasse.efehler("ok")
    28. End If
    29. End Sub

    Asperger Autistin. Brauche immer etwas um gewisse Sachen zu verstehen. :huh:

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

    Jo, zwei Bitten an dich:
    Stelle nie eine Frage zu Code, den man nicht sehen kann - solch ist vollkommen sinnlos.
    Insbesondere: Zeige nie Code, der so garnet existiert, und stelle dazu eine Frage, die sich auf anderen Code bezieht, den man nicht sehen kann - das ist nicht nur sinnlos, sondern man fühlt sich gradezu veräppelt (mir zumindest geht es so).

    Insgesamt ziehen Missverständnisse einen Thread enorm in die Länge, weil man ewig braucht, sie auszuräumen, bevor man überhaupt anfangen kann, sich der Frage zu widmen.
    Und am Ende besteht dann vor lauter Wirrwar auch noch Unklarheit, was eiglich gefragt ist (wusstest du, dass deine Frage sich in post#17 quasi versteckt?)



    Wiedemauchsei, wir haben glaub diesen Code als den gültigen herausgearbeitet:

    VB.NET-Quellcode

    1. Private Sub inputcheck()
    2. Dim MwSt1 As Integer
    3. Dim MwSt2 As Integer
    4. Dim result1 As Boolean = String.IsNullOrWhiteSpace(SummeTextBox.Text)
    5. Dim result2 As Boolean = String.IsNullOrWhiteSpace(BeschreibungTextBox.Text)
    6. If MwSt1RadioButton.Checked = True Then
    7. MwSt1 = 1 : MwSt2 = 0
    8. ElseIf MwSt2RadioButton.Checked = True Then
    9. MwSt2 = 1 : MwSt1 = 0
    10. Else
    11. EAklasse.efehler("mwst")
    12. End If
    13. If result1 = True Or result2 = True Then
    14. EAklasse.efehler("default")
    15. Else
    16. ' Die Messageboxen dienen mir nur um zu überprüfen ob die richtigen Werte
    17. ' ankommen die in die Datenbank geschrieben werden sollen!
    18. '-----------------------------------
    19. MessageBox.Show(MwSt1 & "" & MwSt2)
    20. MessageBox.Show(KategorieComboBox.SelectedValue.ToString) '& "" & DatumDateTimePicker.ToString)
    21. MessageBox.Show(SummeTextBox.Text & "" & BeschreibungTextBox.Text)
    22. '-----------------------------------
    23. 'Me.Validate()
    24. 'Me.EATableBindingSource.EndEdit()
    25. 'Me.TableAdapterManager.UpdateAll(Me.EaDBDataSet)
    26. 'btn_save.Enabled = False
    27. EAklasse.efehler("ok")
    28. End If
    29. End Sub
    Und dazu diese Frage:

    Amelie schrieb:

    das bei Fehlern trotzdem bis zum letzten "else" läuft was ja nicht darf.
    Jo, da empfehle ich dir, dich mal mit dem Schlüsselwort Return zu beschäftigen.
    Das bewirkt, dass folgender Code nicht mehr ausgeführt wird.
    An geeigneter Stelle ein Return eingefügt, würde dafür sorgen, dass nicht mehr "bei Fehlern trotzdem bis zum letzten "else" läuft", eben weil die Methode bei Fehlern zuvor returnt.
    Ich hoffe, du kriegst das hin, ohne dass mans dir ausdrücklich vormachen muss - sowas willst du ja lernen.
    Ach ich sag doch lieber selbst vor: zB zwischen zeile #11 und #12 ein Return einfügen
    @All

    Ich verstehe es nicht. Ganz neues Projekt.
    Tabellen erstell usw. Alles von den Datenquellen auf das Form gezogen und dann Prog gestartet...

    Sobald ich etwas aus der Combobox auswählen möchte, hängt sich alles auf.


    Die CB wird aus einer 2ten Tabelle gefüllt. Habe es mit PK & FK probiert dann komplett ohne PK-FK ohne Resultate.

    Dann die CB gegen eine Listbox getauscht. Diese genauso wie die Combobox angebunden. Siehe Bildanhang. Alles klappt!
    Bilder
    • combobox-1.jpg

      314,01 kB, 945×693, 48 mal angesehen
    Asperger Autistin. Brauche immer etwas um gewisse Sachen zu verstehen. :huh:
    Guck dein bildle nochmal an - es gibt da einen Unterschied, der ich finde ins Auge springt.

    Übrigens kann man Comboboxen nicht aus dem Datenfenster aufs Form ziehen - wenn man das versucht, generiert VS auch ein Binding an Combobox.Text - und das ist Mist.

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

    Hallo @ErfinderDesRades
    100mal Sorry das falsche Bild... erwischt.

    Aber egal wie ich es ändere, der Effect bleibt bestehen.
    CB hängt sich auf
    LB klappt es
    Asperger Autistin. Brauche immer etwas um gewisse Sachen zu verstehen. :huh:
    lösch die Combo und mach eine neue hin - aus der Toolbox.
    Stelle die Bindings so ein wie auf dem Bild zu sehen, und wie's bei listbox funktioniert.
    Müsste auch für Combobox funktionieren.

    Wie gesagt: Wichtig ist, eine neue Combo aus der Toolbox zu nehmen, nicht aussm Datenfenster oder sonstwo her.

    Vielleicht hilft auch Film X aus die vier Views auf Video
    Hallo

    Kann man irgendwie prüfen ob eine Combobox irgend ein Event ausgelöst hat?
    Mit Change...usw. komme ich nicht weiter.

    Ich suche soetwas wie: "Wenn ComboxBox Nichts gemacht hat also KEIN Event dann setze X auf ..."
    Oder gibt es eine andere Lösung?

    Hintergrund:
    Die Cb wird aus einer Tabelle gefüllt und deren Einträge werden für einen Eintrag in eine andere Tabelle genutzt.
    Jetzt steht zwar der erste Wert in der Cb aber der soll nicht einfach genommen werden wenn man NICHTS auswählt.
    Habe schon die Idee gehabt mit "Bitte auswählen" aber das hilft nicht, weil man die Werte der Cb ja ändern kann..
    Oder gibt es die Möglichkeit, den ersten Eintrag nicht ändern zu können?

    Hoffe Ihr versteht was ich möchte und wisst eine Lösung? ;)
    Asperger Autistin. Brauche immer etwas um gewisse Sachen zu verstehen. :huh:

    Amelie schrieb:

    Jetzt steht zwar der erste Wert in der Cb aber der soll nicht einfach genommen werden wenn man NICHTS auswählt.
    Mit einer datengebundenen Combobox kann man nicht NICHTS auswählen.
    Wenn richtig gebunden steht übrigens nicht immer der erste Wert in der Cb, sondern es steht genau der Wert drinne, auf den der zugrundeliegende Datensatz pe Fremdschlüssel verweist.
    Und es darf auch garnix anneres drinne stehen (auch nicht NICHTS), sonst würde die Anzeige ja lügen, oder der Datensatz wäre ungültig.
    @ErfinderDesRades

    Ja es wird auch immer der erste Datensatz angezeigt, insofern stimmt meine Anbindung etc.
    Ich habe mir nun einen für mich passenden workround geschaffen.
    Teste das noch aber es scheint zu funktionieren. Einträge können hinzugefügt oder geändert werden nur nicht der erste.


    Spoiler anzeigen

    Meine Hauptform:

    VB.NET-Quellcode

    1. Private Sub KatIDCob_SelectionChangeCommitted(sender As Object, e As EventArgs) Handles KatIDCob.SelectionChangeCommitted
    2. Dim KatIDCob As ComboBox = CType(sender, ComboBox)
    3. If KatIDCob.SelectionLength = 0 Then
    4. EAklasse.comboerror = 1 <============ Das werte ich bei der Fehlerbehandlung aus ob 0 oder 1
    5. End If
    6. End Sub


    Die Form wo man die Einträge der Cb ändern kann.

    VB.NET-Quellcode

    1. Public Class frm_kat
    2. Private Sub frm_kat_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    3. Me.KatTableTableAdapter.Fill(Me.EaDBDataSet.KatTable)
    4. KatTableDataGridView.Rows(0).Cells(1).ReadOnly = True
    5. End Sub
    6. ...
    7. .....

    Asperger Autistin. Brauche immer etwas um gewisse Sachen zu verstehen. :huh:

    Amelie schrieb:

    Ja es wird auch immer der erste Datensatz angezeigt, insofern stimmt meine Anbindung etc.
    na, dann stimmt sie wohl nicht.
    Es muss der Datensatz angezeigt werden auf den verwiesen wird - nicht irgendein erstbester.

    Amelie schrieb:

    Teste das noch aber es scheint zu funktionieren.
    na, du bist lustig.
    Ich habe doch deine Datenbank nicht, dein Dataset, dein Form - wie soll ich denn da was testen?
    Wie ein fehlendes Pronomen aus einer Aussage über sich selbst eine Aufforderung an einen anderen macht …
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    @ErfinderDesRades

    Habe jetzt mal dein tut "DataExpression" angesehen und konnte einiges für mich umsetzen.

    Jetzt eine Frage zu Summieren: siehe Bild

    Habe mir ein TabelAdapter für die Anzeige auf dem Form zusammengestellt. Die Summe bilden und einiges andere hat funktioniert.
    Jetzt komme ich absolut nicht weiter die Summe in Abhängigkeit einer weiteren Spalte zu bilden.

    " SummeAus = Summe wo eazahl= 1 "

    " SummeEin = Summe wo eazahl= 2 "

    Einer meiner Versuche:
    isnull("[eazahl=2] \ "sum(Summe),0)



    Geht es da überhaupt oder muss ich dafür einen anderen TA erstellen?

    ---------------
    @VaporiZed
    Stimmt man sollte soetwas nicht weglassen ;)
    Bilder
    • rechimDS-1.jpg

      228,09 kB, 843×531, 35 mal angesehen
    Asperger Autistin. Brauche immer etwas um gewisse Sachen zu verstehen. :huh:

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Amelie“ ()

    nein, eine SumIf-Funktion gibts bei den DataExpressions nicht.
    Aber man kann die eine Spalte mit der anneren multiplizieren. Wenn dann in Eads 0 drinne steht, dann verschwindet ja dieser Anteil.
    Aber dafür müsste Eads 0 oder 1 sein - bei dir ists ja 1 oder 2.
    Und wenn noch weitere Eads-Werte auftreten ist das auf diese Weise nicht lösbar.

    Ein zusätzlicher TA bringt eiglich nichts.
    Du hast die Daten doch in deiner Anwendung - dann brauchst du sie doch nicht ein zweites mal von der DB abrufen.
    @ErfinderDesRades

    Das mit den einzelnen Summen habe ich nun hinbekommen. ;)

    @ ALL
    Habe nun eine weitere Frage. Mir raucht der Kopf von "DataSet, TableAdapter, DataTable" ;(
    Weis echt nicht mehr was was ist....

    Habe mir nun einen TableAdapter erstellt. Siehe Bilder
    Ich möchte nun das mir folgendes ausgegeben wird. Monat und Jahr welche ich als Variable übergeben muss.

    NSCmd_DGV ist mein DataGridView welche im Moment alles aus dem TableAdapter ==> NSCmd anzeigt


    VB.NET-Quellcode

    1. Private Sub abfragedatum()
    2. Dim coDate As String = Now.ToString("MM.yyyy")
    3. Dim DT As NSCmdDataTable = Me.NSCmdTableAdapter.GetDataBy_Datum(coDate)
    4. NSC_DGV.DataSource = DT
    5. End Sub
    Bilder
    • TA_Abfrage-1.jpg

      395,85 kB, 921×834, 31 mal angesehen
    • TA_Abfrage-2.jpg

      225,27 kB, 817×493, 32 mal angesehen
    Asperger Autistin. Brauche immer etwas um gewisse Sachen zu verstehen. :huh:

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