Neuigkeiten:

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

Mobiles Hauptmenü

Kombifeld nach Formularfilter filtern

Begonnen von koch, April 11, 2020, 21:27:36

⏪ vorheriges - nächstes ⏩

DF6GL

Hallo,

ja, sorry, sowas passiert schon mal beim Kopieren und Luftcode.... 8)
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

koch

#16
Hallo Franz,
nix Sorry, ich darf auch mitdenken und mitarbeiten, wo Du eh schon so viele Lösungen zu "meiner" DB beigetragen hast.
Das "Insert Into" bei der tblAnmeldeprotokoll konnte ich leider noch nicht lösen. Die Funktion dbfailonerror() meldet Fehlercode 128 was, meiner Recherche nach anzeigt, dass die Daten, die angefügt werden sollen vom Datentyp her nicht kompatibel sind.
Meine Tabelle beinhaltet drei Felder: AnmeldeID; Automatisch, Autor2; Zahl (Kombi) verknüpft mit Autor, Anmeldedatum; Datum mit Uhrzeit. Mit diesem Code wollte ich lt. Deiner Empfehlung
das nun aktualisieren:
'Private Sub Form_AfterUpdate()
'CurrentDb.Execute "Insert into tblAnmeldeprotokoll  set Autor2 = '& pblautorID' & , Anmeldedatum = Now()", dbFailOnError
'End Sub
Ich hab auch versucht die Funktion getpblautorid()  einzusetzen aber wahrscheinlich hakt es wieder an der Syntax. Glaube bitte nicht, das ich wegen jedem Sch... ,ich Dich hier konsultiere, aber aus einem VBA-Konstrukt, bestehend aus 1 Seite Quellcode, kann ich leider nichts herauslesen, dass für mich verständlich ist.

Übrigens glaube ich, dass ich nach der Lösung dieser Aktion das Kochbuch fertig habe. Was die Praxis noch beweisen muss.
Vielen Dank.
LG Hans

DF6GL

#17
Hallo,

naja, wenn die Meldung schon einen Datentyp-Konflikt meldet, dann sollte das ernst genommen werden ..  ;)


Was beinhaltet denn das Tabellenfeld "Autor2" und welchen Datentyp hat es?

Wenn es einem Long-Wert  (Fremdschlüsselwert) aufnehmen soll, dann müssen die Hochkommata entfernt werden, denn die kennzeichnen ja einen Text (Literal)
CurrentDb.Execute "Insert into tblAnmeldeprotokoll  set Autor2 = " & pblautorID & ", Anmeldedatum = Now()", dbFailOnError


Wenn da aber der Name des Autor drinstehen soll (---> Datentyp TEXT) , dann bleiben die Hochkommata bestehen, allerdings sollte die pbl-Variable dann auch einen TEXT (Autorname) beinhalten.   Auf diesen Fall weist aber die Fehlermeldung nicht hin...

Irgendwie geht aber die Benamsung, bzw. die Beschreibung etwas durcheinander.. 

Wenn "Autor2" das Fremdschlüsselfeld für den ID-Wert des Autors ist, dann sollte es auch so benannt werden:

"AutorID_F"   (Autorid_Fremdschlüssel)
oder
"AmP_AutorID"  (AnmeldeProtokoll_AutorID)
oder
ähnlich, um es genau zuordnen zu können.
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

koch

Hallo Franz,
vielen Dank für die schnelle Antwort. Werde mich am WE darum kümmern.
LG Hans

koch

Hallo Franz,
ich am WE rumprobiert an der Benamsung de Fremdschlüssels etc. und leider zu keiner Lösung gekommen. Dann habe ich recheriert und folgendes gefunden:
' Private Sub Form_AfterUpdate()
' SELECT Autor2, Autor
' FROM tblAnmeldeprotokoll  INNER JOIN tblAutor
' ON tblAnmeldeprotokoll.Autor2 = tblAutor.Autor2
' CurrentDb.Execute "Insert into tblAnmeldeprotokoll  set Autor2 = &tblAutorID" , Anmeldedatum = Now()", dbFailOnError
' End Sub

Leider funktioniert da gar nichts(alles rot), liegt aber wohl daran, dass ich keine Ahnung habe wie man sowas einbindet.
Vielen Dank für Deine Bemühungen
LG Hans

ebs17

