Neuigkeiten:

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

Mobiles Hauptmenü

Listenfeld mit Mehrfachauswahl erzeugt doppelte Datensätze

Begonnen von ibins, März 19, 2016, 14:50:08

⏪ vorheriges - nächstes ⏩

ibins

Hallo liebe Profis!

Ziel ist es, einer Musikprobe mehrere Musikanten über Listenfelder zuzuweisen, ohne dass ein Musikant zweimal in einer Musikprobe sein kann.

Ich habe ein Hauptformular Musikprobe mit einem Listenfeld lstMusikproben (darin ist das Datum gespeichert) und ein Listenfeld lstMusikanten (Liste der aktiven Musikanten aus einer Abfrage). Es besteht eine m:n Beziehung und daher habe ich eine Zwischentabelle angelegt, lstMus_MP, in der nur die Fremdschlüssel gespeichert werden.

Im Unterformular werden die ausgewählten Namen über den Fremdschlüssel aus der Zwischentabelle angezeigt.

Wie schaffe ich es, dass mir in lstMus_MP keine zwei identischen Datensätze gebildet werden, bzw. wenn ein Datensatz schon vorhanden ist, eine Meldung kommt (z.B. Musikant in dieser Musikprobe bereits vorhanden).
In lstMusikanten kann ich eine Mehrfachauswahl machen, in lstMusikprobe eine einfache Auswahl.

Folgende Programmierung für das Auslesen habe ich mir schon zusammengestümpert:

Private Sub cmdRueber2_Click()

Dim varZeile As Variant
Dim I As Integer
Dim rs As DAO.Recordset

If Me.lstMusikanten.ItemsSelected.Count = 0 Then
MsgBox "Bitte Musikant aus Liste auswählen!"
Else
End If
   
If IsNull(Me!lstMusikprobe) Then
   MsgBox "Bitte eine Musikprobe auswählen!"
   Exit Sub
End If

Set rs = CurrentDb.OpenRecordset("tblMus_MP")

For Each varZeile In Me!lstMusikanten.ItemsSelected
rs.AddNew
rs!mus_id_f = Me!lstMusikanten.ItemData(varZeile)
rs!mp_id_f = Me!mP_id
rs.Update
lstMusikanten.Requery
Me!frmMusikprobe_ufoMusikanten.Requery

Next varZeile

rs.Close
Set rs = Nothing

End Sub



Das funktioniert auch soweit, ausser die doppelten Datensätze in der Zwischentabelle.
Kann man das verstehen? Hat jemand eine Idee?

Vielen Dank!
Ibins

P.S. Ich benutze Access 2010 und bin absoluter Neuling auf dem Gebiet.
   




el_gomero

Hallo Ibinis,

kannst du mal eine Beispiel-db mit den relevanten Teilen und ein paar DS zum probieren hochladen?
Gruß
Jürgen


Hilfe nach bestem Wissen, ohne Anspruch auf Richtigkeit und Vollständigkeit.
*feedback erwünscht*
Bitte Tipps lesen

ibins

Hab versucht die relevanten Tabellen, die Abfrage, Unterformular und Hauptformular herauszusuchen.
Hoffentlich klappt´s!

DF6GL

Hallo,

setze einen eindeutigen zusammengesetzten Index auf mus_id_f und mp_id_f
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

el_gomero

Hallo,

für einen Anfänger sieht das schon mal ganz gut aus. Der übliche Fehler (Datenmodellierung) wurde nicht begangen.

An dem Form und Ufo habe ich einige Änderungen vorgenommen (zB jetzt ungebunden). Schau dir das in Ruhe an und wenn Fragen auftauchen - frage ;).
Gruß
Jürgen


Hilfe nach bestem Wissen, ohne Anspruch auf Richtigkeit und Vollständigkeit.
*feedback erwünscht*
Bitte Tipps lesen

el_gomero

Gruß
Jürgen


Hilfe nach bestem Wissen, ohne Anspruch auf Richtigkeit und Vollständigkeit.
*feedback erwünscht*
Bitte Tipps lesen

DF6GL

Hi,

@Jürgen,

sowas traue ich Dir sofort zu   ;-)))
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

ibins

Super! Herzlichen Dank!!!
Das hätte ich alleine nie gekonnt. Das gleiche Schema muss ich jetzt noch für Auftritte mit Gage machen, aber das sollte mit der guten Vorlage kein Problem sein.
"musikalische" Grüße

ibins

Wer sich zu früh freut,....
Irgendwo ist der Wurm drin.  >:(
Hab alles nach besten Wissen Herumprobieren geändert und trotzdem funktioniert das Formular für die Zurordnung der Veranstaltungen nicht. Die Werte werden in die Zwischentabelle eingetragen, im Unterformular kann ich die Namen in der Layoutansicht sehen, aber ich komm nicht drauf, was da jetzt anders ist, als bei dem Formular für die Musikprobe.

Liegt das an den Änderungen am Form und Ufo, die ich nicht ganz durchschaue?

Würde mich über eine erneute Hilfe freuen!

MzKlMu

Hallo,
und was hast Du jetzt für ein Problem ?
Das hast Du nicht beschrieben.
Gruß Klaus

ibins

Bin ich ein Schussel... wollte eigentlich die die Datei anhängen...
Das Formular Veranstaltungen funktioniert nicht.

Entschuldigung!

DF6GL

Hallo,

es fehlt der Eintrag
[Ereignisprozedur]
in der Klick-Eigenschaft des Listenfeldes "lstVeranstaltung".
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

ibins

Das war´s! Eigentlich logisch, aber...
Danke nochmal!

Gruß
Barbara

ibins

Hallo meine lieben Helfer!
Es handelt sich jetzt zwar um ein anderes Problem, allerdings im gleichen Formular. Sollte ich da ein neues Thema aufmachen?
Jetziges Problem:
Ich möchte in dem Formular Musikprobe die Anzahl der teilnehmenden Musikanten anzeigen. Eine Abfrage habe ich erstellt. Das Ergebnis soll zum ausgewählten Datensatz in der Liste Musikprobe passen und entsprechend den Klicks aktualisiert werden. Allerdings passiert bei meinen VBA-Eingaben nichts. Es steht immer der erste Wert der Abfrage im Feld.
Hab mal wieder keine Ahnung wo ich ansetzten muss. Mein Debugger ist schon heissgelaufen. :-(
Hat jemand eine Lösung für mich?
Gruß
Barbara

MaggieMay

Hallo Barbara,

die Datenquelle des Formulars steht in keiner Beziehung zu den Aktionen, die darin stattfinden.
Sie ist also entbehrlich. Statt dessen könntest du die Anzahl der teilnehmenden Musikanten mit Hilfe der DLookUp-Methode zur Anzeige bringen und das Textfeld nach jeder Änderung aktualisieren.

ZitatMein Debugger ist schon heissgelaufen
Das würde mich ehrlich interessieren, wie du das hingekriegt hast.
Freundliche Grüße
MaggieMay