Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: rekem am November 15, 2021, 15:21:07

Titel: Zeichen #
Beitrag von: rekem am November 15, 2021, 15:21:07
Kann mir jemand sagen, warum das '#' in einer Tabelle nicht gefunden wird?
Ist das reserviert?
Titel: Re: Zeichen #
Beitrag von: ebs17 am November 15, 2021, 15:28:23
Ich finde das '#', wenn es da ist.

Das ist allerdings auch eine Frage, WIE man sucht.
Bei einer Mustersuche (WIE/LIKE) wird das Zeichen durchaus als Platzhalter (für eine Ziffer) interpretiert, wenn man es nicht explizit maskiert.
Titel: Re: Zeichen #
Beitrag von: rekem am November 15, 2021, 20:06:59
Vielen Dank.
Bei mir ist '#.' das Kürzel für die Farbe 'Schwarz' und kommt z:B. so vor:
#. 1 s. Löwe (im schwarzen Felde ein silberner Löwe)
gesucht wird mit

SELECT *
FROM WDK
WHERE ((WDK.sfeld) Like [sfeld enthält])
ORDER BY WDK.sfeld;

so wird nichts gefunden
wenn ich eingebe:
?. 1 s. Löwe
dann wird er gefunden aber auch mit allen g. und r. usw. Felde
Titel: Re: Zeichen #
Beitrag von: markusxy am November 16, 2021, 07:43:11
Hier die Doku zur Like Funktion:

https://docs.microsoft.com/de-de/dotnet/visual-basic/language-reference/operators/like-operator

In deinem Fall besonders wichtig, das du da alle Möglichkeiten genau kennst,
da dein gesamter Datenaufbau ja für eine Datenbank grauenvoll ineffizient ist.
Titel: Re: Zeichen #
Beitrag von: rekem am November 16, 2021, 10:55:22
@markus888

Vielen Dank für die Liste.

In der Wappenkunde (Heraldik) ist international das '#' für Schwarz definiert.
Ich muß also meine Millionen '#.' in 'x.' verwandeln, was blitzschnell geht aber alle heraldischen Nutzer verwirrt (ich muß es also im Foirmularkopf deutlich erwähnen).

Was meine Like-Funktion betrifft so mag sie 'grauenvoll' sein, alle Antworten erscheinen bei meinen 500.000 DS aber unterhalb 1 Sekunde auf dem Bildschirm.
Die Texte im Suchfeld können nicht zerlegt werden und sie müssen korrekt (inkl. ? und *) eingegeben, gesucht und gefunden werden.

Natürlich bin ich für einen Code-Vorschlag sehr dankbar!
Titel: Re: Zeichen #
Beitrag von: PhilS am November 16, 2021, 12:10:01
Zitat von: rekem am November 16, 2021, 10:55:22Vielen Dank für die Liste.

In der Wappenkunde (Heraldik) ist international das '#' für Schwarz definiert.
Ich muß also meine Millionen '#.' in 'x.' verwandeln, was blitzschnell geht aber alle heraldischen Nutzer verwirrt (ich muß es also im Foirmularkopf deutlich erwähnen).
Es ist nett, dass du dich für den Link bedankst. Es wäre aber, besonders für dich hilfreich, wenn du ihn auch lesen würdest. - Wobei ich zugeben muss, dass einem beim Lesen der maschinellen deutschen Übersetzung schon etwas schwindlig wird.

Wie bereits auch von ebs17 erwähnt, du musst das # maskieren indem du es in eckige Klammern einschließt.
SELECT *
FROM WDK
WHERE ((WDK.sfeld) Like '*[#]. 1 s. Löwe*')
ORDER BY WDK.sfeld;
Titel: Re: Zeichen #
Beitrag von: ebs17 am November 16, 2021, 12:23:23
Zitatalle Antworten erscheinen bei meinen 500.000 DS aber unterhalb 1 Sekunde auf dem Bildschirm
Einen solch großen Bildschirm hast Du in Verwendung?

Trotzdem glaube ich diese Aussage nicht. Stichwort Lazy Loading: Es werden die ersten Datensätze angezeigt, und der User sieht schon mal was. Um ALLE sicherzustellen, müsste man auf den letzten Datensatz springen, bspw. per Navigationsleiste-Button.
Titel: Re: Zeichen #
Beitrag von: rekem am November 16, 2021, 13:30:20
Der Ausgangspunkt der Abfrage ist ein Bild ohne Name.
Wenn ich 'Löwe' frage erhalte ich 24.253 DS (sehr großer Bildschirm erforderlich).
Ich sehe aber einen silbernen Löwen im schwarzen Feld.
Da bekomme ich 688.
Frage ich '#. 1 s. Löwe.' (slso nichts dahinter) dann sind es noch 105.
Und wenn ich frage sfeld = '#. 1 s. Löwe.' (also am Anfang des DS und sonst nichts) dann habe ich nur noch 79 Trefferzeilen in der Tabellenansicht und die sind 'blitzartig' da.
Im Alltag habe ich aber mehr Details im Bild und dann erscheinen nur noch 10-20 Treffer
Titel: Re: Zeichen #
Beitrag von: rekem am November 16, 2021, 15:27:59
@PhilS
vielen Dank für den Code mit der Maskierung.
Wenn ich nun eine allgemeine Abfrage benötige, in welcher
'#' an irgendeiner Stelle vorkommt oder auch gar nicht, wie sollte da der Code lauten ?
Titel: Re: Zeichen #
Beitrag von: markusxy am November 17, 2021, 12:42:52
Zitat von: rekem am November 16, 2021, 15:27:59@PhilS
vielen Dank für den Code mit der Maskierung.
Wenn ich nun eine allgemeine Abfrage benötige, in welcher
'#' an irgendeiner Stelle vorkommt oder auch gar nicht, wie sollte da der Code lauten ?

Das Beispiel hast du doch schon bekommen.
Verstehst du das wirklich trotz Beschäftigung mit der Hilfe nicht?
Der Umgang mit Like ist doch keine Raketenwissenschaft.
Was verstehst du daran nicht?
Philipp hat natürlich recht, was die Übersetzung auf Deutsch anbelangt.
Ich lese das auch immer in Englisch, ansonsten ist das schwer verständlich. Vor allem fehlen in der deutschen Übersetzung manche Zeichen.
https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/like-operator
Titel: Re: Zeichen #
Beitrag von: ebs17 am November 17, 2021, 16:15:07
ZitatAbfrage benötige, in welcher '#' an irgendeiner Stelle vorkommt oder auch gar nicht, wie sollte da der Code lauten ?

# => [#]Das eine durch das andere ersetzen, bevor man den Filter anwendet. Das dürfte doch begreifbar sein.

In Praxis könnte man so etwas über VBA ausführen (Replace), in der von Dir favorisierten billigsten Filtervariante ist das selbstredend nicht möglich. Da müsste der Kopf die Finger gezielt führen.
Titel: Re: Zeichen #
Beitrag von: rekem am November 18, 2021, 17:25:00
so kann ich die '#.' für schwarz behalten.