1.1k Aufrufe
Gefragt in Datenbanken von meckenheimer Einsteiger_in (15 Punkte)
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

2 Antworten

0 Punkte
Beantwortet von ralfh Mitglied (227 Punkte)
Hallo,
wie sieht den a)die Abfrage aus und b) hast Du Relationen angelegt?
Gruß Ralf
0 Punkte
Beantwortet von rahi Experte (1.4k Punkte)
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
...