Listenfeld durchsuchen geht nicht (Access)

Tomate, Dienstag, 23.04.2019, 07:30 (vor 116 Tagen)

Hallo,
ich habe eine Tabelle mit ID und Name (und andere Tabellen und Felder, die sind aber hier nicht relevant), ein Formular und eine Abfrage, welche hinter das Formular gelegt wurde. Die Namen werden in einem Listenfeld angezeigt, habe die Spaltenanzahl auf 2 und die Spaltenbreite auf 0cm;4cm gesetzt. Somit wird der Name angezeigt, dass passt.

Dann habe ich ein Textfeld und einen Button. Bei dem Klick auf den Button möchte ich überprüfen, ob der Inhalt im Textfeld mit dem Inhalt in dem Listenfeld übereinstimmt. Sollte es nicht der Fall sein, dann soll der neue Name in der Liste gespeichert werden.

Ich schaffe es zwar, die ID auszulesen, aber nicht den Namen dazu. Die ID kann ich mit Liste2.ListCount auslesen, aber wie kann ich den dazugehörigen Namen auslesen? Im Debugger seh ichs auch nicht.

Ich hatte da was mit Liste2.List gefunden, aber beim kompilieren kommt die Fehlermeldung: List - Methode oder Datenobjekt nicht gefunden.

Hat jemand eine Idee?

Listenfeld durchsuchen geht nicht

Tomate, Dienstag, 23.04.2019, 10:35 (vor 116 Tagen) @ Tomate

Ich habe es jetzt anders probiert und es funktioniert. Hole mir allerdings mit einer Select-Anweisung alle Daten.

Set rs = CurrentDb.OpenRecordset("SELECT....
If rs.RecordCount > 0 Then
Do While Not rs.EOF
strListe = rs!Name

For i = 0 To rs!ID - 1
If strListe = Text5.Value Then
MsgBox "Der Name existiert bereits."
Exit Sub
End If
Next i
rs.MoveNext
Loop
-- speichern des Namens, wenn nicht vorhanden

Verstehe aber nicht, warum man nicht so oder so ähnlich auf den Inhalt der Liste zugreifen und anschließend speichern kann. Oder geht das gar nicht?

Listenfeld durchsuchen geht nicht

Martin Asal @, Dienstag, 23.04.2019, 10:39 (vor 116 Tagen) @ Tomate

ich habe einen Monment gebraucht, um zu verstehen, dass du von Access und nicht Excel sprichst ;-)

Als Steuerelementinhalt deines Listenfeldes dient offensichtlich "ID". Die Frage ist, ob du den ID hier überhaupt brauchst? Wenn du den Steuerelementinhalt auf "Name" änderst, hast du das Problem vielleicht schon gelöst, du musst dann nur die Spaltenanzahl ändern.

PS: "Name" ist ungefähr die beschi*** Bezeichnung, die man wählen kann. Jedes Objekt hat ja schon eine "Name"-Eigenschaft.

Martin

Listenfeld durchsuchen geht nicht

Tomate, Dienstag, 23.04.2019, 11:37 (vor 116 Tagen) @ Martin Asal

Die Bezeichnungen sind allgemein nicht optimal, das stimmt. Ich hatte mir nur ein neues Formular erstellt, da ich dachte, dass ich einen Fehler beim Erstellen und beim Ausprobieren gemacht hatte. Ich war da zu faul, alles korrekt zu benennen. Mein eigentliches Formular ist soweit passend benannt.

Das Steuerelement ist sogar schon auf "Name" gesetzt. Da aber die Select-Abfrage
"SELECT Tabelle1.ID, Tabelle1.Name FROM Tabelle1"
dahinter liegt, musste ich die Spalten angleichen. Denke ich zumindestens, dass das der Grund ist. Die ID brauche ich da wirklich nicht, weiß dann aber immer noch nicht, wie ichs anders machen muss.

Aber ich hatte mir so was vorgestellt wie:
suche InhaltDerTextbox in Listenbox -> also den Namen in der Liste suchen und nicht die ID
wenn InhaltDerTextbox in Listenbox gefunden
dann MsgBox "Name bereits vorhanden"
wenn nicht
dann den neuen Namen speichern

Das was ich hab funktioniert zwar, allerdings greife ich direkt auf die DB zu. Gibt es da keine Alternative?

Listenfeld durchsuchen geht nicht

Martin Asal @, Dienstag, 23.04.2019, 15:23 (vor 116 Tagen) @ Tomate

Du könntest im Tabellenentwurf von Tabelle1 auf das Feld "Name" einen eindeutigen Index setzen?

Martin

Listenfeld durchsuchen geht nicht

Tomate, Mittwoch, 24.04.2019, 07:14 (vor 115 Tagen) @ Martin Asal

Wenn ich Dich richtig verstanden habe, dann meinst Du damit den Primärschlüssel? Das ist bei mir die ID und sollte auch so bleiben. In meinem eigentlichen Formular liegen die Daten auf einen SQL Server.

Ich bleibe bei meiner Lösung, läuft ja. Ich dachte nur, dass es vielleicht eine elegantere Lösung gibt.

Dank Dir!

Listenfeld durchsuchen geht nicht

Martin Asal @, Mittwoch, 24.04.2019, 11:51 (vor 115 Tagen) @ Tomate

Wenn ich Dich richtig verstanden habe, dann meinst Du damit den Primärschlüssel?

Nein.

Eine Tabelle kann durchaus mehrere eindeutige Schlüssel haben.

Martin

RSS-Feed dieser Diskussion
powered by my little forum