vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
NEU! sevCoolbar 3.0 - Professionelle Toolbars im modernen Design!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Eintrag 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
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

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