Insert into ...  set ...
Wo soll das funktionieren?
Zeilen einfügen mit INSERT
Zeilen bearbeiten mit UPDATE
Es wäre schon zielführender, sich an die zutreffende Syntax für die gewählte Abfrage zu halten, zzgl. der Vermeidung von Datentyp- und anderen Fehlern.
Mit freundlichem Glück Auf!

Eberhard

koch

Hallo Eberhard,
vielen Dank für die Links. Mache mich sofort an die Arbeit.
LG Hans

koch

Hallo Eberhard,
da ich ein absoluter Anfänger in Sachen VBA bin und nachdem ich Deine Links studierte, habe ich nun folgendes ausprobiert:
Private Sub Form_AfterUpdate()
CurrentDb.Execute "Insert into tblAnmeldeprotokoll set Autor2 = &tblAutorID& , Anmeldedatum = Now()from tblAnmeldeprotokoll inner join tblAutor on Autor2 = AutorID", dbFailOnError
End Sub

allerdings meldet der Debugger Laufzeitfehler 3134 bei Insert into, was auf einen Syntaxfehler hinweist, den ich aber nicht finden kann. Ich hoffe, dass wenigstens der Lösungsansatz einigermaßen richtig ist.
Vielen Dank für Eure Hilfe
Lg Hans

DF6GL

#23
Hallo,


insgesamt ist hier zwischenzeitlich Einiges durcheinander gekommen. Das Insert-Statement stimmt hinten und vorne nicht.

Wenn in "tblAnmeldeprotokoll" eine Historie gespeichert werden soll:


Private Sub Form_AfterUpdate()
CurrentDb.Execute "Insert into tblAnmeldeprotokoll ( Autor2, Anmeldedatum)  Values(" & pblAutorID & " , Now() )", dbFailOnError
End Sub



wenn "Autor2" in "tblAnmeldeprotokoll" vom Datentyp Long ist und den Primärschlüsselwert des Autors aus Tabelle "tblAutor", der in der globalen Variablen "pblAutorID" gespeichert ist,  aufnehmen soll.
Now() beinhaltet zudem das Datum und die Uhrzeit. Sofern nur das Datum benötigt wird, ist Date() einzusetzen.

Ein Join mit "tblAutor" ist nicht erforderlich.
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

koch

Hallo Franz,
vielen Dank für Deine Antwort. Habe es eben mit copy and paste ausprobiert, aber leider ohne Erfolg. Der Debugger zeigt mir die richtige ID in "pblautorID", aber auch die 128 bei dbFailOnError. Wenn ich die Anführungszeichen bei "pblAutorID" wegnehme zeigt noch nicht einmal mehr die aktuelle ID. Die tblAutor hat den richtigen Bezug zu tblAnmeldeprotokoll (von AutorID zu Name2) und das Feld Autor2 ist vom Typ "Zahl" mit nachschlagen in TblAutor. Es tut mir leid, Dich schon wieder damit zu belästigen.
Vielen Dank für Deine Mühe.
LG Hans

DF6GL

Hallo,

lad die DB mal hier hoch, datenreduziert/anonymisiert, komprimiert/repariert und gezippt.


ZitatDie tblAutor hat den richtigen Bezug zu tblAnmeldeprotokoll (von AutorID zu Name2)

Was ist jetzt "Name2"?   

Zitatund das Feld Autor2 ist vom Typ "Zahl" mit nachschlagen in TblAutor.

Wirf endlich mal das Nachschlagefeld (Kombifeld) aus der Tabelle heraus  und benenne das Fremdschlüsselfeld in Tabelle "tblAnmeldeprotokol"  in "AutorID_f" (Datentyp Long) um !
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

koch

Hallo Franz,
habe die tblAnmeldeprotokoll nach Deinen Anweisungen umgestellt und schon funktionierts ;D. Habe im Nachgang ein Query erstellt, das mir das Ganze in "Text" anzeigt. Funktioniert.  ;D
Vielen, vielen Dank für Deine Bemühungen und Deine Geduld mit mir. Kann ich Dir was Gutes tun? Flasche Wein oder ähnliches?
Vielen Dank auch an Eberhard.
LG Hans

DF6GL

Hallo,

die Ratschläge, die Du hier bekommst, sind doch gar nicht bezahlbar...  ;)
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