Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

DS-Suche aus Hauptformular in Unterformular (Code vorhanden)

Begonnen von gast, Juli 28, 2010, 17:08:45

⏪ vorheriges - nächstes ⏩

oma

Hallo,

sorry, das war die alte Version; anbei die neue

Gruß Oma

[Anhang gelöscht durch Administrator]
nichts ist fertig!

borst1

Zitat
Man nimmt sich der Sache an, denkt darüber nach, baut evt. ein kleines Beispiel, schnell ist mal eine 1/2 Stunde vergangen.
Und dann kommt u.U. die Nachricht: Haha, zu spät, habe schon eine andere Lösung.

kann ich sehr gut nachvollziehen. und daher gebe ich auch immer brav feedback wenn jemand so nett ist, sich meinem problem anzunehmen!


jetzt zu deiner zweiten beispieldatei:

Bei mir funktioniert das ganze einwandfrei! Superstark! Vielen Dank!
Sogar der von dir angesprochene Fall, dass wenn nach Teilstrings gesucht wird funktioniert bei mir fehlerlos (habs mal mit "Schmi" und "Krau" versucht und alle Schmidt und Krause werden brav gefunden!). Könnte das evtl. an der neueren Access Version liegen? (nur ne Vermutung ;) )


Jetzt würde ich gerne rein zum Verständnis nachfragen:

Private Sub Weitersuchen_Click()
   Dim strFind As String
 
   If mrs Is Nothing Then Exit Sub                        'zur Sicherheit ;-)
   With Me![frmKunden_UF].Form
       strFind = "NachName Like '*" & Me!Suchfeld & "*'"
         mrs.FindNext strFind

       If mrs.NoMatch Then                                    'nicht gefunden
           MsgBox "Der gesuchte Sachbearbeiter '" & Me!Suchfeld & _
                  "' wurde nicht gefunden", , "Das waren Alle?"
           mrs.Close: Set mrs = Nothing
           'Me!btnErsterAP.SetFocus
           'Me!btnNaechsterAP.Enabled = False
         Else                                                       'gefunden
         
         Me.Recordset.FindFirst "KNr = " & mrs!KNr
         !Nachname.SetFocus
         '.Recordset.FindFirst strFind
         .Recordset.FindNext strFind
       
       End If

   End With
End Sub


funktionert das ganze jetzt wirklich, "NUR", weil du die Reihenfolge des "Fokussetztens" und der FindNext Anweisung umgedreht hast? Ist es wirklich so einfach gewesen? ;)

borst1

#17
Zitat von: oma am Juli 30, 2010, 12:14:08
Hallo,

sorry, das war die alte Version; anbei die neue

Gruß Oma


das kann nicht die alte gewesen sein oma,
die hat nämlich bei mir schon funktioniert!  :o

[edit]

also nach sichtung der neuesten version von dir, sehe ich doch mehr unterschiede im code, als ich zuvor in der version sah. aber warum zum teufel hat die denn auch funktioniert?!

Fakt ist, auch die neuste läuft 1A und ist sauber.

Also: vielen Dank für deine Hilfe bei dieser Problemstellung!

Da mein erster Beitrag als Gast war kann ich für den Thread kein "Problem-gelöst-Häckchen" setzen oder?

oma

Hallo,

anbei noch mal eine Lösung, in der nun alle Flüchtigkeiten beseitigt sein sollten (mal für verschiedene Fälle testen)

Die Lösung gegenüber der ehemaligen Lösung von Willi Wipp besteht in den angemerkten Zeilen:

Private Sub SuchenM_Click()
Dim strFind As String
 
   With Me!frmKunden_UF.Form
       Set mrs = CurrentDb.OpenRecordset(.RecordSource, dbOpenSnapshot)
       strFind = "NachName Like '*" & Me!SuchfeldMitarbeiter & "*'"
       mrs.FindFirst strFind
       
       If mrs.NoMatch Then
           MsgBox "Mitarbeiter '" & Me!SuchfeldMitarbeiter & "' nicht vorhanden"
       Else
           Me.Recordset.FindFirst "KNr = " & mrs!KNr
           .Recordset.FindFirst "MNr=" & mrs!MNr                'Hier ist die Änderung
           !Nachname.SetFoc
       End If
   End With
End Sub

Private Sub WeitersuchenM_Click()
Dim strFind As String
 
   If mrs Is Nothing Then Exit Sub
       With Me![frmKunden_UF].Form
           strFind = "NachName Like '*" & Me!SuchfeldMitarbeiter & "*'"
           
           mrs.FindNext strFind
         
           If mrs.NoMatch Then
               MsgBox "Mitarbeiter '" & Me!SuchfeldMitarbeiter & "' nicht mehr gefunden"
               mrs.Close: Set mrs = Nothing

           Else
               Me.Recordset.FindFirst "KNr = " & mrs!KNr
               .Recordset.FindFirst "MNr=" & mrs!MNr         ' Hier ist die Änderung
               !Nachname.SetFocus
            End If
       End With
End Sub


Vorher wurde doppelt FindFirst bzw FindNext aufgerufen, nun wird nach FindFirst bzw. FindNext im Hauptformular die Kundennummer und im Unterformular die Mitarbeiternummer mit Me.Recordset.FindFirst "KNr = " & mrs!KNr   bzw. mit  .Recordset.FindFirst "MNr=" & mrs!MNr die   "Treffer "angezeigt"

Teste mal ausgiebig und melde Dich mit Erfolg oder Misserfolg.

@Klaus: könnte das Suchen in Unterformularen evt. für ein Beispiel für unseren Download-bereich sein (nach entsprechender Verallgemeinerung)??

Gruß Oma




[Anhang gelöscht durch Administrator]
nichts ist fertig!

borst1

Hallöchen,

nachdem deine vorherigen Verbesserungen schon fehlerfrei lauffähig bei mir waren, werde ich mir auch diesen code nochmals zu gemüte führen und ausgiebig testen. Das ganze aber erst morgen über Tag, also denke ich mal gibts frühestens nachmittags ne Antwort.

nochmals danke für deine Hilfe!


ps: beim suchen knopf

Zitat
Else
            Me.Recordset.FindFirst "KNr = " & mrs!KNr
            .Recordset.FindFirst "MNr=" & mrs!MNr                'Hier ist die Änderung
            !Nachname.SetFoc 'sollte wohl eher SetFocus sein oder? ;)
        End If