Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Neue Eingaben werden nicht in der Tabelle hinterlegt

Begonnen von MRosena, Oktober 25, 2014, 13:31:18

⏪ vorheriges - nächstes ⏩

MRosena

Hallo,

ich hätte da mal gerne ein Problem.
Wenn ich in meinen Formular eine neue Beanstandung bzw. Lösung eingebe, dann wird diese nicht in der Tabelle Complaint bzw. Solution übernommen. Ich bekomme dann immer angezeigt, dass der Datensatz nicht gespeichert werden kann, weil dies nicht in Complaint bzw. Solution hinterlegt ist.
Ich habe alle Tabellen mit meiner Haupttabelle (Daten) verbunden.
Auch habe ich eingestellt, dass nicht nur Werte aus den Tabellen (Complaint bzw. Solution) verwendet werden können.

Ich habe mal meine Datenbank angehangen. Vielleicht hat ja jemand eine zündende Idee
-------------------------------------------------------
Viele Grüße aus dem schönen Hessen
Martin, MRosena

;) Learning by doing not by spoon-feed ;)

bahasu

Hi,

die Chancen auf Hilfe steigen enorm, wenn Du die Datei nicht als accdb sondern im access2003-Format als mdB zur Verfügung stellst.

Harald
Servus

DF6GL

Hallo,


Wenn ich in meinen Formular eine neue Beanstandung bzw. Lösung eingebe, dann wird diese nicht in der Tabelle Complaint bzw. Solution übernommen.

Warum sollte das passieren?  Das Form ("Connectivity Report") ist an Tabelle "Data" gebunden. Dorthin würde, wenn überhaupt, zunächst die neue Eingabe abgespeichert.

ZitatIch bekomme dann immer angezeigt, dass der Datensatz nicht gespeichert werden kann, weil dies nicht in Complaint bzw. Solution hinterlegt ist.

Access lügt hier nicht, das stimmt.  Trotz "Nur Listeneinträge" auf "Nein" sorgt die gesetzte referentielle Integrität der Beziehungen dafür, dass kein "unbekannter" Text in das Feld geschrieben werden kann.

Insofern sollte "Nur Listeneintrage" auf ja gesetzt werden und das Ereignis "Bei nicht in Liste" dazu verwendet werden, um den neuen Text zunächst in die entspr. Nachschlagetabelle abzulegen, um ihn danach in Tabelle Data abspeichern zu können. Damit ist dann die ref. Integrität weiterhin gewahrt.

BTW:  Die Beziehungen sollten über die Primärschlüsselfelder (ID) definiert werden und nicht über irgendwelche Attribut-Felder...
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

MRosena

Hallo bahasu,

ich hätte gerne die Datenbank als MDB reingestellt. Beim konvertieren bekomme ich eine Fehlermeldung (siehe Anhang)
Ich habe schon alle Makros und Abfragen gelöscht, aber leider immer noch die gleiche Meldung.

-------------------------------------------------------
Viele Grüße aus dem schönen Hessen
Martin, MRosena

;) Learning by doing not by spoon-feed ;)

MRosena

Hallo DF6GL,

vielen Dank für Deine Antwort.
Ich werde wohl den Tipp von Don Karl befolgen:
Zitat
Wenn du ohne Nachfrage den eingegebenen Wert in die Datenherkunft des Kombis übernehmen willst, dann
- sortiere das Kombi nach dem Feld, dessen Wert eingegeben wird,
- setze die Eigenschaft Nur Listeneinträge auf Ja und
- verwende im Ereignis Bei nicht in Liste des Kombis Code wie diesen:

'************** CODE START **************
Response = acDataErrAdded
Dim db As DAO.Database
Dim rs As DAO.Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("Tabellenname", dbOpenDynaset)

rs.AddNew
rs!Feldname = NewData
rs.Update

rs.Close : Set rs = Nothing
Set db = Nothing
'************** CODE ENDE **************

Bei "Tabellenname" muss ich dann entsprechend meiner Tabelle (Complaint bzw. Solution) eingeben. Bei Feldname (rs!Feldname = NewData) muss ich dann auch den Feldnamen Complaint bzw. Solution eingeben.

Ist dies so richtig?

Vielen Dank für die Antwort!


-------------------------------------------------------
Viele Grüße aus dem schönen Hessen
Martin, MRosena

;) Learning by doing not by spoon-feed ;)

DF6GL

Hallo,

ja, das wäre so richtig....

Mir ist aber noch schleierhaft, warum Du den jeweiligen Text sowohl in "Data" als auch in den "Nachschlagtabellen" abspeichern willst...  Das verstößt gegen Normalisierungsregeln, ergibt Redundanzen  und ist an sich überflüssig...
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

MRosena

Hallo DF6GL,

ich möchte eine Auswahlmöglichkeit haben. So das ich eine wiederkehrende Beanstandung bzw. Lösung einfach anklicken kann und diese dann übernommen wird.

Wie ich das ohne die Tabelle Complaint bzw. Solution bewerkstelligen kann ist mir nicht bekannt.

Evtl. hast Du ja dafür auch einen Lösungsansatz. Dann würde ich mir natürlich die beiden Tabellen sparen.

Mit freundlichen Grüßen aus Hessen
-------------------------------------------------------
Viele Grüße aus dem schönen Hessen
Martin, MRosena

;) Learning by doing not by spoon-feed ;)

DF6GL

Hallo,

Erstell für die Kombifelder je eine Abfrage , die Werte aus der Tabelle "Data" , also derselben Tabelle, in der die Texte gespeichert werden sollen, ausliest und im Kombilistenfeld anzeigt:

Für Kombifeld "Solution":

Datensatzherkunft:  Select Solution from Data order by Solution

Spaltenanzahl: 1
Gebundene Spalte: 1
Spaltenbreiten: 15cm
Nur Listeneinträge: Nein
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

MRosena

Hallo DF6GL,

danke für den Lösungsansatz.
Werde mich heute Abend hinsetzen und ein wenig herum experimentieren.

Schönen Abend noch.

-------------------------------------------------------
Viele Grüße aus dem schönen Hessen
Martin, MRosena

;) Learning by doing not by spoon-feed ;)