Hilfe bei Access

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von picoflop.

    Hilfe bei Access

    hallo,
    ich befinde mich gerade in einer zwickmühle, wenn man das so sagen darf.
    den code habe ich nur habe noch ein paar fehler dadrin.

    kann mir vielleicht jemand helfen über z.b. skype oder teamviewer?
    würde mich sehr über hilfe freuen.

    lg rene
    - Poste den Code und es wird dir wahrscheindlich nicht nur 1 helfen sondern mehrere.
    - Falls es eine Lösung geben sollte, kann die Nachwelt eventuell anhand dieser Lösung sein eigenes Problem eventuell auch beheben.

    lg
    ScheduleLib 0.0.1.0
    Kleine Lib zum Anlaufen von Code zu bestimmten Zeiten
    ok hieri st der code...:

    VB.NET-Quellcode

    1. Imports System.Data.OleDb
    2. Class neuevok
    3. Dim con As New OleDbConnection
    4. Dim cmd As New OleDbCommand
    5. Dim reader As OleDbDataReader
    6. Dim pnummer As New ArrayList
    7. Private Sub neuevok_Load(
    8. ByVal sender As System.Object,
    9. ByVal e As System.EventArgs
    10. ) Handles MyBase.Load
    11. con.ConnectionString =
    12. "Provider=Microsoft.Jet.OLEDB.4.0;" &
    13. "Data Source= lernen.mdb"
    14. cmd.Connection = con
    15. End Sub
    16. Private Sub cmdAlleSehen_Click(
    17. ByVal sender As System.Object,
    18. ByVal e As System.EventArgs
    19. ) Handles cmdAlleSehen.Click
    20. AlleSehen()
    21. End Sub
    22. Private Sub cmdNameSuchen_Click(
    23. ByVal sender As System.Object,
    24. ByVal e As System.EventArgs
    25. ) Handles cmdNameSuchen.Click
    26. Try
    27. con.Open()
    28. cmd.CommandText =
    29. "select * from personen where" &
    30. " name like '%" & txtDeutsch.Text & "%'"
    31. MessageBox.Show(cmd.CommandText)
    32. Ausgabe()
    33. Catch ex As Exception
    34. MessageBox.Show(ex.Message)
    35. End Try
    36. con.Close()
    37. End Sub
    38. Private Sub cmdEinfügen_Click(
    39. ByVal sender As System.Object,
    40. ByVal e As System.EventArgs
    41. ) Handles cmdEinfügen.Click
    42. Dim anzahl As Integer
    43. Try
    44. con.Open()
    45. cmd.CommandText =
    46. "insert into vokabeln " &
    47. "(englisch, deutsch) values ('" &
    48. txtDeutsch.Text & "', '" &
    49. txtEnglisch.Text & "', "
    50. MessageBox.Show(cmd.CommandText)
    51. anzahl = cmd.ExecuteNonQuery()
    52. If anzahl > 0 Then
    53. MessageBox.Show(
    54. "Ein Datensatz eingefügt")
    55. End If
    56. Catch ex As Exception
    57. MessageBox.Show(ex.Message)
    58. MessageBox.Show("Bitte mindestens einen" &
    59. " Namen, eine eindeutige Personal" &
    60. "nummer und ein gültiges Geburts" &
    61. "datum eintragen")
    62. End Try
    63. con.Close()
    64. AlleSehen()
    65. End Sub
    66. Private Sub cmdÄndern_Click(
    67. ByVal sender As System.Object,
    68. ByVal e As System.EventArgs
    69. ) Handles cmdÄndern.Click
    70. Dim anzahl As Integer
    71. Try
    72. con.Open()
    73. cmd.CommandText =
    74. "Deutsch = '" & txtDeutsch.Text & "', " &
    75. "Englisch = '" & txtEnglisch.Text
    76. MessageBox.Show(cmd.CommandText)
    77. anzahl = cmd.ExecuteNonQuery()
    78. If anzahl > 0 Then
    79. MessageBox.Show("Datensatz geändert")
    80. End If
    81. Catch ex As Exception
    82. MessageBox.Show(ex.Message)
    83. MessageBox.Show("Bitte einen Datensatz" &
    84. " auswählen und mindestens einen" &
    85. " Namen, eine eindeutige Personal" &
    86. "nummer und ein gültiges Geburts" &
    87. "datum eintragen")
    88. End Try
    89. con.Close()
    90. AlleSehen()
    91. End Sub
    92. Private Sub cmdLöschen_Click(
    93. ByVal sender As System.Object,
    94. ByVal e As System.EventArgs
    95. ) Handles cmdLöschen.Click
    96. Dim anzahl As Integer
    97. If MessageBox.Show("Wollen Sie den ausge" &
    98. "wählten Datensatz wirklich löschen?",
    99. "Löschen", MessageBoxButtons.YesNo) =
    100. DialogResult.No Then
    101. Exit Sub
    102. End If
    103. Try
    104. con.Open()
    105. cmd.CommandText = "delete from vokabeln " &
    106. "where personalnummer = " &
    107. pnummer(lstTab.SelectedIndex)
    108. MessageBox.Show(cmd.CommandText)
    109. anzahl = cmd.ExecuteNonQuery()
    110. If anzahl > 0 Then
    111. MessageBox.Show("Datensatz gelöscht")
    112. End If
    113. Catch ex As Exception
    114. MessageBox.Show(ex.Message)
    115. End Try
    116. con.Close()
    117. AlleSehen()
    118. End Sub
    119. Private Sub AlleSehen()
    120. Try
    121. con.Open()
    122. cmd.CommandText = "select * from vokabel"
    123. Ausgabe()
    124. Catch ex As Exception
    125. MessageBox.Show(ex.Message)
    126. End Try
    127. con.Close()
    128. txtDeutsch.Text = ""
    129. txtEnglisch.Text = ""
    130. End Sub
    131. Private Sub Ausgabe()
    132. reader = cmd.ExecuteReader()
    133. lstTab.Items.Clear()
    134. pnummer.Clear()
    135. Do While reader.Read()
    136. lstTab.Items.Add(reader("Deutsch") & " # " &
    137. reader("Englisch"))
    138. Loop
    139. reader.Close()
    140. End Sub
    141. Private Sub lstTab_SelectedIndexChanged(
    142. ByVal sender As System.Object,
    143. ByVal e As System.EventArgs
    144. ) Handles lstTab.SelectedIndexChanged
    145. Try
    146. con.Open()
    147. cmd.CommandText = "select * from vokabel" &
    148. " where personalnummer = " &
    149. pnummer(lstTab.SelectedIndex)
    150. reader = cmd.ExecuteReader()
    151. reader.Read()
    152. txtDeutsch.Text = reader("Deutsch")
    153. txtEnglisch.Text = reader("Englisch")
    154. reader.Close()
    155. Catch ex As Exception
    156. MessageBox.Show(ex.Message)
    157. End Try
    158. con.Close()
    159. End Sub
    160. End Class


    also diesen code haeb ich aus meinen schlauen buch genommen.... eigendlich soll nur passieren, das man die acces datenbank bearbeiten kann... also einmal ändern dann einfügen und eben löschen ... nur leider zeigt er mir viele fehler an. das sind schon zuviele, das ich hier die alle aufsagen kann, deswegen meinte ich ja mit teamviewer
    Das Problem das Du hast liegt in dem Namen der Spalte "Name". "Name" ist bei dem extrenen Zugriff auf Access-DB ein reserviertes Wort und verursacht immer wieder Ärger.

    Lösung: In Access den Spaltennamen ändern, sql anpassen und schon funktionierts.

    @fichz: Hast Du schon einmal bei Access mit den DB-Paramteren sinnvoll arbeiten können? Da sieht man, dass Access keine vollwertige DB ist sondern ein schönes Frontend-Werkzeug.
    NB. Es ist doch schön, wenn man lesbare Namen vergibt. Siehe auch [VB.NET] Beispiele für guten und schlechten Code (Stil).