Office: (Office 2010) Ahnlichkeitssuche mit SRatcliff von Olaf Schmid(t)

Helfe beim Thema Ahnlichkeitssuche mit SRatcliff von Olaf Schmid(t) in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo, *In der Demo gibt es 2 bestehende Kongresse (tblCongresses) und 15 in der Importtabelle. Bei diesen 15 handelt es sich eigentlich um 3... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Silvie31, 7. Mai 2012.

  1. Ahnlichkeitssuche mit SRatcliff von Olaf Schmid(t)


    Hallo,

    Das wäre auch mit dem ursprünglichen "RatCliff" gegangen!
    Code:
    Wobei in mdlPhonetics die überflüssige zweite Globale Variable raus muß und die Übergabe ByRef erfolgt.
    Code:
    Die Frage habe ich mir auch gestellt *wink.gif*
    Am einfachsten den ersten nicht passenden, den Rest macht ja Ratcliff *Smilie

    Gruß

    LL
     
  2. \@Josef:
    grinz--- die letzte Party hatte schon Lieferschwierigkeiten:
    http://www.ms-office-forum.de/forum/...d.php?t=285992

    @Louis:
    Mir sind einfach Funktionen sympathischer, die nur von ihren Argumenten abhängen und nicht noch auf irgendwelche aktuellen, statischen Modulvariablen zugreifen....
     
    Atrus2711, 16. Mai 2012
    #17
  3. Dem kann ich mich nur anschließen.

    Aber ich glaube die Grundproblematik des TS lag am Schleifenkonstrukt.
    Daher die "ausführende Ergänzung" *wink.gif*
    Jetzt hat der TS hoffntlich doppelt gelernt*mrcool

    Gruß

    LL
     
  4. Ahnlichkeitssuche mit SRatcliff von Olaf Schmid(t)

    Du meinst wenn ein unbekannter Kongress mehrfach in derselben Importliste auftaucht und das auch noch in verschiedenen Schreibweisen? Dann müsste halt der erste (falschgeschriebene) akzeptiert werden, die anderen die anderen bekommen ja dann auch denselbenNamen, dann wäre sie zumindest schonmal beisammen und müssten u.U. manuell korrigiert werden.....

    In meinem Fall aber erstmal nicht wahrscheinlich, da ich in regelmäßigen Abständen die Importliiste bekomme (auf der eigentlich immer nur eine Ausgabe steht). Ausserdem kommen die Listen vom Veranstalter, wenn also doch ein Kongress doppelt auftauchen sollte, dann wären sie zumindest gleich geschrieben.

    Aber du hast natürlich recht, alles ist möglich. Grundsätzlich bin ich mit dem phonetischen Vergleich auch nicht ganz zufrieden, aber es funktioniert halt und hilft mir erstmal weiter. Oft geht es auch nur um kleine Tipfehler (diese sind nicht ganz so schlimm) oder um Ausdrücke wie "1st", "Annual", "2011". Dafür reicht es allemal.... Und am wichtigsten ist ja auch erstmal dass ich es soweit hinkriege...oder? *wink.gif*

    @Martin
    Ja genau, 70
    End IF[/quote] @Louis
    Dankeschön, das klingt vielversprechend! Werd ich gleich mal ausprobieren und versuchen zu verstehen!
     
    Silvie31, 16. Mai 2012
    #19
  5. -gelöscht-
     
  6. Ok, das Problem lag also auf jeden Fall am Nichtverständnis der Schleifenkonstruktion.
    Hat Sie! *Smilie Zumindest ist sie noch dabei. Irgendetwas verstehe ich aber noch falsch......Es verstehe es so, es gibt zwei Möglichkeiten die Schleife zu durchlaufen: (Unterbrecht mich, wenn ich Unsinn rede. *Smilie )

    1. Datensätze stimmen überein:
    Man beginnt bei DS 1 der Importtabelle. Die neue Schleife sucht so lange alle DS der Zieltabelle ab, bis Sie ein Ergebnis >=69 findet, um dann die Schleife wieder zu verlassen. Mit MoveFirst, springt er dann zurück zum ersten DS in der Zieltabelle. Wenn ich es richtig verstehe ist dieser Schritt einzig und allein zur Vorbereitung für den nächsten DS, er geht quasi zurück in die Ausgangsposition.
    Danach geht es wieder weiter in der alten Schleife. Hier wird nochmal das Ergebnis geprüft. Dieses kann also per Definition nicht zutreffen. (Wurde ja bereits geprüft, woraufhin die neue Schleife verlassen wurde.) Danach ist die Schleife auch schon wieder vorbei und das ganze Spiel beginnt von vorne im Prinzip ist bis dahin noch nix passiert.....

    2. Datensätze stimmen nicht überein:
    Die neue Schleife wird nicht beendet, da kein Ergebnis >= 69 gefunden wird. Die Schleife läuft also bis zum Ende (Until rsTargetCom.EOF). Danach auch wieder in die Ausgangsposition und erneuter Test des Ratcliff Ergebnisses. Diesmal ist es positiv (es ist kleiner als 69) und es wird ein neuer DS angelegt.

    Wenn jetzt irgendwas von dem was ich gerade geschrieben habe stimmt, würde ich an folgendem Punkt die Edit Geschichte einfügen. Diese fehlt mir nämlich noch. Code:
    Zurück zu Beispiel 1. In der neuen Schleife wurde gerade getestet ob Ratcliff >69 ist. Das war der Fall und er hat die Schleife beendet. Der erneute Test (If
     
    Silvie31, 17. Mai 2012
    #21
  7. Hallo Silvie,

    den Code hast Du richtig verstanden!
    Wenn Du mir erklärst was Du womit editieren willst, kann ich Dir die Frage vielleicht beantworten.
    Willst Du die Import-Tabelle editieren?
    Sprich alle Datensätze die RatCliff > 69 sind mit den Werten der "tblCongresses"?
    Wenn ja, warum?

    Gruß

    LL
     
  8. Ahnlichkeitssuche mit SRatcliff von Olaf Schmid(t)

    Hallo Louis,

    Genau andersrum: Im Fall Ratcliff > 70 (Event besteht, DS nicht neu anlegen) sollten in der Zieltabelle einige Felder (evtl.) editiert werden. Das heißt, wenn ein bestehender Kongress gefunden wird, bei dem bspw. das Fachgebiet noch nicht bekannt war, soll diese Info aus der Importtabelle übernommen werden.

    Bevor ich die Ratcliff Funktion eingebaut habe, sah es ungefähr so aus:
    Code:
    Verstehst du was ich meine?

    X Silvie
     
    Silvie31, 17. Mai 2012
    #23
  9. Hallo,

    mir fällt gerade ein, dass deine Idee, die Importtabelle auch zu editieren, sehr hilfreich wäre. Per Ratcliff will ich ja Kongresse identifizieren. Es wäre praktisch wenn ich meine KongressID (aus der Zieltabelle) auch in die Importtabelle überführen könnte. Das würde nämlich meine nächsten Schritte unwahrscheinlich erleichtern....Wäre bestimmt nicht effizient wenn ich später den gleichen Ratcliff Test noch mal durchführen muss.

    Hab gerade mal einige Sachen ausprobiert, aber ich krieg es nicht richtig hin. Vielleicht kannst du mir ja dabei nochmal helfen.

    Auf jeden Fall schon mal lieben Dank für alles!

    LG Silvie
     
    Silvie31, 18. Mai 2012
    #24
  10. Hallo zusammen,

    Also eine meiner zwei Fragen habe ich zum Glück hinbekommen, bei der anderen steh ich immer noch auf dem Schlauch!

    1. Ich wollte das Feld "Titel" meiner Importtabelle auch editieren, damit ich bei den nächsten Schritten nicht wieder einen RatCliff Test machen muss. Habe jetzt auch die ID meiner Zieltabelle in die Importtabelle überführt. So kann ich alles einfach und sicher identifizieren (Keine Tests mit Strings nötig). Der Fehler war, dass ich mein Recordset der Importtabelle noch als Snapshot geöffnet hatte, dieses konnte ich natürlich nicht editieren....

    2. An gleicher Stelle möchte ich jetzt eigentlich auch noch meine Zieltabelle editieren, falls die Importtabelle mehr Infos enthält. (Siehe Beitrag #23)
    Kann mir jemand sagen was an meinem Ansatz falsch ist (Code aus #21)?

    Das wird hier zu unübersichtlich, deswegen doch nochmal kurz das Stückchen Code:
    Code:
    Das blaue Stückchen ist mein Problemkind. Der Code wird zwar akzeptiert (kein Debugger) aber er editiert nicth. Wenn ich danach die Tabelle öffne, ist alles wie zuvor!

    Hat jemand den entscheidenden Hinweis für mich?

    DANKESCHÖN!!!

    X Sil
     
    Silvie31, 21. Mai 2012
    #25
  11. Hi,

    Code:
    Das Wörtchen Subject ist niemals und unter keinen Umständen Null. Gilt auch für große Werte von Null.

    du willst da sicher auf ein Recordsetfeld namens Subject zugreifen. Der Recordset fühlt sich so jedoch überhaupt nicht angesprochen...
     
    Atrus2711, 21. Mai 2012
    #26
  12. Du meinst es müsste so heißen?
    Code:
    Wenn ich diesen Extratest (If IsNull) einfach mal weglasse, macht er leider auch nicht mehr. Beispiel:
    Code:
    Hab ich Dich falsch verstanden?
     
    Silvie31, 21. Mai 2012
    #27
  13. Ahnlichkeitssuche mit SRatcliff von Olaf Schmid(t)

    Du hast schon richtig verstanden.
    Statt Isnull könnte aber auch der Vergleich Len(NZ(rsTarget("Subject"))) = 0 nützen, denn auch eine leere Zeichenfolge ist wohl unerwünscht, aber eben nicht Null.

    Wenns es aber eh nicht an der Bedingung liegt, dürfte der neue Wert mglw. nicht der erwartete Wert sein. Hast du ihn mal angesehen?

    Oder gibt es Fehler (Err.Number mal verfolgen!)?
     
    Atrus2711, 21. Mai 2012
    #28
  14. Hi Martin,

    Einen Fehler gibt es (leider) nicht.
    Mir ist aber gerade aufgefallen dass er den ersten DS der Zieltabelle erfolgreich editiert, die anderen aber leider nicht. Wie kann dass sein? Die Schleife funktioniert doch eigentlich.....

    X Silvie
     
    Silvie31, 21. Mai 2012
    #29
  15. Hi,

    gehs halt mal im Einzelschrittmodus durch. Im Moment blick ichs auch nicht so ganz. Klingt so, als sei da irgendwo ein Movenext vergessen worden.
     
    Atrus2711, 21. Mai 2012
    #30
Thema:

Ahnlichkeitssuche mit SRatcliff von Olaf Schmid(t)

  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden