Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Gefilterte Daten übergeben.
zurück: Datum Heute weiter: Daten löschen aus Hauptformular und Unterformular Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Antwort Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Monty
Gast


Verfasst am:
05. Okt 2006, 09:42
Rufname:

Gefilterte Daten übergeben. - Gefilterte Daten übergeben.

Nach oben
       Version: Office 2003

Hallo Leute.
Ich möchte unter Access folgendes erreichen:
Ich habe ein Suchformular (basierend auf dem "Suchformular in 10 min") allerdings als reines Suchformular ohne Ausgabe.
Nun möchte ich, dass sich beim Aktivieren des Filters, ein neues Formular öffnet, in dem die gefundenen Ergebnisse aufgelistet sind.
Ich weiss, es ist bestimmt recht einfach, aber ich bin leider ein Neuling auf dem Gebiet und weiss nicht mal, wie man die Daten aus einem Formular an das andere übergibt. Ich habe mir diesen Artikel Formularkopf fixieren angeschaut, bin allerdings nicht schlauer geworden.

Beschreibt bitte die Vorgehensweise etwas ausführlicher.

Vielen Dank im Voraus, für alle konstruktiven Vorschläge.
Smilla
Access-Fan ohne große Kenntnisse


Verfasst am:
08. Okt 2006, 15:05
Rufname:
Wohnort: Siegburg City


AW: Gefilterte Daten übergeben. - AW: Gefilterte Daten übergeben.

Nach oben
       Version: Office 2003

Hallo Monty,

erstell zunächst ein unabhängiges Formular. Dort fügst du dann auch ein unabhängiges Textfeld ein (nehmen wir an es heißt Textfeld100) meinetwegen noch eins "Textfeld5". Dann erstellst du einen Button (nehmen wir an der heißt Befehl2) mit Hilfe der Toolbox. Dort hinterlegst du beim Ereignis"Beim Klicken" folgenden Code:
Code:
Public Sub SQLString(FieldValue As Variant, FieldName As String, _
                     Criteria As String, ArgCount As Integer, _
                     Typ As Integer, Optional bAnd As Boolean = True)
    '*************************************************************************
    'In diesem Modul muß und darf nichts geändert werden
    '*************************************************************************
    ' Erstelle Kriterien für die WHERE-Klausel.
    If Nz(FieldValue, "") <> "" Then
        If bAnd Then
            ' Füge "Und" hinzu, falls andere Kriterien vorhanden sind.
            If ArgCount > 0 Then Criteria = Criteria & " AND "
          Else
            ' Füge "Oder" hinzu, falls andere Kriterien vorhanden sind.
            If ArgCount > 0 Then Criteria = Criteria & " OR "
        End If
        Select Case Typ
          Case 1 'Datum
            Criteria = Criteria & FieldName & "= #" & _
                       Format(CDate(FieldValue), "mm-dd-yyyy") & "#"
          Case 2 'String Like
            Criteria = Criteria & FieldName & " Like '*" & FieldValue & "*'"
          Case 3 ' Zahl
            Criteria = Criteria & FieldName & " = " & FieldValue
                                 'Fehlendes = eingefuegt Willi Wipp 2004.10.07
          Case 4 'String =
            Criteria = Criteria & FieldName & " = '" & FieldValue & "'"
          Case 5 'Ja/nein
            If FieldValue = "Ja" Or FieldValue = "True" Or _
               FieldValue = True Then
                Criteria = Criteria & FieldName & " = -1"
              Else
                Criteria = Criteria & FieldName & " = 0"
            End If
        End Select
        '  Inkrementiere die Zahl der Argumente.
        ArgCount = ArgCount + 1
    End If
End Sub

Private Function Filterbedingung() As String
    Dim ArgCount As Integer
   
    ' Initialisiere die Argumentenzahl.
    ArgCount = 0
    myCriteria = ""
'*************************************************************************
    ' Nur hier muß man die Zeilen anpassen:
    ' Variable1 = Feldname im Formular in dem das Suchwort eingegeben wird
    ' Variable2 = Feldname im Formular der gefiltert werden soll
    '                                                 (Feld aus der Datenbank)
    ' Variable3 = Typ zum Angeben des Datenfeldes
    '             1 = Datum
    '             2 = String, alle die das Suchwort entahlten, egal wo
    '             3 = Zahl
    '             4 = String, findet nur die die genau übereinstimmen
    '             5 = ja/nein vom Typ Boolen
    ' Optional bAnd = Hier kann man dann noch angeben ob man die Kriterien mit
    '                 AND (True) oder OR (False) verknüpfen möchte.
    '                 Wenn Argument bAnd weggelassen => mit AND verküpft.
    ' Beispiel:
    ' SQLString Me!Sucheingabefeld, "Datenfeld", mycriteria, ArgCount, _
    '           2, False
    ' => Hier wird mit OR (Oder) verknuept.
    ' Beliebig erweiterbar, wenn man beispielsweise 5 Felder filtern
    ' will muß man die folgende Zeile gerade 5 mal kopieren und anpassen
    '*************************************************************************
    ' SQLString Variable1, Variable2, mycriteria, ArgCount, Variable3
    '*************************************************************************
    SQLString Me!Text100, "Indexnr", myCriteria, ArgCount, 3, False
    SQLString Me!Text5, "FeldnameAusTabelle", myCriteria, ArgCount, 2, False
    SQLString Me!Text5, "Themenbeschreibung", myCriteria, ArgCount, 2, False
   
    ' Falls kein Kriterium spezifiziert wurde, gebe alle Datensätze zurück.
    If myCriteria = "" Then
        myCriteria = "True"
    End If
    Filterbedingung = myCriteria
