Announcement

Collapse
No announcement yet.

nächsten passenden Datesatz finden

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • nächsten passenden Datesatz finden

    Hallo,<br> <br>
    in meinem Datenbestand gibt es im Feld 'Nachname' mehrere Müller. Die Suche nach 'Müller' habe ich mit "Locate" gelöst, was auch vorzüglich klappt (schnell!).<br> <br>
    Leider erhalte ich immer nur den ersten 'Müller'. Was ist zu tun, um den nächsten passenden Datensatz zu finden?
    <br> <br>
    Wer weiß Rat<br> <br>
    Danke<br>
    Uwe

  • #2
    Hallo,

    in diesem Fall würde ich auf die Methoden <b>FindFirst</b> und <b>FindNext</b> zurückgreifen

    Comment


    • #3
      Hallo Andreas<br><br>
      danke für die schnelle Antwort. Habe den Lösungsvorschlag gleich in die Tat umgesetzt, mit dem Ergebnis, daß nicht der nächste "Müller", sondern der nächste folgende Datensatz angezeigt wird <b>(FindNext).<br>
      Gibt es noch andere Möglichkeiten?<br>
      Danke<br>
      Uw

      Comment


      • #4
        Eine Möglichkeit wäre die Datenmenge so einzuschränken, daß nur noch entsprechende Datensätze zurückgeliefert werden, welche deinen Wünschen entsprechen. Dazu kannst Du eine TQuery-Komponente mit folgender SQL-Anweisung benutzen:

        SELECT * FROM MyTabelle WHERE Nachname = 'Müller

        Comment


        • #5
          Hallo,

          wenn ich mich richtig erinnere steht in der Delphi-Hilfe der folgende Satz "<i>Die Methode FindFirst implementiert eine virtuelle Methode für das Positionieren des Cursors auf den ersten Datensatz einer gefilterten Datenmenge.</i>". Die Idee besteht darin, über ein aktives <b>Filter</b> oder über einen aktiven <B>Range</b> die Datenmenge durch die BDE vorsortieren zu lassen, so dass in der Tat die nächste Fundstelle gefunden wird

          Comment


          • #6
            Hallo Andreas,<br><br>
            peinlich....<br>
            Aber das mit dem filter habe ich versucht und geht soweit auch, nur nicht besonders performant (Access'97.mdb).<br>
            Das mit <b>range </b> ist aber so eine Sache. So sieht der Code im Moment aus:<br>
            with SalesData.Cust do
            begin
            Close;
            IndexName:= 'Ansprechpartner1';
            Open;
            EditRangeStart;
            FieldByName('Ansprechpartner1').AsString := A;{A ist
            Eingabefeld}
            EditRangeEnd;
            FieldByName('Ansprechpartner1').AsString := 'Zz';
            ApplyRange; <br>
            Wie kann man das gestalten, daß sich <b>EditRangeEnd</b> wie ein SQL Code <b>"SELECT NAME1 FROM CUST WHERE NAME1 LIKE 'Mül*'</b> verhält, also alle Einträge >=Mül , aber auch nicht mehr 'Müm'??<br>
            Wer weiß Rat<br><br>
            Uw

            Comment


            • #7
              Hallo Uwe,

              siehe mal in der Online-Hilfe zu TTable.GotoNearest nach, ich glaube das löst Dein Problem.

              Diete

              Comment


              • #8
                Warum leicht wenn es schwer geehn kann !???
                Die Perfekte lösung ist was Bernhard Geyer schon Gezeigt hat

                Comment

                Working...
                X