DB mit Acess

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Sam85.

    DB mit Acess

    Hallöchen,

    ich habe eine Rückfrage:

    Wenn ich eine DB am laufen habe (läuft auch ganz ok) und nun zwei Spalten hinzufügen will (soweit so gut) werden die Daten nicht gespeichert, dafür entsteht aber eine Access Datei mit Record-Locking-Information.
    Bedeutet diese Datei, das ein User noch aktiv damit arbeitet und die Änderungen deswegen nicht stattfinden können? Oder muss ich die zwei neuen Spalten auch manuell in die Access Datei einfügen?

    Freue mich über Feedback :).

    (Hier der Code falls nötig).

    Edit:
    Ich habe es jetzt hinbekommen :)...auch wenn ich keine der beiden Fragen dadurch beantworten konnte (vielleicht kann man mir das dennoch jemand erklären).
    Dafür etwas anderes, die erste Zeile wird in der Combobox nun nicht mehr richtig angezeigt...wie kann das verursacht worden sein?
    Stattdessen kommt aufeinmal "System.Data.DataRowView", anstelle des Textes aus dem DataGridView welche mit Access verbunden ist, sobald ich den ersten Eintrag auswähle. Das trifft auch nur auf den ersten Eintrag zu, die anderen werden alle korrekt angezeigt. Gleichzeitig habe ich auch ein "Reset" Button eingebaut (alle Textboxes werden dann einfach wieder "" oder "0,00") und sobald ich den betätige, wird nur dieser Eintrag (Zeile) ebenfalls nicht mehr korrekt angezeigt.

    Spoiler anzeigen

    VB.NET-Quellcode

    1. Imports System.Data.OleDb
    2. Imports System.Data.DataSet
    3. Public Class z_Einlagen_Tabelle
    4. Private Sub z_Einlagen_Tabelle_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    5. 'TODO: Diese Codezeile lädt Daten in die Tabelle "EinlagenDataSet.Bausteine". Sie können sie bei Bedarf verschieben oder entfernen.
    6. Me.BausteineTableAdapter.Fill(Me.EinlagenDataSet.Bausteine)
    7. End Sub
    8. Private Sub btn_before_Click(sender As Object, e As EventArgs) Handles btn_before.Click
    9. BausteineBindingSource.MovePrevious()
    10. End Sub
    11. Private Sub btn_next_Click(sender As Object, e As EventArgs) Handles btn_next.Click
    12. BausteineBindingSource.MoveNext()
    13. End Sub
    14. Private Sub btn_add_Click(sender As Object, e As EventArgs) Handles btn_add.Click
    15. BausteineBindingSource.AddNew()
    16. End Sub
    17. Private Sub btn_save_Click(sender As Object, e As EventArgs) Handles btn_save.Click
    18. On Error GoTo Err
    19. BausteineBindingSource.EndEdit()
    20. BausteineTableAdapter.Update(Me.EinlagenDataSet.Bausteine)
    21. MessageBox.Show("Gespeichert.")
    22. Err:
    23. Exit Sub
    24. End Sub
    25. Private Sub btn_delete_Click(sender As Object, e As EventArgs) Handles btn_delete.Click
    26. BausteineBindingSource.RemoveCurrent()
    27. End Sub
    28. Private Sub btn_close_Click(sender As Object, e As EventArgs) Handles btn_close.Click
    29. Me.Close()
    30. End Sub
    31. Private Sub BausteineBindingNavigatorSaveItem_Click(sender As Object, e As EventArgs) Handles BausteineBindingNavigatorSaveItem.Click
    32. Me.Validate()
    33. Me.BausteineBindingSource.EndEdit()
    34. Me.TableAdapterManager.UpdateAll(Me.EinlagenDataSet)
    35. End Sub
    36. End Class


    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „Sam85“ ()

    Versuchma dein aktuelles Problem iwie nachvollziehbar zu beschreiben.
    Sowas:

    Sam85 schrieb:

    Stattdessen kommt aufeinmal "System.Data.DataRowView", anstelle des Textes aus dem DataGridView welche mit Access verbunden ist, sobald ich den ersten Eintrag auswähle.
    ist nur wirres Zeug, und ich frage mich, ob "System.Data.DataRowView" mittm Bus kommt oder per Bahn, und wie lange es bleiben will, ... ;)
    @ErfinderDesRades Ja es kommt mit der Bahn :D ...ich habe mal in Bildern versucht das Ereignis zu beschreiben.
    Also ich wähle das erste Element aus Bild1, dann betätige ich den "Reset Button" (der Code ist unten im Spoiler) und dann passiert Bild2.
    Der Button soll einfach nur die Felder, wie auf Anfang zurücksetzen nur wie der Text im ersten Element zu "System.Data.DataRowView" wird, dass kann ich nicht nachvollziehen.

    Zusätzlich passiert auch, dass egal bei welchen Element ich dann den Button Reset drücke, die Verbindungen dieses Element nicht mehr bestehen also die TextBoxen leer sind, wo vorher etwas drin stand. Aber nur solange bis ich halt das Form wieder neu starte.

    Und, was ich fast vergessen habe, das erste Element in der Combobox übernimmt auch keine Verbindungen aber alle anderen Element schon?!

    Ist es so etwas besser oder immer noch unverständlich? :whistling:

    Spoiler anzeigen

    VB.NET-Quellcode

    1. Private Sub btn_reset_Click(sender As Object, e As EventArgs) Handles btn_reset.Click
    2. 'Reset Befreit
    3. If ckb_free.Checked = True Then ckb_free.Checked = False
    4. 'Rest TextBox GroupBox Calculation
    5. For Each tbx As TextBox In gb_calc.Controls.OfType(Of TextBox)()
    6. tbx.Text = "0,00"
    7. Next
    8. 'Reset Checkbox Panel
    9. Dim pan() = {pan_e, pan_b}
    10. For Each panel As Panel In pan
    11. For Each ckb As CheckBox In panel.Controls.OfType(Of CheckBox)()
    12. ckb.Enabled = True
    13. ckb.Checked = False
    14. Next
    15. Next
    16. 'Reset Panel Main
    17. tbx_au.Text = "0,00"
    18. tbx_fix.Text = "0,00"
    19. tbx_class.Text = ""
    20. cbx_main.Text = ""
    21. tbx_artikel.Text = ""
    22. tbx_privat.Text = "0,00"
    23. End Sub


    Bilder
    • Bild1.jpg

      104,59 kB, 1.152×648, 158 mal angesehen
    • Bild2.jpg

      103,58 kB, 1.152×648, 165 mal angesehen

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Sam85“ ()

    @ErfinderDesRades ...stimmt, egal welcher Button aber nur, wenn nicht das erste Item ausgewählt ist. Wie kann das sein? ?(
    Seltsam ist auch, dass eigentlich nur die Beschriftung in der ComboBox sich ändert, die übrigen Bindings werden weiterhin korrekt angezeigt.

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