End Function

Private Sub Befehl2_Click()
    DoCmd.OpenForm FormName:="DeineFormular", _
                     WhereCondition:=Filterbedingung()
End Sub
Zugegeben der sieht heftig aus. Ist aber gar nicht so viel. Wichtig sind die Filterkriterien. Hier z.B. "SQLString Me!Text100, "Indexnr", myCriteria, ArgCount, 3, False" Text100 ist das Feld aus dem Suchformular in dem Daten eingegeben werden können. Was dort eingegeben wird, wird im Feld "Indexnr" durchsucht, die Zahl 3 sagt aus, dass es sich hierbei um Zahlen handelt (steht auch im Code) u.sw.

Dann zum Schluss kommt der Befehl (hier Befehl2). Hier trägst du das Formular ein, welches er gefiltert öffnen soll.

Et voila

Gruß Smilla
JörgG
Access-Team


Verfasst am:
08. Okt 2006, 17:26
Rufname:
Wohnort: b. Dresden

AW: Gefilterte Daten übergeben. - AW: Gefilterte Daten übergeben.

Nach oben
       Version: Office 2003

Hallo,

beide Formulare haben die gleiche Datenherkunft, somit übergibst Du nicht die Daten sondern den Daten-Filter = WhereCondition. Stell im VBA-Fenster den Cursor in das Wort OpenForm und drücke [F1], dann erhälst Du reichlich Infos zu dem Befehl und seinen Argumenten.
Ein Beispiel, benutzt wird das Ereignis "Suchfeld" "nach Aktualisierung":
Code:
Private Sub Suchfeld_AfterUpdate()
'wenn Suchfeld numerisch ist
    DoCmd.OpenForm "DeinArtikelForm", , , "ArtikelNr=" & Me!Suchfeld
'wenn Suchfeld alphanumerisch ist
    DoCmd.OpenForm "DeinArtikelForm", , , "ArtikelNr='" & Me!Suchfeld & "'"
End Sub

_________________
MfG, Jörg Very Happy

Bitte das Feedback nicht vergessen.
Monty_
Gast


Verfasst am:
10. Okt 2006, 14:40
Rufname:

AW: Gefilterte Daten übergeben. - AW: Gefilterte Daten übergeben.

Nach oben
       Version: Office 2003

Danke euch beiden für die Antworten - habe die Vorschläge kombiniert und unter Verwendung des Quellcodes von Smilla es so gelöst:
Code:
Private Sub btnOeffnen_Click()
    DoCmd.OpenForm "Suchergebnisse"
    Form_Suchergebnisse.Filter = Me.Filter
    Form_Suchergebnisse.FilterOn = True
End Sub
nun möchte ich zusätzlich im neuen Formular neben den gefilterten Datensätzen je ein Kontrollkästchen stehen haben, mit dem ich die Datensätze einzeln auswählen kann und mit einem Button wieder ein neues Formular öffne, in dem nur die ausgewählten Datensätze angezeigt werden. Kurz gesagt, einen bestehenden Filter ergänzen und an das weitere Formular übergeben.

Wie kann ich den bereits aktiven Filter ergänen und weiter übergeben?
JörgG
Access-Team


Verfasst am:
10. Okt 2006, 14:54
Rufname:
Wohnort: b. Dresden


AW: Gefilterte Daten übergeben. - AW: Gefilterte Daten übergeben.

Nach oben
       Version: Office 2003

Hallo Monty,

wie wär's damit, genau wie oben und den Filter ergänzen:
Code:
    Me.Filter = Me.Filter & " AND JaNeinFeld = True"
' bzw
    strCriteria = Me.Filter & " AND JaNeinFeld = True"
Das JaNeinFeld muss in der Basistabelle enthalten sein.
_________________
MfG, Jörg Very Happy

Bitte das Feedback nicht vergessen.
Monty
I've hacked 127.0.0.1


Verfasst am:
10. Okt 2006, 15:15
Rufname:

AW: Gefilterte Daten übergeben. - AW: Gefilterte Daten übergeben.

Nach oben
       Version: Office 2003

Das habe ich mir schon fast gedacht, und habe es auch genau so probiert:
Code:
Private Sub btnDetailview_Click()
    DoCmd.OpenForm "TrefferDetails"
    Form_TrefferDetails.Filter = Me.Filter & " AND checked = 1"
    Form_TrefferDetails.FilterON = True
End Sub
Der Feldname "checked" steht in der Basistabelle. vor dem öffnen des Formulars "Suchergebnisse" lasse ich ein Macro starten, welches alle "checked" werte auf 0 setzt.

