online 1
gast (50)

/ Forum / Datenbanken

DatenbankenDatenbanken

Fragevon Meckenheimer vom 29.01.2021, 07:06 Options

doppeltes vorkommen bei abfrage aus Formular von Tabelle verhindern

Ich habe mir google und die supportnet.de suche zur hilffe genommen und frage ich mich, ob ich nicht einfach nur nach dem falschen suche, deshalb habe ich hier ein Bild von dem, was ich haben möchte:
Ich möchte vermeiden dass der Wert aus der Tabelle "personal" (6x in der Abfrage als nachschlage feld vorhanden) doppelt vorkommen kann

siehe Photo gemeint ist der Eintrag
Meier in ID1 und
Scherer in ID 9

also sowas wie einen personalgruppenplan mit vermeidung doppelt vorhandener Personen pro Spalte.

liebe Grüße aus Meckenheim
Der MeckenheimerBILDVORSCHAU von dem was ich vermeiden will


Antwort schreiben

Antwort 1 von RalfH vom 30.01.2021, 10:34 Options

Hallo,
wie sieht den a)die Abfrage aus und b) hast Du Relationen angelegt?
Gruß Ralf

Antwort 2 von RaHi vom 23.02.2021, 16:02 Options

Hallo Meckenheimer,

ich hab's mal nachgebaut. In meinem Formular habe ich drei (das sollte reichen) Combobox-Felder eingefügt, die als Tabellenherkunft die Tabelle MA (Mitarbeiternamen) haben (kannst du aber auch weg lassen). Die Feldnamen sind MA1, MA2 und MA3. Beim "gotFocus"-Ereignis berechne ich die RowSource neu. Das Verfahren ist jedoch nur bei Combobox-Rowsourcen sinnvoll, die nicht zu viele Datensätze enthalten, eventuell ist auch ein Index hilfreich (bei > 1000 DS). Die Funktion "getFilter" berechnet die Ausschlusswerte, die dann in die RowSource-Definition einfließen. Der Code liegt im Codebereich des Formulars.
Public Function getfilter()
Dim i As Integer
Dim filterwert As String
filterwert = ""
For i = 1 To 3
    filterwert = filterwert & IIf(IsNull(Me("MA" & i)), "", IIf(filterwert = "", "", ",") & "'" & Me("MA" & i) & "'")
Next
getfilter = IIf(filterwert = "", "", " WHERE MA not in (" & filterwert & ")")
End Function

Private Sub MA1_GotFocus()
MA1.RowSource = "SELECT * FROM MA " & getfilter()

End Sub

Private Sub MA2_GotFocus()
MA2.RowSource = "SELECT * FROM MA " & getfilter()

End Sub

Private Sub MA3_GotFocus()
MA3.RowSource = "SELECT * FROM MA " & getfilter()

End Sub
Meintest du das?

Gruß
Ralf

Ähnliche Themen

Subtrahieren innerhalb einer Access-Tabelle durch Abfrage
PatrickH25  18.03.2008 - 24 Hits - 1 Antwort

daten aus tabelle im formular anzeigen
unbekannt2  28.04.2008 - 162 Hits - 1 Antwort

Dateneingabe in Access Abfrage und Formular funktioniert nicht
Carmen  09.06.2008 - 246 Hits - 3 Antworten

access - Abfrage durch ein Formular erstellen ?!
shyning  10.06.2008 - 90 Hits - 1 Antwort

Kontextfilter in Access Tabelle / Formular
benetschm  22.09.2008 - 43 Hits - 1 Antwort

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026