Dezember 07, 2021, 14:20:10

Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!


Zeichen #

Begonnen von rekem, November 15, 2021, 15:21:07

⏪ vorheriges - nächstes ⏩

rekem

Kann mir jemand sagen, warum das '#' in einer Tabelle nicht gefunden wird?
Ist das reserviert?
Gruß aus Berlin

ebs17

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.
Mit freundlichem Glück Auf!

Eberhard

rekem

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
Gruß aus Berlin

markus888

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.
10 Jahre Access

rekem

@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!
Gruß aus Berlin

PhilS

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;
Access DevTools - Find and Replace
Komfortables Suchen und Ersetzen in den Entwurfseigenschaften von Access-Objekten. In Abfragen, Formularen, Berichten und VBA-Code - Überall und rasend schnell!

ebs17

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.
Mit freundlichem Glück Auf!

Eberhard

rekem

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
Gruß aus Berlin

rekem

@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 ?
Gruß aus Berlin

markus888

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
10 Jahre Access

ebs17

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.
Mit freundlichem Glück Auf!

Eberhard

rekem

so kann ich die '#.' für schwarz behalten.
Gruß aus Berlin