Problem ist: beim öffnen des Formulars "TrefferDetails" wird zwar angezeigt, "Datensatz 1 von ... (gefiltert)" allerdings keine Daten dargestellt. Irgendetwas schein da mit der Aktualisierung der Basistabelle nicht stimmen, erst wenn ich die Formulare schliesse und wieder öffne, läuft es so wie ich will.

Jörg, kannst du mir bitte einen Tipp oder einen Code geben, womit ich beim betätigen der Taste "btnDetailView" noch zusätzlich die Tabelle aktualisieren kann?

thx in advance!
JörgG
Access-Team


Verfasst am:
10. Okt 2006, 15:22
Rufname:
Wohnort: b. Dresden

AW: Gefilterte Daten übergeben. - AW: Gefilterte Daten übergeben.

Nach oben
       Version: Office 2003

False = 0
True = -1

_________________
MfG, Jörg Very Happy

Bitte das Feedback nicht vergessen.
Monty
I've hacked 127.0.0.1


Verfasst am:
10. Okt 2006, 15:40
Rufname:

AW: Gefilterte Daten übergeben. - AW: Gefilterte Daten übergeben.

Nach oben
       Version: Office 2003

Ich meine True = 1 geht auch.

Wie gesagt, auch wenn ich anstatt der werte 1,0,-1 True oder False eingebe, die Werte in der Tabelle werden nicht sofort aktualisiert. Ist es eine Macke von Office03 oder übersehe ich da was?
JörgG
Access-Team


Verfasst am:
10. Okt 2006, 15:58
Rufname:
Wohnort: b. Dresden


AW: Gefilterte Daten übergeben. - AW: Gefilterte Daten übergeben.

Nach oben
       Version: Office 2003

Hallo Monty,

True ist und bleibt -1.

evtl hilft es schon, wenn Du vor dem DoCmd.OpenForm ... Befehl ein Me.Requery setzt, um die Formulardaten zu aktualisieren. Sonst müsstest Du mal die gesamte Routine zeigen, inkl dem Makrocode (im Menü - Extras findest Du eine Rubrik "Makros zu VB konvertieren".

_________________
MfG, Jörg Very Happy

Bitte das Feedback nicht vergessen.
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Tabellen & Abfragen: Daten automatisch einfügen 6 angelktn 1770 14. März 2005, 15:20
Willi Wipp Daten automatisch einfügen
Keine neuen Beiträge Access Tabellen & Abfragen: Daten abfragen nach Buchstabenreihenfolge 2 wrengers 699 07. März 2005, 22:59
Gast Daten abfragen nach Buchstabenreihenfolge
Keine neuen Beiträge Access Tabellen & Abfragen: Datanorm Daten erzeugen 2 HH Hans 1531 08. Feb 2005, 10:49
HH Hans Datanorm Daten erzeugen
Keine neuen Beiträge Access Tabellen & Abfragen: Vergleich neue Daten mit alten Daten! 28 Sebowsky 3164 29. Jan 2005, 11:38
Sebowsky Vergleich neue Daten mit alten Daten!
Keine neuen Beiträge Access Tabellen & Abfragen: Tabelle mit Daten aus Array füllen 2 DoMe 3477 26. Jan 2005, 10:28
DoMe Tabelle mit Daten aus Array füllen
Keine neuen Beiträge Access Tabellen & Abfragen: Bestelldaten in 2. Tabelle übergeben 4 nukeli 598 20. Dez 2004, 14:04
nukeli Bestelldaten in 2. Tabelle übergeben
Keine neuen Beiträge Access Tabellen & Abfragen: Daten für Aktualisierung aus Formular auslesen 1 Ulf 1155 03. Dez 2004, 11:19
lothi Daten für Aktualisierung aus Formular auslesen
Keine neuen Beiträge Access Tabellen & Abfragen: Anzeigen der Daten einer vorhandenen Tabelle in einer Abfrag 6 brauzer 830 02. Dez 2004, 13:28
brauzer Anzeigen der Daten einer vorhandenen Tabelle in einer Abfrag
Keine neuen Beiträge Access Tabellen & Abfragen: Anzeige aller Daten älter als x Tage 2 abu 819 16. Nov 2004, 13:07
abu Anzeige aller Daten älter als x Tage
Keine neuen Beiträge Access Tabellen & Abfragen: Daten aus einer dat Datei in eine Access Tabelle einlesen! 7 VP 001 8238 26. Okt 2004, 21:57
snurb Daten aus einer dat Datei in eine Access Tabelle einlesen!
Keine neuen Beiträge Access Tabellen & Abfragen: Komment. u Daten in zelle schreiben, Zellenausrichtung festl 2 k@lle 816 06. Okt 2004, 11:49
k@lle Komment. u Daten in zelle schreiben, Zellenausrichtung festl
Keine neuen Beiträge Access Tabellen & Abfragen: Daten suchen in ACCESS. Daten aus Tabellen suchen! 7 Gast 2093 26. Aug 2004, 13:55
Gast Daten suchen in ACCESS. Daten aus Tabellen suchen!
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Excel Tipps