Announcement

Collapse
No announcement yet.

Problem mit Filterkriterien

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

  • Problem mit Filterkriterien

    Guten Morgen!

    ich hab da ein problem mit meinem filter:

    wie muss ich die anfrage schreiben, wenn ich nach 2 kriterien suchen will.
    also in meinem fall sollten die spalten matchcode und kdnr durchsucht werden.
    es soll egal sein, nach was man sucht (matchcode oder kdnr) - es sollte der gleiche ds angezeigt werden.

    ich habs mal so versucht:

    Code:
    bs.Filter = "Matchcode like '%" & txtSearch.Text & "%'  Or KdNr like '%" & CType(txtKdNr.Text, Integer) & "%'"
    auch schon mit AND und &, aber leider auch ohne erfolg.

    vllt kann mir einer von euch sagen, was ich dabei falsch gemacht hab.

    danke schon im vorraus!

    lg

  • #2
    Hallo eistee,

    also, ich bin alles andere als sicher, aber hast Du es mal mit einem Sternchen als Platzhalter versucht. Mir ist, als hätte ich das Problem auch schon mal gehabt, aber - wie gesagt - sicher bin ich nicht.

    Was passiert denn bei Deiner Abfrage? Gibt's nen Fehler oder nur 'ne leere Ergebnismenge?

    Comment


    • #3
      wenn ichs so mach:

      Code:
      bs.Filter = "Matchcode like '%" & txtSearch.Text & "%'  Or KdNr like '%" & CType(txtKdNr.Text, Integer) & "%'"
      kommt diese fehlermeldung:
      Die Operation 'Like' kann nicht an System.Int32 und System.String durchgeführt werden.

      und wenn ichs so versuch:

      Code:
      bs.Filter = "Matchcode like '%" & txtSearch.Text & "%'" & " KdNr ='" & CType(txtKdNr.Text, Integer) & "'%"
      kommt diese fehlermeldung:
      Syntaxfehler: Fehlender Operand nach dem Operator 'KdNr'.

      wenn ichs mit den sternchen probier, passiert das selbe.

      Comment


      • #4
        Hab's auch gerade mal probiert, ob Sternchen oder % macht keinen Unterschied. Warum versuchst Du nicht erstmal ein Kriterium, bis das funktioniert, und dann das andere? Anschließend kannst Du sie ja verknüpfen.
        Welchen Typ haben denn Matchcode und kdnr? Klingt eher nach numerischen Typen.
        Ich habe gerade bs.Filter = "Feld1 LIKE '%Test%'" erfolgreich probiert, keine Probleme.
        Und wenn Du im zweiten Kriterium den Wert in einen INT umwandelst, funktioniert LIKE auch nicht (geht nur mit alphanumerischen). Wenn kdnr eine Zahl ist, kannst Du sie mit STR(KdNr) (MS SQL Server) in einen String umwandeln, dann funktioniert vermutlich auch das LIKE. Dann allerdings brauchst Du den Wert nicht in einen INT umwandeln.

        Comment


        • #5
          egal, was ich umwandel oder nicht, es kommt immer wieder die selbe meldung:
          Syntaxfehler: Fehlender Operand nach dem Operator 'KdNr'.

          matchcode ist ein text und kdnr eine zahl.

          wenn ich den matchcode allein durchsuche funktionierts super, nur beide gehen nicht.

          Comment


          • #6
            Was macht er denn bei "KdNr = " + txtKdNr.Text

            Comment


            • #7
              es kommt wieder die meldung mit dem syntaxfehler.

              Comment


              • #8
                Kann es sein, dass txtKdNr.Text leer ist? Probier doch mal "KdNr = 12345" (natürlich mit einer vorhandene Nummer).

                Comment


                • #9
                  ich habs mittlerweile lösen können.

                  Code:
                  Dim cbuffer As String = ""
                          If Not String.IsNullOrEmpty(txtSearch.Text) Then
                  
                              Select Case txtSearch.Text.Substring(0, 1)
                                  Case "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"
                                      cbuffer = "KdNr >= " & CType(txtSearch.Text, Integer)
                                  Case Else
                                      cbuffer = "Matchcode like '%" & txtSearch.Text & "%'"
                              End Select
                  
                          End If
                          bs.Filter = cbuffer

                  Comment

                  Working...
                  X