| |
VB.NET - Ein- und UmsteigerEintrag ändern abfragen | | | Autor: Erichbru | Datum: 02.04.23 11:12 |
| warum klappt das bei mir nicht ? habe schon gesucht aber nichts geeignetes gefunden (oder verstanden)
ich möchte abfragen ob der "Betrag" geändert werden soll, macht er leider nicht
Private Sub btnspeichern_Click(sender As Object, e As EventArgs) Handles _
btnspeichern.Click
Dim NL = Environment.NewLine
Dim Buchungswert As Double = nud_Betrag_Eingabe.Value
Dim strBuchungsart01 As String = "Ausgabe"
Dim strBuchungsart02 As String = "Einnahme"
Dim Merker_Betrag As Double
Merker_Betrag = String.Format("{0:N2}", BetragTextBox.Text)
'Eingaben prüfen
If String.IsNullOrEmpty(BuchungsdatumTextBox.Text) Then : _
Fehler_Pflichtfeld_Angelegt("Datum:") : Return : End If
If String.IsNullOrEmpty(BuchungsartTextBox.Text) Then : _
Fehler_Pflichtfeld_Buchungsart("Buchungsart:") : Return : End If
If String.IsNullOrEmpty(KategorieTextBox.Text) Then : _
Fehler_Pflichtfeld_Kategorie("Kategorie:") : Return : End If
If String.IsNullOrEmpty(KommentarTextBox.Text) Then : _
Fehler_Pflichtfeld_Kommentar("Kommentar:") : Return : End If
If modus_Datensatz_Kontodetails = DatensatzModus.Neu And Buchungswert = _
0 Then
Fehler_Pflichtfeld_Betrag(Buchungswert)
Return
End If
If modus_Datensatz_Kontodetails = DatensatzModus.Bearbeiten And _
BS_Kontodetails_TypRow.Betrag <> Merker_Betrag Then
'Abfrage
Dim Titel As String = "Buchungswert"
Dim val = String.Format("{0:N2}", BetragTextBox.Text)
Dim Meldung As String = String.Concat(NL, "Betrag:", NL, _
val & " uebernehmen")
Dim Abfrage_Result As DialogResult = MessageBox.Show(Meldung, _
Titel, MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If Abfrage_Result = System.Windows.Forms.DialogResult.No Then Return
BS_Kontodetails_TypRow.Betrag = Merker_Betrag
End If
'die Prüfung überspringt er immer im Einzelschritt probiert.
'speichern
Me.Cursor = Cursors.WaitCursor
Me.Validate()
BS_Kontodetails.EndEdit()
dict_BS_Pos.Clear()
dict_BS_Pos.Add(BS_Kontodetails, BS_Kontodetails.Position)
mod_Saver.SaveDataset(Me.HBDatenbankDS, dict_BS_Pos, _
KontodetailsTableAdapter.Adapter)
'Dateneingabe fertigstellen und Speichervorgang beenden
modus_Datensatz_Kontodetails = DatensatzModus.Fertig
Eingabe_frei_Kontodetails(False, modus_Datensatz_Kontodetails) : _
TP_gesperrt = False
DGV_Details_SelectRow()
BS_Kontodetails.MoveFirst()
BS_Kontodetails.MoveLast()
cbo_Controls()
Me.Cursor = Cursors.Default
MessageBox.Show("Daten gespeichert.", "Meldung", MessageBoxButtons.OK, _
MessageBoxIcon.Information)
End Sub | |
Re: Eintrag ändern abfragen | | | Autor: emaNoN | Datum: 02.04.23 14:41 |
| Bitte ignorieren
Beitrag wurde zuletzt am 02.04.23 um 14:59:35 editiert. | |
Re: Eintrag ändern abfragen | | | Autor: emaNoN | Datum: 02.04.23 15:54 |
| Meinst du diese Prüfung?
If modus_Datensatz_Kontodetails = DatensatzModus.Bearbeiten And _
BS_Kontodetails_TypRow.Betrag <> Merker_Betrag Then Versuch doch 'mal:
If (modus_Datensatz_Kontodetails = DatensatzModus.Bearbeiten) And _
(BS_Kontodetails_TypRow.Betrag <> Merker_Betrag) Then | |
Re: Eintrag ändern abfragen | | | Autor: Erichbru | Datum: 03.04.23 19:15 |
| erstmal Danke, habe es probiert hast recht die Klammern helfen.
habe nun zur Unterstützung noch 2 CheckBoxen hinzugefügt 1 für Neue Buchung, 1 für die Bearbeitung (selektierte Datarow)
der Aufbau sieht nun so aus
'Eingaben in TextBoxen prüfen
If String.IsNullOrEmpty(BuchungsdatumTextBox.Text) Then : _
Fehler_Pflichtfeld_Angelegt("Datum:") : Return : End If
If String.IsNullOrEmpty(BuchungsartTextBox.Text) Then : _
Fehler_Pflichtfeld_Buchungsart("Buchungsart:") : Return : End If
If String.IsNullOrEmpty(KategorieTextBox.Text) Then : _
Fehler_Pflichtfeld_Kategorie("Kategorie:") : Return : End If
If String.IsNullOrEmpty(KommentarTextBox.Text) Then : _
Fehler_Pflichtfeld_Kommentar("Kommentar:") : Return : End If
'auf 0 Eingabe reagieren wenn neuer Datensatz angelegt wird
If (chb_Status_Neu.Checked = True) And (Merker_Betrag = 0) Then
'Daten nicht speichern erst Datenfelder füllen >> speichern
ElseIf (chb_Status_berabeiten.Checked = True) And (Merker_Betrag = 0) _
Then 'auf 0 Eingabe und Änderung reagieren
'Daten nicht speichern
ElseIf (BS_Kontodetails_TypRow.Betrag <> Merker_Betrag) Then _
'hier Datenabgleich mit Datarow
'Datenänderung speichern abfrage ausgeben mit OK >> speichern
Else
End If könnte man so vorgehen ?
aber evtl. hat jemand eine schönere Lösung würde mich drüber freuen | |
Re: Eintrag ändern abfragen | | | Autor: Erichbru | Datum: 04.04.23 15:05 |
| Hallo alle so habe es gelöst und bin ganz zufrieden mit dem Ergebnis.
Hatte einige Denkfehler daher hat es nicht so funktioniert wie es sollte. Jetzt haut das hin denke ich zumindestens bei mir.
Private Sub btnspeichern_Click(sender As Object, e As EventArgs) Handles _
btnspeichern.Click
Dim NL = Environment.NewLine
Dim Titel As String = "Buchungsmeldung"
Dim Merker_Betrag As Double
'#
Merker_Betrag = Format(CDbl(nud_Betrag_Eingabe.Value), "#,0.00")
'Eingaben in TextBoxen prüfen
If String.IsNullOrEmpty(BuchungsdatumTextBox.Text) Then : _
Fehler_Pflichtfeld_Angelegt("Datum:") : Return : End If
If String.IsNullOrEmpty(BuchungsartTextBox.Text) Then : _
Fehler_Pflichtfeld_Buchungsart("Buchungsart:") : Return : End If
If String.IsNullOrEmpty(KategorieTextBox.Text) Then : _
Fehler_Pflichtfeld_Kategorie("Kategorie:") : Return : End If
If String.IsNullOrEmpty(KommentarTextBox.Text) Then : _
Fehler_Pflichtfeld_Kommentar("Kommentar:") : Return : End If
'Datensatz Modus prüfen
If (chb_Status_Neu.Checked = True) And (Merker_Betrag = 0) Then
'Daten erst nach Meldung speichern
MessageBox.Show("Geben Sie Bitte einen Betrag ein.")
ElseIf (chb_Status_berabeiten.Checked = True) And (Merker_Betrag = 0) _
Then
'Daten erst nach Meldung speichern
MessageBox.Show("Sie müssen noch einen Betrag eingeben.")
ElseIf (chb_Status_berabeiten.Checked = True) And ( _
BS_Kontodetails_TypRow.Betrag <> Merker_Betrag) Then
'Datarow prüfen
Meldung_Status_OK_aendern()
Else
Meldung_Status_OK()
End If
End Sub
wie kann man die Beträge in der "MsgBox" Rechtsbündig ausrichten ? optisch gefällt mir das nicht aber es klappt
Private Sub Meldung_Status_OK_aendern()
Dim NL As String = Environment.NewLine
Dim Titel As String = "Buchungsmeldung"
Dim istval = Format(CDbl(BS_Kontodetails_TypRow.Betrag), "#,0.00")
Dim sollval = Format(CDbl(BetragTextBox.Text), "#,0.00")
Dim Meldung As String = "Statusmeldung"
Meldung = Meldung & NL & "----------------------------"
Meldung = Meldung & NL & Format(Now, "dd.MM.yyyy HH:mm:ss")
Meldung = Meldung & NL & "----------------------------"
Meldung = Meldung & NL & "--------------Eingabe Wert: " & sollval
Meldung = Meldung & NL & "############################"
Meldung = Meldung & NL & "----------Datarow Wert Ist: " & istval
Meldung = Meldung & NL & "----------------------------"
Meldung = Meldung & NL & "-----Eingabewert übernehmen?"
Dim Abfrage_Result As DialogResult = MessageBox.Show(Meldung, Titel, _
MessageBoxButtons.OKCancel, MessageBoxIcon.Question)
If Abfrage_Result = System.Windows.Forms.DialogResult.OK Then
_Speichern()
Else
_Eingabeabbrechen()
End If
End Sub | |
Re: Eintrag ändern abfragen | | | Autor: emaNoN | Datum: 04.04.23 17:21 |
| „wie kann man die Beträge in der "MsgBox" Rechtsbündig ausrichten ?“
Kannst du knicken. Bau dir doch schnell ein eigenes Form für die Meldung zusammen. | |
Re: Eintrag ändern abfragen | | | Autor: Erichbru | Datum: 04.04.23 17:27 |
| äh ??
habe ich noch nicht gemacht! muss mal schauen was ich da hin bekomme es sei denn du hast ein Beispiel
Danke | |
Re: Eintrag ändern abfragen | | | Autor: Erichbru | Datum: 04.04.23 19:53 |
| erledigt!
sieht doch Richtig gut aus!! und die Beträge sind rechts ausgerichtet
mein Code: OK so ?
Private Sub Meldung()
Dim drowval = Format(CDbl(BS_Kontodetails_TypRow.Betrag), "#,0.00")
Dim eingval = Format(CDbl(BetragTextBox.Text), "#,0.00")
Using frm As New Messagebox_OK
With frm
.lbl_Status.Text = Format(Now, "dd.MM.yyyy HH:mm:ss")
.lbl_Datensatzmodus.Text = "Neue Buchung"
.lbl_Eingabewert.Text = eingval
.lbl_Datarowwert.Text = drowval
.ShowInTaskbar = True
.BringToFront()
.TopMost = True
.ShowDialog(Me)
'nachdem frm geschlossen wurde:
If .Eingabe_OK = True Then
_Speichern()
Else
_Eingabeabbrechen()
End If
End With
End Using
Me.Show()
End Sub | |
Re: Eintrag ändern abfragen | | | Autor: emaNoN | Datum: 04.04.23 20:48 |
| „sieht doch Richtig gut aus!!“
Diplomatisch ausgedrückt: Das liegt im Auge des Betrachters.
Sieht aus wie 'ne Anwendung aus den 90ern. Schlecht lesbare Farbkombination,
völliges Formatierungswirrwarr (mal linksbündig, zentriert oder rechtsbündig)
und „Cancel“ heißt im Deutschen „Abbrechen“.
Ansonsten, wenn's dir so gefällt unf funktioniert ist's doch OK. | |
Re: Eintrag ändern abfragen | | | Autor: Erichbru | Datum: 05.04.23 14:06 |
| OK wie du schon sagst das liegt im Auge des Betrachters. Habs bisschen überarbeitet
was sagt dein (euer Auge) dazu ? oder hat jemand eine "moderne Lösung"
es ist mir wichtig! es ging ja im Prinzip darum wie ich die Beträge (Eingabewert, Datarowwert) rechts untereinander ausrichten
kann in einer Standard MSGBox
Danke | |
Re: Eintrag ändern abfragen | | | Autor: emaNoN | Datum: 05.04.23 17:14 |
| Ganz ehrlich?
Der normale User will keine Romane lesen, sondern auf einen Knopf drücken und weiterarbeiten.
Zeile „Status“: Wenn der User Datum und Uhrzeit wissen möchte, sieht er kurz rechts unten in die Taskleiste.
Zeile „Datensatzmodus“: Ich weiß doch, ob ich auf Hinzufügen oder Bearbeiten gedrückt habe.
Zeile „Eingabewert“: Habe ich doch selbst gerade erst eingegeben, sollte ich also noch kennen.
Zeile „Datarow-Wert“: Wenn ich einen neuen Datensatz anlege, steht da 0, sollte jedem klar sein. Beim Ändern ist mir egal, was da mal drinstand, ich will es ja auf einen (vermeintlich) richtigen Wert aktualisieren. | |
Re: Eintrag ändern abfragen | | | Autor: Erichbru | Datum: 05.04.23 17:23 |
| Danke, Danke für die Antwort wenn ich mir das so anschaue beim testen haste irgendwie Recht
geprüft wird jedes Pflichtfeld, das sollte dem User reichen auch das er noch einen "Betrag" eingeben soll wird abgefangen
ich denke schmeiß das wieder raus ist ja kein akt...
also noch mal Danke und Genug zu diesem Thema denke ich!! | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
sevWizard für VB5/6
Professionelle Assistenten im Handumdrehen
Erstellen Sie eigene Assistenten (Wizards) im Look & Feel von Windows 2000/XP - mit allem Komfort und zwar in Windeseile :-) Weitere InfosTipp des Monats Access-Tools Vol.1
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|