Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Formular Gruppenmaßnahme

Begonnen von Kubus0815, Dezember 10, 2020, 10:41:15

⏪ vorheriges - nächstes ⏩

Kubus0815

Hallo zusammen.
Ich arbeite an einer Rinderdatenbank.
In dieser befinden sich zur Zeit 45 Rinder eindeutig erkennbar durch Ihre Ohrmarkennummer.
Nun würde ich gern 10 Rinder von Stall A nach Stall B umziehen.
Die Standorte sollen nachvollziehbar bleiben, d.h. wo die Tiere in der Vergangenheit wie lang waren.
Deshalb würde ich pro Tier/Umzug eine Zeile in tblStall schreiben.
Ich möchte nun beim Umzug die 10 Tiere per Kontrollkästchen markieren und für alle markierte Tiere in der tblStall einen Eintrag mit dem neuen Standort samt Datum und Ohrmarkennummer schreiben lassen.
Gibts da eine Möglichkeit?

DF6GL

Hallo,


na klar doch...

Zeige aber erst mal den Screenshot des Beziehungsfensters mit allen Tabellen und mit allen erkennbaren Tabellenfeldern
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

Kubus0815

#2
Servus Franz.

Da wohnen wir ja gar nicht soweit auseinander, ich bin 30min von Füssen entfernt.
Hier der Screenshot ich hoffe es ist alles drauf:

Die tblStall heißt jetzt tblStandortAktuell
Viele Grüße
Thomas

DF6GL

Hallo,

naja, ich bin am Nordwestende des BS zuhause....

-- Vermeide Sonder- und Leerzeichen in Namen! 
-- Benenne tblBestand in tblTiere um.
-- Benenne tblStandOrtAktuell in tblTierStandOrte um.
-- Nutze Autowert-Felder als Primärschlüssel. "Ohrmarke" ist technisch ungünstig, weil Datentyp TEXT. Vergibt aber für "Ohrmarke" zusätzlich einen eindeutigen Index.
-- Benenne die Primärschlüsselfelder eindeutig über die gesamten Tabellen gesehen (tblTiere--> "TierID")
-- "DatZugang" in tblTiere entfällt. Ein "Zugang" wird mit dem ersten Datensatz in tblTierStandOrte definiert.


Wenn ein Tier den Standort wechselt, bedeutet das lediglich einen neuen DS in tblTierStandorte mit dem aktuellen Datum. ("Datum" auch umbenennen in z. B. mit Prefix aus Tabellennamen-Abkürzung: "TSO_Datum")


Weitere Normalisierung ist denkbar:  tblMedikamente.Art, tblTiere.Rasse

tblStandorte ist ebenfalls zu erweitern.

ZitatIch möchte nun beim Umzug die 10 Tiere per Kontrollkästchen markieren und für alle markierte Tiere in der tblStall einen Eintrag mit dem neuen Standort samt Datum und Ohrmarkennummer schreiben lassen.


Dazu ist zunächst ein "Markierungsfeld (Ja/Nein) in tblTiere erforderlich.

Im Formular "frmTiere"  (jede Tabelle erhält ein individuelles Form) kann dieses Kontrollkästchen dann zur Markierung der einzelnen Tiere herangezogen werden.

In einem ungebundenen Kombifeld mit Datensatzherkunft zu Tabelle tblStandorte wird der Standort ausgewählt, zu dem umgezogen werden soll.
Mittels Button und einer Anfügeanfrage werden die markierten Tiere als neue DS an tblTierStandorte angehängt.
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

Beaker s.a.

Hallo Franz,
Ich schon wieder.
ZitatDazu ist zunächst ein "Markierungsfeld (Ja/Nein) in tblTiere erforderlich.
Muss das sein? Ein Listfeld mit Mehrfachauswahl sollte doch reichen.
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

DF6GL

Hallo Eckehard,

ich auch  ;)


Ich bezog mich auf die Frage des TS: 

Zitat...die 10 Tiere per Kontrollkästchen markieren ...

was ich (je nachdem, wie der ganze Umzugsablauf im Detail aussieht) sowieso bevorzuge.

Die Markierungen im Kombifeld sind temporär, sprich vergänglich, die gespeicherten Markierungen dagegen nicht.
Es kann ja sein, das der Umzug über längere Zeit (in einem Formular) geplant werden soll/muss und erst danach die Durchführung des Umzugs stattfindet. Zwischendurch wurde die DB (mehrmals) geschlossen und somit sind die Kombifeld-Markierungen verloren.

So, jetzt Du wieder....  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

Beaker s.a.

Hallo Franz,
Ja, das ist natürlich einen Schritt weitergedacht.
Es war von mir aber auch als Frage formuliert.

gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

ebs17

