none
Filtern bei Runtime

    Frage

  • Guten Morgen,

    besitze ein Problem bezüglich Runtime, Client benutzt Datenbank von mir im Runtime. Er möchte nach einen Kunden suchen können und diesen dann ausdrucken. Es gibt kein Filtern in Runtime, deswegen müssen eigene Lösungen her. Habe ein leeres Formular erstellt mit Textfeld und Button, welches gesucht werden kann, nun besteht die Frage wie es am besten gelöst werden kann. Durch ein Makro, VBA? Welches wäre die einfachste und zugleich wieder die beste Lösung? Habe ein Makro FilterAnwenden getestet, welches immer einen Laufzeitfehler aufweist.

    Freitag, 31. Mai 2013 08:28

Antworten

  • Am 31.05.2013 schrieb Christian_Huml:

    besitze ein Problem bezüglich Runtime, Client benutzt Datenbank von mir im Runtime. Er möchte nach einen Kunden suchen können und diesen dann ausdrucken. Es gibt kein Filtern in Runtime, deswegen müssen eigene Lösungen her. Habe ein leeres Formular erstellt mit Textfeld und Button, welches gesucht werden kann, nun besteht die Frage wie es am besten gelöst werden kann. Durch ein Makro, VBA? Welches wäre die einfachste und zugleich wieder die beste Lösung?

    Ich bin immer für VBA. Ist vielleicht nicht einfach für dich, aber
    flexibler, insbesonders in der Weiterentwicklung.

    Habe ein Makro FilterAnwenden getestet, welches immer einen
    Laufzeitfehler aufweist.

    Wenn der Laufzeitfehler nicht geheim ist, dann gib hier die
    Fehlernummer und die Text dazu an. Die Glaskugeln sind in der
    Reparatur.

    Henry hat dir ja auch schon den richtigen Hinweis gegeben, hast Du das
    schon ausprobiert? Wenn ja, woran scheiterst Du?

    Servus
    Winfried


    WSUS Package Publisher: http://wsuspackagepublisher.codeplex.com/
    GPO's: http://www.gruppenrichtlinien.de
    Community Forums NNTP Bridge: http://communitybridge.codeplex.com/

    Freitag, 31. Mai 2013 12:58
  • Wenn Du sowas machen willst, dann solltest Du Dir die Felder, nach denen Du Filtern willst, als ungebundene Suchfelder in den Formular Kopf legen. Dahinter eine "Suchen" Schaltfläche.

    Hinter der Schaltfläche dann code, der die WHERE Bedingung erstellt, welche sich aus dem Filter ergibt, also z.B. für Nachname und Vorname:

    Dim varFilter As Variant
    varFilter = Null
    If Not isNull(Me!strSucheNachname) Then
      varFilter = (varFilter + " AND ") & "Nachname LIKE '" & me!strSucheNachname & "*'"
    End If
    If Not isNull(Me!strSucheVorname) Then
      varFilter = (varFilter + " AND ") & "Vorname LIKE '" & me!strSucheVorname & "*'"
    End If
    If Not isNull(varFilter) Then
      Me.Filter = varFilter
      Me.FilterOn = True
    Else
      Me.Filter = ""
      Me.FilterOn = False
    End If

    Damit kannst Du einfach nach Nachname und Vorname suchen. Ganz so kompliziert ist das ja eigentlich nicht.

    Gruss

    Henry

    Montag, 3. Juni 2013 10:22
  • Na, mit einem Bericht geht das nicht.

    Du musst das schon in einem Formular machen. Dannach kannst Du dann den Report mit der gleichen WHERE Bedingung öffnen (DoCmd.OpenReport, dort den WhereCondition Parameter).

    Gruss

    Henry

    Montag, 3. Juni 2013 11:56
  • Das entspricht nicht meinem Code. Das Me!Nachname muss den Namen des Such-Textfeldes sein. Also z.B. Me!txtSearchNachname

    Gruss

    Henry

    Montag, 3. Juni 2013 12:34

