5.4k Aufrufe
Gefragt in Datenbanken von
Hallo an alle Helfer,
habe ein Problem bei einer Abfrage.
Möchte in einer Tabelle zum Beispiel alle Datensätze finden in deren String die Abkürzung " LLE " steht (EGAL wofür das nun steht). Und zwar NUR die, die wirklich so sind.
Leider findet die Abfrage auch Datensätze in denen z.B. "alle, Falle, Qualle" usw. steht. Kann man irgendwie festlegen, das nur nach GENAU dem angegebenen String gesucht wird?
Habe schon mit "StrComp" und "StrVgl" probiert, das bringt aber nichts, oder?
Werde mal sehen ob ich mit "ASCII-Code" was erreiche oder kann mir da schon jemand was sagen?

Probiere alles mit Access 2000.
Vielen Dank für Eure Tipps.
Gruss
spaceman

11 Antworten

0 Punkte
Beantwortet von paul1 Experte (4.9k Punkte)
Hallo spaceman,

Leider unterscheidet Access standardmäßig nicht die Groß- und Kleinschreibung, das ist ein perfektes Beispiel, dass auch Access schwächen hat.
Beim Versuch die beschriebene Aufgabe (Abfrage) direkt in Access (auch nach intensiven Recherchen im Web) zu absolvieren kam ich auf keinen grünen Zweig.

Würde daher empfehlen über

>Extras
>Office-Verknüpfungen
>Analysieren mit Microsoft Office Excel

diese Aufgabe zu erledigen, allerdings müsste der Abfrage ein zusätzliches Feld (Spalte) hinzugefügt werden.

Abfrage

Vielleicht kommt es Deinen Vorstellungen entgegen.

Gruß

Paul1
0 Punkte
Beantwortet von
Hallo Paul,
danke für deine Antwort.
Danke auch für deine Lösung. Muss ich mir nochmal genau ansehen, aber Excel dazwischen zu schalten, scheint mir ganz schön aufwendig.

Habe in der Zeit des Wartens auch ein bisschen weiter probiert.
Bin dann auf eine Lösung über Umwandeln des Textes, in dem gesucht werden soll und auch wandeln des Suchbegriffs in Ascii-Code gekommen. Mit dieser Methode wird wirklich exakt der Begriff den man sucht, in exakt der Schreibweise (egal welcher Buchstabe des Suchbegriffs Groß- oder Kleingeschrieben ist) gefunden. Die ganze Sache ist zwar noch in der Testphase, aber bis jetzt funktioniert es.
Mal sehen wie weit ich komme.

Gruss
spaceman
0 Punkte
Beantwortet von paul1 Experte (4.9k Punkte)
Hallo spacemann,

Habe eine Beispieldatenbank zu meiner Lösungsvariante erstellt, ist zwar übungsbedürftig, aber keiner großer Zeitaufwand.
Die analysierte Exceltabelle ist nach Access unter Tabelle (Donnerstag(2) importiert.
Die dazugehörigen Auswahlabfragen und Formulare findest Du in der Übersicht.

Datenbank nach Analyse

Gruß

Paul1

[sub]Excel > Access > MS-Office 2003
MS Windows XP Professional SP3
ECDL-Syllabus Version 4.0[/sub]
0 Punkte
Beantwortet von paul1 Experte (4.9k Punkte)
Hallo spaceman,

Nachtrag:

Falls erforderlich kann ich die Datenbank ins Dateiformat "97" oder "2000" konvertieren.

Gruß

Paul1
0 Punkte
Beantwortet von
Hallo Paul,
danke, aber die Datenbank lässt sich nicht öffnen. Vermute mal, weil ich mit Office 2000 arbeite.

Gruss spaceman
0 Punkte
Beantwortet von paul1 Experte (4.9k Punkte)
Hallo spaceman,

Die ins Dateiformat 2000 konvertierte Datenbank:

Version 2000

Sollte es nicht gehen, hätte ich die Möglichkeit eine Datenbank von grund auf neu in Access 2000 zu erstellen, das dauert aber etwas.


Gruß

Paul1
0 Punkte
Beantwortet von
Hallo Paul,
danke für deine neue Version, Diese lässt sich jetzt öffnen. Bekomme jetzt aber die Meldung :
-----
Fehler beim Kompilieren
Syntaxfehler
bei:
Private Sub Donnerstag__LLE__Click()
----
ist egal: Danke für Deine Bemühungen!
Werde mal sehen ob ich den Fehler finde und werde auch mal an meiner Version weiter testen.

Gruss
spaceman
0 Punkte
Beantwortet von marie Experte (2k Punkte)
Hallo spaceman

schau mal hier, das dürfte das sein, was Du suchst:
vb-tec.de/instrwrd.htm

Gruß Marie
0 Punkte
Beantwortet von paul1 Experte (4.9k Punkte)
Hallo spaceman,

Über den Access Standard bzw. unter Verwendung des ASCII-Codes habe ich keine Möglichkeit gefunden, die Aufgabe im Sinne Deiner Abfrage zu lösen.

Mit einer SQL-Anweisung geht es aber:

SELECT Tabelle1.Feld2
FROM Tabelle1
WHERE Instr(1, Tabelle1.Feld2, "LLE", 0) > 0;


>Objekte
>Abfragen
>Neu
>Entwurfsansicht
>Tabelle anzeigen >Schließen
>SQL-Ansicht
>Code eingeben:
SELECT Tabelle1.Feld2
FROM Tabelle1
WHERE Instr(1, Tabelle1.Feld2, "LLE", 0) > 0;
>Schließen
>Speichern > Ja

Ergebnis siehe in Beispieldatei „ABFRAGE3“

Anschließend kannst Du in der Entwurfsansicht alle noch erforderlichen Felder eingeben und abspeichern

Ergebnis siehe in Beispieldatei „ABFRAGE1+2“ (sind beide gleich)
Danach sieht SQL-Ansicht so aus:

SELECT Tabelle1.ID, Tabelle1.Feld1, Tabelle1.Feld2, Tabelle1.Feld3, Tabelle1.Feld4, Tabelle1.Feld5, Tabelle1.Feld6
FROM Tabelle1
WHERE (((InStr(1,[Tabelle1].[Feld2],"LLE",0))>0));


DATENBANK-SQL-ABFRAGE

Hoffe, dass es jetzt so ist wie Du es brauchst.


Gruß

Paul1

[sub]Excel > Access > MS-Office 2003
MS Windows XP Professional SP3
ECDL-Syllabus Version 4.0[/sub]
0 Punkte
Beantwortet von
Hallo Marie, hallo Paul,
danke für Eure Bemühungen und Eure Tipps.
Werde mir alles gleich ansehen und ausprobieren.
melde mich dann bestimmt noch mal.

Gruss
spaceman
...