| |
VB.NET - Ein- und UmsteigerEintrag in Comobox hinzufügen (Enter) | | | Autor: Knabber | Datum: 18.02.19 20:13 |
| Hallo
Ich habe da mal eine Frage zur Combobox.
Die Combobox ist gebunden an ein Dataset(AccessDB) und Bestandteil des Detailview.
Ich kann über Buttons (anlegen,bearbeiten, entfernen,Übernehmen, Abbruch)
in der Combobox Persistieren nach Lust und Laune.
Nun möchte ich aber, das Ich einen neuen Eintrag in der Combobox nur über Die "Entertaste" einfüge bzw. über "Del" einen Eintrag lösche.
Private Sub cmb_Ausgaben_KeyDown(ByVal sender As System.Object, ByVal e As _
System.Windows.Forms.KeyEventArgs) Handles cmb_Ausgaben.KeyDown
If e.KeyData = Keys.Enter Then
Me.Validate()
KategorieBindingSource.EndEdit()
Me.KategorieTableAdapter.Update(Me.HaushaltskasseDataSet.Kategorie)
End If
If e.KeyData = Keys.Delete Then
KategorieBindingSource.RemoveCurrent()
TableAdapterManager.UpdateAll(Me.HaushaltskasseDataSet)
End If
End Sub Bei diesem Code kommt zwar keine Fehlermeldung aber es passiert auch nichts. Ist so etwas überhapt möglich ?
vielen Dank schon mal im Vorraus
Sa | |
Re: Eintrag in Comobox hinzufügen (Enter) | | | Autor: Manfred X | Datum: 18.02.19 21:54 |
| Hallo!
Wird der Inhalt der Datenbank modifiziert?
Eventuell mußt Du nur ein Reset der Bindingsource
durchführen, damit die durchgeführten Änderungen
auch im Formular sichtbar werden.
Ein Update der AccessDB nach jeder einzelnen Operation
ist weniger empfehlenswert. | |
Re: Eintrag in Comobox hinzufügen (Enter) | | | Autor: Knabber | Datum: 18.02.19 21:56 |
| Nein, hab nachgeschaut in der DB passiert nichts.
Das DB update werde ich entfernen | |
Re: Eintrag in Comobox hinzufügen (Enter) | | | Autor: Knabber | Datum: 19.02.19 08:06 |
| Hallo manfred x
Du Schreibst.....
Ein Update der AccessDB nach jeder einzelnen Operation
ist weniger empfehlenswert.
Ja, Wann wäre denn das richtige Event für ein Update der DB ?
Vielleicht beim Formclosing ???
Ich zeige dir mal meinen ganzen Persistiercode.
Vielleicht mache Ich hier ja einen Grundsätzlichen "Systematischen Fehler" und das immer wieder.
Eigentlich mache ich das immer so . Immer falsch???
könntest du das eventuell bei Fehler berichtigen. Dann wird diese Fehler in Zukunft nicht mehr gemacht.
' Persistieren Kategorie
Private Sub btn_Ausgaben_neu_anlegen_Click(sender As Object, e As EventArgs) _
Handles btn_Ausgaben_neu_anlegen.Click
KategorieBindingSource.AddNew()
End Sub
Private Sub btn_Ausgaben_neu_bearbeiten_Click(sender As Object, e As _
EventArgs) Handles btn_Ausgaben_neu_bearbeiten.Click
KategorieBindingSource.EndEdit()
KategorieTableAdapter.Update(HaushaltskasseDataSet)
End Sub
Private Sub btn_Ausgaben_neu_entfernen_Click(sender As Object, e As _
EventArgs) Handles btn_Ausgaben_neu_entfernen.Click
KategorieBindingSource.RemoveCurrent()
TableAdapterManager.UpdateAll(Me.HaushaltskasseDataSet)
End Sub
Private Sub btn_Ausgaben_neu_speichern_Click(sender As Object, e As EventArgs) _
Handles btn_Ausgaben_neu_speichern.Click
Me.Validate()
KategorieBindingSource.EndEdit()
Me.KategorieTableAdapter.Update(Me.HaushaltskasseDataSet.Kategorie)
End Sub
Private Sub btn_Ausgaben_neu_Abbruch_Click(sender As Object, e As _
EventArgs) Handles btn_Ausgaben_neu_Abbruch.Click
Me.KategorieBindingSource.CancelEdit()
End Sub Gruß
SA | |
Re: Eintrag in Comobox hinzufügen (Enter) | | | Autor: Manfred X | Datum: 19.02.19 09:36 |
| Das ist eine Frage der Effizienz.
Man sollte die Zahl der Update-Zugriffe auf die Datenbank
nicht zu sehr anwachsen lassen. Das vereinfacht auch die
Datenbank-Verwaltung für Access.
So weit ich verstanden habe, führst Du bei jeder
Änderung der Combobox sofort ein Update der DB aus.
"FormClosing" ist dafür ein besser geeignetes Event.
Du könntest zusätzlich einen Timer einbauen
und eine auf formularebene deklarierte Variable
"Modify" einrichten (Boolean).
Bei jeder Änderung der geladenen Daten wird "Modifiy"
auf true gesetzt.
Im Timer-Tick (z.B. alle 5 bis 10 Minuten) wird geprüft,
ob die Modify"-Variable auf "true" steht.
Falls ja: Datenbank Update durchführen und "Modify"
wieder auf false setzen.
Das Update kann man in einem eigenen Thread erledigen.
Der "Aufwand" macht natürlich nur Sinn, wenn Du eine größere
Anzahl von Veränderungen der DB-Daten im Dialog vornimmst. | |
Re: Eintrag in Comobox hinzufügen (Enter) | | | Autor: Knabber | Datum: 19.02.19 10:11 |
| Na, dann glaube ich das es sich bei mir kaum lohnt einen Timer einzusetzen.
es sind maximal 100 Eintraege / Monat (mal 10 mehr)aber eher weniger.
und, vielleicht habe ich da einen Denkfehler aber....
Die Daten werden ja weiterverarbeitet z.b. auf eine 2.Form in einem Chartcontrol
und dort werden die Daten ja aus der DB geholt. Es müssen die Daten also in der DB gespeichert sein.
oder im DGV. dort werden die Daten benötigt für Spaltensummen. Liegen zwar im dataset aber letztendlich werden die Daten ja auch aus der DB ausgelesen.
vielen Dank für Deine wertvolle Hilfe
SA | |
| 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
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|