Alle Antworten

  • Hallo Christian
    Vielleicht hilft das hier:

    http://www.donkarl.com?FAQ2.26

    Gruss
    Henry

    "Christian_Huml" schrieb im Newsbeitrag news:82d1f7fd-b157-4713-a42b-b0d36efa5463@communitybridge.codeplex.com...

    besitze ein Problem bezüglich Runtime, Client benutzt Datenbank von mir
    im Runtime. Er möchte nach einen Kunden suchen können und diesen dann
    ausdrucken. Es gibt kein Filtern in Runtime, deswegen müssen eigene
    Lösungen her.

    Freitag, 31. Mai 2013 09:36
  • Hallo Habermacher,

    auf dieser Seite war ich schon.

    Freitag, 31. Mai 2013 09:50
  • Am 31.05.2013 schrieb Christian_Huml:

    besitze ein Problem bezüglich Runtime, Client benutzt Datenbank von mir im Runtime. Er möchte nach einen Kunden suchen können und diesen dann ausdrucken. Es gibt kein Filtern in Runtime, deswegen müssen eigene Lösungen her. Habe ein leeres Formular erstellt mit Textfeld und Button, welches gesucht werden kann, nun besteht die Frage wie es am besten gelöst werden kann. Durch ein Makro, VBA? Welches wäre die einfachste und zugleich wieder die beste Lösung?

    Ich bin immer für VBA. Ist vielleicht nicht einfach für dich, aber
    flexibler, insbesonders in der Weiterentwicklung.

    Habe ein Makro FilterAnwenden getestet, welches immer einen
    Laufzeitfehler aufweist.

    Wenn der Laufzeitfehler nicht geheim ist, dann gib hier die
    Fehlernummer und die Text dazu an. Die Glaskugeln sind in der
    Reparatur.

    Henry hat dir ja auch schon den richtigen Hinweis gegeben, hast Du das
    schon ausprobiert? Wenn ja, woran scheiterst Du?

    Servus
    Winfried


    WSUS Package Publisher: http://wsuspackagepublisher.codeplex.com/
    GPO's: http://www.gruppenrichtlinien.de
    Community Forums NNTP Bridge: http://communitybridge.codeplex.com/

    Freitag, 31. Mai 2013 12:58
  • Guten Abend Sonntag,

    Ich bin immer für VBA. Ist vielleicht nicht einfach für dich, aber
    flexibler, insbesonders in der Weiterentwicklung.

    Besitze Grundlagen in VBA, aber ich weiß einfach nicht wo ich anfangen sollte.

    Wenn der Laufzeitfehler nicht geheim ist, dann gib hier die
    Fehlernummer und die Text dazu an. Die Glaskugeln sind in der
    Reparatur.

    Aktionsname: AnwendenFilter
    Fehlernummer: 2488

    Argumente: Abfrage_WP_Anfragen; [Abfrage_WP_Anfragen]; Nachname

    Muss aber ehrlich zugeben in Makro habe ich mich nicht gerade stark beschäftigt.

    Henry hat dir ja auch schon den richtigen Hinweis gegeben, hast Du das
    schon ausprobiert? Wenn ja, woran scheiterst Du?

    Sind alte Versionen:

    Es gibt bei MS Beispiele f�r einen Workaraound als Download: f�r A97: http://support.microsoft.com/?kbid=166634 f�r A00: http://support.microsoft.com/?kbid=262099

    Besitze die Version 2010

    Freitag, 31. Mai 2013 19:30
  • Am 31.05.2013 schrieb Christian_Huml:

    Ich bin immer für VBA. Ist vielleicht nicht einfach für dich, aber
    flexibler, insbesonders in der Weiterentwicklung.

    Besitze Grundlagen in VBA, aber ich weiß einfach nicht wo ich anfangen sollte.

    Am besten bei den Grundlagen. Besorg dir ein Buch und fang an zu
    probieren. Oder ist das eine Auftragsarbeit? Wenn ja, dann mußt du
    schneller lernen.

    Wenn der Laufzeitfehler nicht geheim ist, dann gib hier die
    Fehlernummer und die Text dazu an. Die Glaskugeln sind in der
    Reparatur.

    Aktionsname: AnwendenFilter
    Fehlernummer: 2488

    Argumente: Abfrage_WP_Anfragen; [Abfrage_WP_Anfragen]; Nachname

    Muss aber ehrlich zugeben in Makro habe ich mich nicht gerade stark beschäftigt.

    Da fehlt wohl ein Nachname. Aber ohne die DB kann ich nichts dazu
    sagen.

    Henry hat dir ja auch schon den richtigen Hinweis gegeben, hast Du das
    schon ausprobiert? Wenn ja, woran scheiterst Du?

    Sind alte Versionen:

    Es gibt bei MS Beispiele f�r einen Workaraound als Download:
    f�r A97: http://support.microsoft.com/?kbid=166634
    f�r A00: http://support.microsoft.com/?kbid=262099

    Besitze die Version 2010

    Es geht ums Prinzip, das kannst Du auf A2010 sicherlich ummünzen.

    Servus
    Winfried


    WSUS Package Publisher: http://wsuspackagepublisher.codeplex.com/
    GPO's: http://www.gruppenrichtlinien.de
    Community Forums NNTP Bridge: http://communitybridge.codeplex.com/

    Freitag, 31. Mai 2013 19:42
  • Am besten bei den Grundlagen. Besorg dir ein Buch und fang an zu
    probieren. Oder ist das eine Auftragsarbeit? Wenn ja, dann mußt du
    schneller lernen.

    Bei der Datenbank ist soweit alles fertig, was nun noch fehlt ist ein Filter. Habe heute nochmal recheriert am besten wäre es wenn man in einem Bericht einen Textfilter oder wenn man z.B. auf "Nachname" Filtern klickt "Alles auswählen" oder nur eine bestimmte Person auswählen kann. Kann hierbei ein Kontexmenü in dieser Form erstellt werden? Besitze das Buch: Richtig einsteigen Access 2010 VBA-Programmierung von Lorenz Hölscher.

    Montag, 3. Juni 2013 09:51
  • Wenn Du sowas machen willst, dann solltest Du Dir die Felder, nach denen Du Filtern willst, als ungebundene Suchfelder in den Formular Kopf legen. Dahinter eine "Suchen" Schaltfläche.

    Hinter der Schaltfläche dann code, der die WHERE Bedingung erstellt, welche sich aus dem Filter ergibt, also z.B. für Nachname und Vorname:

    Dim varFilter As Variant
    varFilter = Null
    If Not isNull(Me!strSucheNachname) Then
      varFilter = (varFilter + " AND ") & "Nachname LIKE '" & me!strSucheNachname & "*'"
    End If
    If Not isNull(Me!strSucheVorname) Then
      varFilter = (varFilter + " AND ") & "Vorname LIKE '" & me!strSucheVorname & "*'"
    End If
    If Not isNull(varFilter) Then
      Me.Filter = varFilter
      Me.FilterOn = True
    Else
      Me.Filter = ""
      Me.FilterOn = False
    End If

    Damit kannst Du einfach nach Nachname und Vorname suchen. Ganz so kompliziert ist das ja eigentlich nicht.

    Gruss

    Henry

    Montag, 3. Juni 2013 10:22
  • Habe es bei einem Bericht eingebunden:

    Option Compare Database
    Option Explicit
    
    Private Sub Befehl89_Click()
    Me.Filter = "Nachname Like'*" & Me!Nachname & "*'"
    Me.FilterOn = True
    End Sub


    bei der Suche wird aber immer der gleiche Datensatz angezeigt, obwohl auch andere vorhanden sind, welches ich im Textfeld auch richtig eingegeben habe.

    Bei Me.FilterOn = True gibt er mir auch einen Laufzeitfehler

    Montag, 3. Juni 2013 11:36
  • Na, mit einem Bericht geht das nicht.

    Du musst das schon in einem Formular machen. Dannach kannst Du dann den Report mit der gleichen WHERE Bedingung öffnen (DoCmd.OpenReport, dort den WhereCondition Parameter).

    Gruss

    Henry

    Montag, 3. Juni 2013 11:56
  • Ok, jetzt weiß ich hier Bescheid aber auch wenn ich im Formular dies mache erhalte ich nur immer den gleichen Nachnamen.

    Meine Vorgehensweise:

    Entsprechendes Formular -> Textfeld erstellt ungebunden -> Button -> Beim klicken -> VBA Code. Mach ich hierbei was falsch?

    Montag, 3. Juni 2013 12:07
  • Heissen Deine Felder denn so, wie ich geschrieben habe? Du musst das Feld "Nachname" anschauen, wie das wirklich heisst.

    Genau genommen brauchst Du ja zwei Felder, das Datenbank Feld, das in der Datenquelle des Formulars drin ist (also z.B. Nachname) und dann das Suchfeld, nach dem gesucht werden soll, also me!txtSearchNachname. Du kannst natürlich nicht für beide das gleiche Feld nehmen. Wie hast Du denn das Textfeld benannt, dass Du eingefügt hast? Das hat ja den Text drin, nach dem Du suchen willst, also musst Du das da zwischen den beiden & angeben.

    Gibt es denn irgendeinen Fehler? Oder läuft da sonst noch irgendwelcher Code, den wir hier nicht sehen?

    Setzt mal einen Debug Stop in der ersten Code Zeile des Buttons und gehe dann Step-by-Step durch den Code durch. Läuft da sonst noch was ab? z.B. ein Form_Current Ereignis?

    Oder hast Du vielleicht das AllowFilter Property des Formulars auf False gesetzt?

    Gründe kann es viele geben, wieso nicht gefildert wird. Grundsätzlich müsste es so funktionieren.

    Gruss

    Henry


    Montag, 3. Juni 2013 12:31
  • Das entspricht nicht meinem Code. Das Me!Nachname muss den Namen des Such-Textfeldes sein. Also z.B. Me!txtSearchNachname

    Gruss

    Henry

    Montag, 3. Juni 2013 12:34
  • Ok, jetzt klappts
    Montag, 3. Juni 2013 12:50