Datensätze lassen sich nicht speichern

  • VB.NET

Es gibt 23 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Datensätze lassen sich nicht speichern

    Ich bekomme immer folgende Fehlermeldung: Eine INSERT INTO-Abfrage kann kein mehrwertiges Feld enthalten.

    Datensätze lassen sich deshalb nicht speichern.
    Obwohl ich ganz normale Textfelder aus der Datenbank benutze und dieses sind ja keine Mehrwertigen-Felder wie (ComboBox).

    Grundsätzlich nutze ich die Felddatentypen (Text,Datum/Uhrzeit,Ja/Nein,Memo,Währung,Anlagen).

    In der VB Anwendung Frage ich auf einer anderen Form eine andere Tabelle ab, diese besteht aus (Text und Datumsfeldern) hier funktioniert das speichern, deshalb bin ich ein wenig irritiert.
    Sorry aber Code gibt es nicht wirklich - da ich ja in VB die die Accessdatenbank einbinde.

    So das ich sie entweder als DataGripView oder als Detail- Ansicht einbinde.

    In diesem moment fügt er ja auch die Navigations-Leiste hinzu. Unter dem Speicher-Symbol ist dann folgender Code zu finden:

    VB.NET-Quellcode

    1. Me.Validate()
    2. Me.Tbl_KundendatenBindingSource.EndEdit()
    3. Me.TableAdapterManager.UpdateAll(Me._Pedimed_Version4_0_SoloDataSet)


    Als kleine Anmerkung - In der Access Datenbank die ich in das Projekt mit einbinden möchte klappt das Speichern, aber villt ist ja auch da der Wurm drin.

    Auf wunsch kann ich gerne die Ursprüngliche Datenbank oder Das VB Projekt einmal hochladen.
    Also ich sollte villt. mal die Fehlermeldung Posten und nochmal den hergang wie er auftritt.


    Also ich gebe wie in dem Ersten Screenshot einen Datensatz ein und drücke auf Speichern und dann erscheint die Fehlermeldung aus Schreenshot zwei.



    Auf einer anderen Form habe ich aus der gleichen Datenbank einen andere Tabelle als DataGribView eingefügt, hier klappt alles wunderbar mit dem Speichern.
    Bilder
    • ScreenHunter_03 Mar. 27 21.50.jpg

      19,31 kB, 998×445, 192 mal angesehen
    • ScreenHunter_01 Mar. 27 21.39.jpg

      104,04 kB, 1.200×554, 224 mal angesehen
    Dieses steht im InsertCommand

    VB.NET-Quellcode

    1. INSERT INTO tbl_Kundendaten
    2. (Anrede_ID_f, Termin_ID_f, Behand_Verk_ID_f, Nachname, Vorname, Plz, Wohnort, Straße, Telefon, Beruf, Geboren, Gewicht, Empfohlen_durch, A_Hornhaut,
    3. [A_Hühneraugen], A_Hallus_Valgus, A_Warzen, A_Hautpilz, A_Freitext, [A_Hämophilie], A_Diabetes, A_Medikamente, [L_Senkfuß], [L_Spreitzfuß], [L_Knickfuß_innen],
    4. [L_Knickfuß_außen], [L_Hohlfuß], [L_Plattfuß], [R_Senkfuß], [R_Spreitzfuß], [R_Knickfuß_innen], [R_Knickfuß_außen], [R_Hohlfuß], [R_Plattfuß],
    5. Y_Diverse_Bemerkungen, Z_optZeit15, Z_optZeit30, Z_optZeit45, Z_optZeit60, [B_Andere_Fußdeform], [B_Andere_Fußdeform_links], [B_Andere_Fußdeform_rechts],
    6. [C_Fußschwellung_links], [C_Fußschwellung_rechts], D_Einlagen_konfektioniert, [D_Einlagen_nach_maß], D_Einlagen_Material, [D_Einlagen_Größe], E_obersch_li,
    7. E_obersch_re, E_untersch_li, E_untersch_re, E_Krampfadern, V_Beh_Datum, V_Beh_Behandlung, V_Beh_Euro, [V_Ver_Verkäufe], V_Ver_Euro, V_Bemerkung,
    8. V_Ver_Datum, Anlage_Bilder, [F_Hühneraugen_a_Zehn], [F_Hühneraugen_z_Zehn], F_Hammerzehn, F_Nagelpilz, F_Eingew_Nagel, [F_Zustand_Nägel])
    9. VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
    10. ?)



    Ich vermute mal das die vielen Fragezeichen das problem sind oder ?
    Bilder
    • ScreenHunter_05 Mar. 27 23.43.jpg

      96,21 kB, 576×706, 228 mal angesehen
    nein, die ? sind Platzhalter für CommandParameter.

    jo, keine Ahnung, was in diesem Monster das böse mehrwertige Feld sein mag.

    Aber das DAtenmodell scheint auch völlig verfehlt. Etwa die vielen Krankheiten sollten glaub in eine Extra-Tabelle, ebenso wie die vielen BehandlungsArten
    also ich finde nix ungewöhnliches an diesem Insert-Statement.
    Als nächstes würde ich alle Datentypen der Tabellenspalten durchgucken, ob da ein ungewöhnlicher dabei ist, den man iwie mit "mehrwertigem Feld" in Verbindung bringen kann.

    Achso - ich setze mal voraus, dass du Option Strict On! hast?
    Würde jetzt gerne noch den "Kunden" mit dem passenden Termin Verbinden. So das wenn ich einen Datensatz aufrufe unten in dem DataViewGrip die Gefilterten Termine angezeigt werden.


    Desweitern brauche ich die funktionen "Speichern", "Löschen", "Nächster" "Vorheriger", "Erster", "Letzer"- Datensatz - diese Funktionen habe ich leider nicht bei Google gefunden



    Würde mich freuen wenn du mich dabei nochmal unterstützen kannst.
    Also das wird sehr umfangreich, weil dein Datenmodell komplett nicht brauchbar ist, und gegen alle möglichen Grundprinzipien relationaler Datenmodellierung verstößt.

    zunächstmal empfehle ich die relationale GrundIdee zu kapieren.

    Dann auf eine DB verzichten, und erstma Datenbänkerei-Einstieg

    Und dann könnemer erst anfange, übers Datenmodell zu reden. Und das ufert halt häufig aus, gugge etwa mein Benamungs-Schema für DB-Entitäten