ACCESS - Vergleich von Zellenteilen

Dieses Thema im Forum "Office-Programme" wurde erstellt von slazenger86, 27. Mai 2003.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. slazenger86

    slazenger86 Byte

    Registriert seit:
    13. Dezember 2002
    Beiträge:
    33
    Hi Leute!

    Im Rahmen eines Praktikumsprojektes mit Access bin ich auf folgendes Problem gestoßen:

    ich habe in einer Tabelle einen Zelleninhalt, welcher aus einer Zeichenkette besteht.
    Bsp:
    bsp-1024.ick.wees.ned
    Der Zellinhalt in einer anderen Tabelle, welche im Access importiert ist (die obige ist übrigens auch importiert) und welcher den gleichen Anfangsnamen trägt, soll ermittelt werden.
    Bsp:
    bsp-1024.keine.ahnung

    Die Verwendung von allgemeinen Ausdrücken wäre dabei wichtig, da es sich hier um größere Datenmengen handelt.

    Wie kann ich nun die Anfänge dieser Zeichenketten in einer Zelle vergleichen und diese somit mittels einer Abfrage oder Ähnlichem ermitteln??

    Gruß Markus
     
  2. slazenger86

    slazenger86 Byte

    Registriert seit:
    13. Dezember 2002
    Beiträge:
    33
    Jo, dann vielen Dank an alle - das haut jetz alles soweit hin.

    ciao Markus
     
  3. castanho

    castanho Kbyte

    Registriert seit:
    4. März 2003
    Beiträge:
    292
    Gib im Kriterienfeld der Abfrage auf Tabelle B ein:
    nicht in (SELECT SpalteA FROM TabelleA)
     
  4. chrissebaeck

    chrissebaeck Kbyte

    Registriert seit:
    8. Mai 2001
    Beiträge:
    229
    Null\' musst Du abfragen.

    Christoph
     
  5. slazenger86

    slazenger86 Byte

    Registriert seit:
    13. Dezember 2002
    Beiträge:
    33
    genau das habe ich auch schon probiert. Es wird mir aber nichts angezeigt (leere Tabelle mit Überschrift, aber keinen Zellen). Ich lasse mir Spalte B aus Tabelle 2 anzeigen, habe Verknüpfungstyp 3 gewählt sage als Kriterium "ist null" und es zeigt mir nichts an.
    Nur wieso???? Ich habe extra einen Wert aus Spalte B geändert, den es mit Sicherheit nicht in Spalte A aus Tabelle 1 gibt. Trotzdem leere Abfrage....
    Was vielleicht noch anzumerken wäre:
    Die Abfrage wird aus einer anderen Abfrage und einer Tabelle erstellt.

    Aber sag mal müsste es nicht theoretisch Verknüpfungstyp 1 sein?
    Denn wenn es alle Datensätze aus Tabelle 2 enthält und alle aus Tabelle 1, die auch in der 2. enthalten sind auswählt, ist klar, dass wenn ich mir mit dem Kriterium "ist null" das anzeigen lasse, dass dann nix rauskommt. Jedoch funktioniert das mit dem Verknüpfungstyp 1 genausowenig....
    [Diese Nachricht wurde von slazenger86 am 04.06.2003 | 09:42 geändert.]
     
  6. chrissebaeck

    chrissebaeck Kbyte

    Registriert seit:
    8. Mai 2001
    Beiträge:
    229
    Null\' sein muss (also kein übereinstimmender DS vorhanden ist), und schon klappts auch mit der Abfrage.

    Christoph
     
  7. slazenger86

    slazenger86 Byte

    Registriert seit:
    13. Dezember 2002
    Beiträge:
    33
    k, komm schon wieder nich weiter!
    Ich habe zwei Tabellen und je eine Spalte. Die beiden Spalten (A, B) will ich nun gegeneinander vergleichen. Die Zelleneinträge, die in Spalte B jedoch nicht in Spalte A vorhanden sind, sollen mit einer Abfrage ermittelt und aufgelistet werden. Das pack ich aber irgendwie nicht.
    <an castanho: Auch nicht mit der Aufbauen-Funktion!>

    Gruß Markus
     
  8. castanho

    castanho Kbyte

    Registriert seit:
    4. März 2003
    Beiträge:
    292
    Wieso benutzt Du nicht die Entwurfsansicht der Abfrage? Ich verstehe nicht, wieso Du Dich mit SQL quälst, wenn Du es so schlecht beherrscht. Klick Dir den Kram zusammen und sieh Dir anschließend die SQL-Anweisung an, das ist allemal praktischer und Du lernst trotzdem was.
     
  9. slazenger86

    slazenger86 Byte

    Registriert seit:
    13. Dezember 2002
    Beiträge:
    33
    Vielen Dank Christoph.
    Werd mal schaun, wie sich was einbauen lässt.

    ciao
     
  10. chrissebaeck

    chrissebaeck Kbyte

    Registriert seit:
    8. Mai 2001
    Beiträge:
    229
    Hallo Markus,

    Dir wurde ja schon hinreichend geholfen, ich wollt nur noch der Vollständigkeit halber die Funktion

    INSTR(String1;String2)

    erwähnen. Die überprüft, ob String1 in String2 (an irgendeiner Stelle) vorkommt und ist daher etwas flexibler als der Vergleich Left ()=Left(). Du müsstest konkret also so was wie

    INSTR(LEFT(Zelle1;Anzahl_der_Zeichen);Zelle2)

    überprüfen lassen.

    Bei weiteren Fragen einfach mailen,

    Christoph
     
  11. slazenger86

    slazenger86 Byte

    Registriert seit:
    13. Dezember 2002
    Beiträge:
    33
    Ja, würd ich gern machen - den aufbauen Button benutzen. Nur leider gibt es so was beim SQL nicht. Genau den von dir beschriebenen Syntax gibt er in Anführungszeichen als Syntaxfehler aus. Dass man das Komma nach "F3" durch ein Semikolon ersetzen muss ist mir schon klar, nur existiert ein weiterer Syntaxfehler, den ich nicht finde.
    [Diese Nachricht wurde von slazenger86 am 03.06.2003 | 09:27 geändert.]
     
  12. castanho

    castanho Kbyte

    Registriert seit:
    4. März 2003
    Beiträge:
    292
    .zum.Beispiel.de\'
    Benutz den Aufbauen-Button, alle Funktionen sind ganz leicht erreichbar und auch über die Syntax gibt es kein Vertun.
     
  13. slazenger86

    slazenger86 Byte

    Registriert seit:
    13. Dezember 2002
    Beiträge:
    33
    Jo, WHERE F3 LIKE "*.." findet immerhin die nötigen Anweisungen, nur wie krieg ich das Prog dazu, dass es dann diese ".zum.beispiel.de" ergänzt. Bei mir schreibt er dann genau den Ausdruck "*.zum.beispiel.de" hin, statt es zu ergänzen.
     
  14. castanho

    castanho Kbyte

    Registriert seit:
    4. März 2003
    Beiträge:
    292
    *..\' findet die entsprechenden Zeichenketten ebenfalls.
    Aber right ginge ebenfalls. Versuch die Aufbauen-Funktion!
    [Diese Nachricht wurde von castanho am 02.06.2003 | 13:04 geändert.]
     
  15. slazenger86

    slazenger86 Byte

    Registriert seit:
    13. Dezember 2002
    Beiträge:
    33
    ..\'
    Nur ist hier das Problem, dass er keine Zeichenkette von zwei Punkten findet, weil nur ein Teil und nicht die komplette Zelle aus diesen zwei Punkten besteht. Da dies SQL-Anweisungen sind, kann ich ja hier nun nich mit "right" arbeiten, oder?
    Wie dann?

    Gruß Markus
     
  16. castanho

    castanho Kbyte

    Registriert seit:
    4. März 2003
    Beiträge:
    292
    Kann sein, daß das Komma ein Semikolon sein muß. Access bringt ein Feature mit, das solche Fehler vermeidbar macht - die Funktion Aufbauen (in der Buttonleiste ein Button mit einem Zauberstab). Man kann sich dabei alles zusammenklicken, also Funktionen raussuchen, Namen von Abfragen, Tabellen, Feldern. Kein nerviges Vertippen, kein Vergessen von Funktionsargumenten. Ist nicht nur für Anfänger praktisch.
    Noch mal was zu Deinem Chef: Natürlich ist Access relativ einfach zu lernen, aber ohne Anleitung ist es dennoch ein mühevolles Geschäft voller Frustrationen. Zumindest eine gewisse Grundlage - und dazu gehört auch etwas Datenbanktheorie - sollte man schon von jemandem vermittelt bekommen, der etwas davon versteht. Hinterher kann man sich dann leicht tiefer einarbeiten und plötzlich Probleme lösen, von denen man vorher nichtmal wußte, daß es sie gibt.
     
  17. slazenger86

    slazenger86 Byte

    Registriert seit:
    13. Dezember 2002
    Beiträge:
    33
    Hey man, das hat jetz soweit hingehaun mit den Abfragen.
    VIELEN DANK!!!
     
  18. slazenger86

    slazenger86 Byte

    Registriert seit:
    13. Dezember 2002
    Beiträge:
    33
    ach und dass das andere schon allgemein war hab ich auch gesehen, hatte nur zwei aritkel nacheinander geschrieben und du hattest deinen dazwischengesetzt ;-)
     
  19. slazenger86

    slazenger86 Byte

    Registriert seit:
    13. Dezember 2002
    Beiträge:
    33
    na ja die sache mit dem ranwagen ist so:
    Ich mach nen 7 wöchiges Praktikum und hab das Thema vorgeschlagen gekriegt und mein Chef meinte, dass ich das relativ leicht lernen könne. Aber irgendwie muss ich mir alles selbst beibringen und das ist ab und an nicht so ganz einfach wie es aussieht...
    Jetz noch ne Frage meiner Unkenntnis:
    wenn ich in der Entwurfsansicht einer Abfrage bin und darin "Left(F3, 10) eintrage, markiert der mir das komma und sagt, dass der Ausdruck syntaktisch falsch ist.
    zusätzlich werden mir noch drei infos mitgeliefert:
    entweder:
    ich habe einen Operanten oder einen operator nicht eingegeben
    oder:
    ich hab ein unzulässiges Zeichen oder Komma eingegeben
    oder:
    ich hab keine Anführungszeichen gesetzt.
    Frage: Was hab ich nun schon wieder falsch gemacht? Du hattest doch gesagt, dass ich diesen Ausdruck (Left(F3, 10)) in den Feldnamen in der Entwurfsansicht schreiben soll oder?
     
  20. castanho

    castanho Kbyte

    Registriert seit:
    4. März 2003
    Beiträge:
    292
    Das war schon allgemein, denn string1 ist natürlich eine Variable - und die kann auch der Name eines Tabellenfeldes sein. Bei der Ausführung werden Variablen dann durch ihren jeweiligen Inhalt ersetzt.
    Allerdings finde ich es wirklich interessant, mit welch geringen Kenntnissen Du Dich an solche Sachen wagst! Ich sag\'s einfach nochmal: Die bloße Tatsache, daß Word und Access im selben Office-Paket sind heißt nicht, daß es reicht, in Winword richtig gut zu sein, um in Access Datenbanken programmieren zu können.
     
Status des Themas:
Es sind keine weiteren Antworten möglich.

Diese Seite empfehlen