tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
8
ZUGRIFFE
783
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Fuchsei Fuchsei ist offline Mitglied
    Registriert seit
    Aug 2011
    Beiträge
    22
    Hi erstmal ich bin neu hier,
    dieses Forum hat mir bis jetzt sehr geholfen, deswegen hab ich mich auch angemeldet.

    Ich habe folgendes Problem :

    Ich bin habe eine Datenbank mit Tabelle und Formular.

    In diesem Formular habe ich eine Suchfunktion eingerichtet die über 3 Textfelder geht, nach diesen ich in 3 Spalten nach einer Zahl filtern kann.

    Nun möchte ich aber gern mit einem Textfeld nach einer nach diesen drei Zahlen filtern, also muss ich wohl irgendwie mit left, middle und right arbeiten. Ich habe aber leider nur beschränkte Programmierkenntnisse. Gibt es irgendwie eine Möglichkeit dies in meinen derzeitigen Suchcode einzugliedern?

    So sieht er bis jetzt aus:
    Code vb:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    
     Public Sub SQLString(FieldValue As Variant, FieldName As String, _
                         Criteria As String, ArgCount As Integer, _
                         Typ As Integer, Optional bAnd As Boolean = True)
       
        If Nz(FieldValue, "") <> "" Then
            If bAnd Then
               
                If ArgCount > 0 Then Criteria = Criteria & " AND "
              Else
                
                If ArgCount > 0 Then Criteria = Criteria & " OR "
            End If
            Select Case Typ
              Case 1
                Criteria = Criteria & FieldName & "= #" & _
                           Format(CDate(FieldValue), "mm-dd-yyyy") & "#"
              Case 2
                Criteria = Criteria & FieldName & " Like '*" & FieldValue & "*'"
              Case 3
                Criteria = Criteria & FieldName & " = " & Str(FieldValue)
                                    
              Case 4
                Criteria = Criteria & FieldName & " = '" & FieldValue & "'"
              Case 5
                If FieldValue = "Ja" Or FieldValue = "True" Or _
                   FieldValue = True Then
                    Criteria = Criteria & FieldName & " = -1"
                  Else
                    Criteria = Criteria & FieldName & " = 0"
                End If
            End Select
           
            ArgCount = ArgCount + 1
        End If
    End Sub
     
     
    Private Function Filterbedingung() As String
        Dim ArgCount As Integer
       
       
        ArgCount = 0
        myCriteria = ""
      
     
     
        SQLString Me![Geschaeftsstelle], "geschaef", myCriteria, ArgCount, 4
        SQLString Me!Service, "servicec", myCriteria, ArgCount, 4
        SQLString Me!Beraterposten, "beraterp", myCriteria, ArgCount, 4
       
        If myCriteria = "" Then myCriteria = "True"
        Filterbedingung = myCriteria
    End Function
     
     
    Private Sub Btn_FilterOn_Click()
     Me.Filter = Filterbedingung
     Me.FilterOn = True
    End Sub
     
    Private Sub Btn_FilterOff_Click()
        Me.FilterOn = False
        myCriteria = ""
    End Sub

    Ich bitte um schnelle Hilfe hab nämlich nicht mehr so viel zeit dafür.

    Danke schon mal im Voraus.

    Fuchsei
    Geändert von ComFreek (29.08.11 um 19:26 Uhr) Grund: [VB]-Tags hinzugefügt!
     

  2. #2
    Avatar von DrSoong
    DrSoong DrSoong ist offline Iss was, Doc!
    tutorials.de Premium-User
    Registriert seit
    Jul 2003
    Ort
    Dem Zentrum meiner Welt
    Beiträge
    1.836
    Blog-Einträge
    85
    Hallo!

    Erstmal, bitte verwende die Codetags (in dem Fall [vb] und [/vb]), dann kannst du deinen Code besser formatieren und er ist um Welten besser zu lesen.

    Wie sieht denn so ein typisches Textfeld aus, dass du zerlegen willst?


    Der Doc!
     
    A: Hilfe, ich hab zwei Dateien hinzugefügt und nun sind die anderen weg
    B: Die Scrollbar da rechts ist dir schon mal aufgefallen?

  3. #3
    Fuchsei Fuchsei ist offline Mitglied
    Registriert seit
    Aug 2011
    Beiträge
    22
    Hi Doc,
    erstmal danke für deine Antwort. Also die Textfelder heißen wie oben genannt Geschäftsstelle, Service, und Beraterposten und suchen nur nach zahlen.
    Das neue Textfeld soll praktisch alle beinhalten.
    Ergo mit dem neuem Textfeld soll er mit den ersten 3 Zahlen die Spalte "geschaef" durchsuchen, und mit den nächsten 2 Zahlen die Spalte servicec, die letzten 2 zahlen sollen die Spalte "beraterp" durchsuchen.

    Das müsste mann halt irgendwie in den Suchstring eingliedern der bei mir ja so aussieht:

    Code vb:
    1
    2
    3
    
    SQLString Me![Geschaeftsstelle], "geschaef", myCriteria, ArgCount, 4
        SQLString Me!Service, "servicec", myCriteria, ArgCount, 4
        SQLString Me!Beraterposten, "beraterp", myCriteria, ArgCount, 4

    Danke wieder mal im Voraus.

    Fuchsei
     

  4. #4
    Avatar von DrSoong
    DrSoong DrSoong ist offline Iss was, Doc!
    tutorials.de Premium-User
    Registriert seit
    Jul 2003
    Ort
    Dem Zentrum meiner Welt
    Beiträge
    1.836
    Blog-Einträge
    85
    Also, wenn ich das richtig verstehe, hast du dann nur mehr ein Textfeld, in dem eine einzige Zahl eingegeben wird. Diese Zahl ist ein Code der sich aus den Codes für die Geschäftsstelle, der Servicestelle und dem Beraterposten zusammensetzt.

    Wenn die eingegebene Zahl immer 7-stellig ist, wäre das ganze sehr einfach zu lösen:
    Code vb:
    1
    2
    3
    4
    
    suchstring = Me!DeinTextfeld 'Zuweisung an Variable
    Geschäft = Left(suchstring, 3)
    Service = Mid(suchstring, 4, 2)
    Berater = Right(suchstring, 2)

    Sollte das ganze nicht 7-stellig sein, da die Geschäftsstelle nicht 3-stellig eingegeben wurde, müsstest du das ganze etwas abändern.
    Code vb:
    1
    2
    3
    4
    5
    
    suchstring = Me!DeinTextfeld 'Zuweisung an Variable
    Berater = Right(suchstring, 2)
    suchstring = Right(suchstring, Len(suchstring) - 2)
    Service = Right(suchstring, 2)
    Geschäft = Left(suchstring, Len(suchstring) - 2)


    Der Doc!
     
    A: Hilfe, ich hab zwei Dateien hinzugefügt und nun sind die anderen weg
    B: Die Scrollbar da rechts ist dir schon mal aufgefallen?

  5. #5
    Fuchsei Fuchsei ist offline Mitglied
    Registriert seit
    Aug 2011
    Beiträge
    22
    jo, das erste ist genau was ich brauche. Super, bin dir unglaublich dankbar.

    Ich hab nur leider ne blöde Frage, tut mir leid ich programmier erst seit einer Woche mit vba.
    Könntest du mir noch sagen wo ich deinen code jetzt hinsetzten muss dass das ganze funktioniert und wie ich dann meinen verändern muss. Sorry steh grad voll auf der leitung

    Fuchsei
     

  6. #6
    Avatar von DrSoong
    DrSoong DrSoong ist offline Iss was, Doc!
    tutorials.de Premium-User
    Registriert seit
    Jul 2003
    Ort
    Dem Zentrum meiner Welt
    Beiträge
    1.836
    Blog-Einträge
    85
    Das ganze gehört direkt vor deinen SQLString-Aufrufen, du musst halt nur die entsprechenden Variablen ersetzen:
    Code vb:
    1
    2
    3
    4
    5
    6
    7
    8
    
    suchstring = Me!DeinTextfeld 'Zuweisung an Variable
    Geschäft = Left(suchstring, 3)
    Service = Mid(suchstring, 4, 2)
    Berater = Right(suchstring, 2)
     
    SQLString Geschäft, "geschaef", myCriteria, ArgCount, 4
    SQLString Service, "servicec", myCriteria, ArgCount, 4
    SQLString Berater, "beraterp", myCriteria, ArgCount, 4


    Der Doc!
     
    A: Hilfe, ich hab zwei Dateien hinzugefügt und nun sind die anderen weg
    B: Die Scrollbar da rechts ist dir schon mal aufgefallen?

  7. #7
    Fuchsei Fuchsei ist offline Mitglied
    Registriert seit
    Aug 2011
    Beiträge
    22
    Top Doc, super funktioniert perfekt. Vielen Dank für deine schnelle und gute Hilfe. Bin froh dass es es endlich klappt. Der Wahnsinn wenn man bedenkt dass ich vor einer Woche noch nie mit Access gearbeitet habe, und jetzt schon ein bisschen rum programmier. Das war nur mit diesem Forum möglich. Hier gefällts mir.

    Eine Frage hätt ich aber noch: Kann man das iwie einstellen, bzw programmieren, dass bei Aufruf des Formulars erstmal kein einziger Datensatz angezeigt wird. Also erst nach der Suche dann die entsprechenden.

    Danke vielmals

    Fuchsei
     

  8. #8
    Avatar von DrSoong
    DrSoong DrSoong ist offline Iss was, Doc!
    tutorials.de Premium-User
    Registriert seit
    Jul 2003
    Ort
    Dem Zentrum meiner Welt
    Beiträge
    1.836
    Blog-Einträge
    85
    Da kann ich dir jetzt leider nicht helfen, hab hier kein Access und auch schon lang nichts mehr damit getan (die vorige Frage war ja VBA).


    Der Doc!
     
    A: Hilfe, ich hab zwei Dateien hinzugefügt und nun sind die anderen weg
    B: Die Scrollbar da rechts ist dir schon mal aufgefallen?

  9. #9
    Fuchsei Fuchsei ist offline Mitglied
    Registriert seit
    Aug 2011
    Beiträge
    22
    Stimmt, ja kein Problem frag ich halt ein bisschen rum.

    Fuchsei.
     

Ähnliche Themen

  1. Zerlegung einer URI mit Reg.Ex. [PERL]
    Von deostift im Forum CGI, Perl, Python, Ruby, Power Shell
    Antworten: 6
    Letzter Beitrag: 31.01.08, 15:27
  2. Vector zerlegung
    Von licht400 im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 17
    Letzter Beitrag: 31.08.07, 11:52
  3. String-Zerlegung
    Von notausgang im Forum .NET Café
    Antworten: 7
    Letzter Beitrag: 09.08.07, 09:48
  4. Zerlegung Stringketten
    Von Tassi im Forum Visual Basic 6.0
    Antworten: 8
    Letzter Beitrag: 22.06.04, 15:54
  5. String Zerlegung
    Von igfas im Forum Visual Basic 6.0
    Antworten: 2
    Letzter Beitrag: 27.03.03, 12:14

Stichworte