Zahlenwert aus Access DB löschen und eintragen

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von PiasSoft.

    Zahlenwert aus Access DB löschen und eintragen

    Hallo zusammen,

    ich stehe zur Zeit vor einem kleinen Problem.
    Ich möchte einen Dezimalzahlenwert aus einer Microsoft Access 2003 Tabelle löschen, und einen neuen eintragen.
    Die Tabelle hat den Namen "KS", der Spaltenname ist ebenfalls "KS".
    Die Feldgröße wurde auf "Dezimal" gestellt, das Format auf "Allgemeine Zahl".
    Die Zahl die bereits eingetragen ist und gelöscht werden soll ist "576,75".

    Der Code für das löschen:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Dim con As New OleDb.OleDbConnection
    2. Dim cmd As New OleDb.OleDbCommand
    3. con.ConnectionString = _
    4. "Provider=Microsoft.Jet.OLEDB.4.0;" & _
    5. "Data Source=" & Application.StartupPath & "\Datenbank\test.mdb" & ";" & "Jet OLEDB:Database Password = " 'Passwort entfernt ;D
    6. cmd.Connection = con
    7. cmd.CommandText = "delete from KS where KS = " & SKS 'SKS ist eine Decimal -Variable mit dem Zahlenwert aus der Tabelle;
    8. 'Außerdem tritt hier der Fehler auf
    9. Try
    10. con.Open()
    11. cmd.ExecuteNonQuery()
    12. con.Close()
    13. Catch ex As Exception
    14. MsgBox(ex.Message) 'Fehlermeldung an dieser Stelle: "Syntaxfehler (Komma) in Abfrageausdruck 'KS = 576,75'."
    15. End Try


    Ich denke mir, dass er den Zahlenwert nicht als ganzen Wert ansieht, sondern als 2 Werte getrennt durch das Komma, und deshalb die Meldung kommt.
    Allerdings weiß ich nicht wie man das umgehen kann. Bei Strings werden ja hochkommas (') gesetzt, gibt es bei Zahlenwerten auch ein spezielles Zeichen?
    Meines Wissens nach nicht, deswegen weiß ich auch nicht wie ich den Wert sonst noch angeben soll.
    Wie gesagt, Tabelle ist auf Dezimalwerte eingestellt.

    Weiß jemand, woran es liegen könnte, dass er den Zahlenwert nicht als solchen ansieht?


    Gruß, Pias :)
    guck dir mal die UPDATE Funktion an, die ist wahrscheinlich sinnvoller für dich ;)

    Zu deinem Problem. Hochkommas setzt man nur bei einem String, nicht bei Zahlenwerten. Bei Zahlenwerten werden keine sonstigen Zeichen verwendet. Aber du darfst kein Komma in SQL verwendet, sondern du benötigst einen Punkt bei Zahlenfeldern.


    Gruß
    Hallo,

    Danke für deine Antwort.
    Update? Klingt logisch, schau ich mir gleich mal an.
    Das Hochkommas nur bei Strings vorkommen, habe ich oben ja schon erwähnt, deshalb auch meine Frage ob es spezielle Zeichen für Zahlenwerte gibt.


    /Update:

    So, habe die Sache nun mit der UPDATE Anweisung probiert, funktioniert einwandfrei.
    Hier nur nochmal der Code, falls es jemanden interessiert:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Dim con As New OleDb.OleDbConnection
    2. Dim cmd As New OleDb.OleDbCommand
    3. con.ConnectionString = _
    4. "Provider=Microsoft.Jet.OLEDB.4.0;" & _
    5. "Data Source=" & Application.StartupPath & "\Datenbank\test.mdb" & ";" & "Jet OLEDB:Database Password = "
    6. cmd.Connection = con
    7. cmd.CommandText = "update KS set KS = " & SKS ' SKS wieder die gleiche Variable, Komma vorher aber durch Punkt ersetzt
    8. Try
    9. con.Open()
    10. cmd.ExecuteNonQuery()
    11. con.Close()
    12. Catch ex As Exception
    13. MsgBox(ex.Message)
    14. End Try



    Vielen Dank und Gruß, Pias :)

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