Zitateinen Schritt weitergedacht
Wenn es dann mehrere Auswahlvorgänge geben könnte, die sich zeitlich überschneiden würden - von der erstmals fixierten Idee bis zu einer Umsetzung könnte es ja länger dauern - müsste man die Ja/Nein-Felder in der Tiere-Tabelle in eine m:n-Beziehung Tiere-Auswahlvariante ersetzen.
Mit freundlichem Glück Auf!

Eberhard

Kubus0815

#8
Hallo Franz,
die Normailisierungstipps setze ich gerade um.
Dabei ist die habe ich überlegt ob das DatZugang nicht bleiben sollte und sogar durch DatAbgang ergänzt werden sollte, um einfach die Mastdauer berechnen zu können? Ausserdem würde ich DatAbgang dazu verwenden um in Formularen nur aktive Tiere anzeigen zu lassen wenn das Abgangsdatum leer ist.
ZitatWeitere Normalisierung ist denkbar:  tblMedikamente.Art, tblTiere.Rasse
Die Medikamentenart habe ich bereits zur Auswahl in einem Kombinationsfeld eingestellt

ZitatEs kann ja sein, das der Umzug über längere Zeit (in einem Formular) geplant werden soll/muss und erst danach die Durchführung des Umzugs stattfindet.

Nein das ist nicht notwendig, der Umzug in der Datenbank wird sofort vollzogen.

ZitatEs kann ja sein, das der Umzug über längere Zeit (in einem Formular) geplant werden soll/muss und erst danach die Durchführung des Umzugs stattfindet.

Gibt´s dafür noch weiterführende Tipps/Beispiele.

Viele Grüße Thomas

Kubus0815

Hallo nochmal.
Ich komme hier einfach nicht weiter.
Nochmal zum Verständnis:
Ich erstelle ein Formular mit Listenfeld Ohrmarke und Mehrfachauswahl, ein Textfeld Datum und ein Kombifeld Standort.
Ich erstelle einen Button mit Ereignisprozedur bei Click.
Den Code hätte ich mir irgendwie so vorgestellt.

Sub btnKopieren_Click()
Private Sub Befehl1_Click()

Me.Dirty = False
CurrentDb.Execute "Insert into tblTierStandorte (TierStandortDat,Ohrmarke,StandortID) select TierStandortDat,StandortEingOhrm,StandortID  from frmStandortEingabe where ID = " & Me!ID, dbFailOnError
End Sub
 
ab "where" weiß ich nicht was gemeint ist.
Hätte jemand einen Tipp für mich?


DF6GL

Hallo,


Zitatab "where" weiß ich nicht was gemeint ist.


Zitatwhere ID = " & Me!ID, dbFailOnError

Damit ist gemeint, dass der DS herangezogen wird, der den ID-Wert des Form-Textfeldes "ID" besitzt.  Das geht aber nur, wenn das Form gebunden ist, was bei Dir scheinbar nicht der Fall ist ("Ich erstelle ein Formular.. ").

dbFailOnError sorgt dafür, dass eine Fehlermeldung im Fehlerfall (auf SQL-Ebene)  erzeugt wird.


Notfalls lad die Db hier hoch, komprimiert/repariert und gezippt
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

Kubus0815

Ich habe jetzt nochmal versucht eine Anfügeabfrage aus einem gebundenen Formular heraus zu erstellen, was mir leider nicht gelungen ist.
Ich habe es mit einem button mit Ereignisprozedur versucht.
Dabei wollte ich die Parameter aus dem gebundenen Formular auslesen und in der Tabelle anfügen lassen.
Scheinbar können aus einem form aber keine Werte ausgelesen werden?
Wie ist denn hier die richtige Vorgehensweise?


MzKlMu

Hallo,
natürlich können aus einem Formular Daten ausgelesen werden. Zeige bzw erkläre deine Versuche.
Gruß Klaus

Kubus0815

Hallo Klaus,

hier der Code meines Buttons:
Private Sub Befehl59_Click()
CurrentDb.Execute "INSERT INTO tblTierStandorte ( TierStandorteID, Ohrmarke, TierStandortDat, StandortID )SELECT frmTSG.TierStandorteID, frmTSG.Ohrmarke, frmTSG.TierStandortDat, frmTSG.StandortID FROM frmTSG"

End Sub

Gruß Thomas

MzKlMu

#14
Hallo,
versuche es so (ungetestet):
CurrentDb.Execute "INSERT INTO tblTierStandorte ( TierStandorteID, Ohrmarke, TierStandortDat, StandortID )VALUES(" _
                  & Me.TierStandorteID & ",'" & Me.Ohrmarke & "'," & "Int(Me.TierStandortDat) &", " & Me.StandortID"
Texte sind in Hochkomma einzuschließen und das Datum habe ich in eine Ganzzahl gewandelt wegen der SQL konformen Übergabe von Datumswerten.
Gruß Klaus