Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: Walterio am September 06, 2021, 05:28:17

Titel: Bestimmten Satz in Endlosformular bekommt den Fokus.
Beitrag von: Walterio am September 06, 2021, 05:28:17
Hallo

In einem UF sollen aus einer Tabellen einzelne Datensätze - für eine spätere Verarbeitung im HF - ausgewählt werden können, doch einzelne Sätze sind nicht wählbar (das Kriterium dazu ist der Wert eines der Tabellenfelder: [Freigabetext] nicht leer ). Die Tabelle enthält als erstes ein "Ausgewählt"-Ja/Nein Feld.

Ich habe folgende Lösung mir gedacht:
Die Tabelle wird in einem Endlosformular angezeigt, wobei das Ja/Nein-Feld die erste Spalte ist.
Dieses Ausgewählt-Feld wird bei nicht wählbaren Datensätze gesperrt .
Nun sollte beim Öffnen die erste wählbare Zeile den Fokus erhalten. Habe es mit bookmark versucht, aber so geht es nicht:
    Dim rsCanna As DAO.Recordset
    Set rsCanna = Me.RecordsetClone
    rsCanna.FindFirst "Freigabetext < ' '"
    Me.Bookmark = rsCanna.Bookmark

    rsCanna.Close
    Set rsCanna = Nothing

Hat jemand eine Idee wie ich das lösen kann?

Dank im Voraus
Walterio
Titel: Re: Bestimmten Satz in Endlosformular bekommt den Fokus.
Beitrag von: DF6GL am September 06, 2021, 08:46:53
Hallo,

warum zeigst Du die nicht wählbaren Datensätze überhaupt an? Wenn Du die Datenherkunft des UFOs nach "Freigabetext" filterst, liegt der Fokus gleich auf dem ersten DS( was auch immer der erste ist).

Sortieren nach "Freigabetext" hilft auch...


Mit Code:


Sub Form_Load()

    Dim rsCanna As DAO.Recordset
    Set rsCanna = Me.RecordsetClone
    rsCanna.FindFirst "Freigabetext not Null"
    Me.Bookmark = rsCanna.Bookmark

    Set rsCanna = Nothing
End Sub
Titel: Re: Bestimmten Satz in Endlosformular bekommt den Fokus.
Beitrag von: Walterio am September 06, 2021, 12:10:35
Danke für die Antwort, Franz, Aber der Kunde will alle Sätze sehen, auch die nicht Freigegebenen; dazu zeige ich dann ein Freigabetext
Titel: Re: Bestimmten Satz in Endlosformular bekommt den Fokus.
Beitrag von: DF6GL am September 06, 2021, 21:48:18
Hallo,


funktioniert denn dann der Code?

Evtl. ist

Set rsCanna = Me.Recordset

und die Bookmark-Zeile weglassen
besser..
Titel: Re: Bestimmten Satz in Endlosformular bekommt den Fokus.
Beitrag von: Walterio am September 07, 2021, 14:37:01
Hallo Franz (komme erst jetzt dazu...)

Wenn beim Load-Ereignis
    Dim rsCanna As DAO.Recordset
    Set rsCanna = Me.Recordset
    rsCanna.FindFirst "Freigabetext  < ' '"
    rsCanna.Close
    Set rsCanna = Nothing
abläuft, dann stolpert das ganze beim Current-Ereignis
    If Me.Freigabetext > "" Then
        Me.Auswahl.Enabled = False
        Me.Auswahl.Locked = True
    Else
        Me.Auswahl.Enabled = True
        Me.Auswahl.Locked = False
    End If
der für die Sperrung/Entsperrung des Auswahlfeldes nötig ist, mit Laufzeitfehler 2424 (hast du im August 2009 mit Hanskuhn besprochen)

Lösche ich den Load-Code, so läuft alles durch (keine Fehlermeldung) und die zu sperrenden Kontrollkästchen sind gesperrt, die anderen entsperrt, wie es sein soll. Also muss es an dem Load-Code liegen...und ich komme gar nicht dazu, festzustellen ob das so funktioniert...
Titel: Re: Bestimmten Satz in Endlosformular bekommt den Fokus.
Beitrag von: Beaker s.a. am September 07, 2021, 15:43:15
Hallo,
rsCanna.FindFirst "Freigabetext  < ' '"Na ja, diese Zeile findet ja nichts. D.h. der DS-Zeiger im RS
steht auf BOF oder EOF.
Ich vermute, dass du diesen DS finden willst
rsCanna.FindFirst "Len(Freigabetext) = 0"
gruss ekkehard
Titel: Re: Bestimmten Satz in Endlosformular bekommt den Fokus.
Beitrag von: DF6GL am September 07, 2021, 15:43:30
Hallo,

ich habe (be-)geschrieben:



Zitat.
.
.
 Dim rsCanna As DAO.Recordset
    Set rsCanna = Me.Recordset
    rsCanna.FindFirst "Freigabetext not null"
    rsCanna.FindFirst "Freigabetext  < ' '"
    rsCanna.Close


    Set rsCanna = Nothing
.
.
.


damit wird der Cursor auf den ersten Datensatz positioniert, bei dem "Freigabetext"  nicht leer (NULL) ist.

Wenn auf den ersten "leeren Freigabetext" positioniert wwerden soll, dann eben so:

rsCanna.FindFirst "Freigabetext is  null"


Zitatim August 2009 mit Hanskuhn besprochen

Du bist lustig.    :o   Meinst Du, ich kann mich an einen bestimmten Beitrag von vor 13 Jahren erinnern??  :D 
Titel: Re: Bestimmten Satz in Endlosformular bekommt den Fokus.
Beitrag von: Beaker s.a. am September 07, 2021, 17:41:45
Hallo Franz,
Bei Textfeldern finde ich die Prüfung auf NULL irgendwie heikel,
da dort durchaus auch ein Leerstring drin sein kann. Deshalb
bevorzuge ich in diesen Fällen die Prüfung auf Länge = (<>) 0.

gruss ekkehard
Titel: Re: Bestimmten Satz in Endlosformular bekommt den Fokus.
Beitrag von: DF6GL am September 07, 2021, 18:10:17
Hallo Ekkehard,


trotzdem muss man aufpassen:

?Len(null)
Null

?Len("")
 0



alles abdeckend:

If Len(nz([Feld],"")) = ""  Then   ' Leersting oder leer   
Titel: Re: Bestimmten Satz in Endlosformular bekommt den Fokus.
Beitrag von: Beaker s.a. am September 07, 2021, 18:26:54
Zitat?Len(null)
Null
Hatte ich nicht bedacht  >:(
Titel: Re: Bestimmten Satz in Endlosformular bekommt den Fokus.
Beitrag von: Walterio am September 08, 2021, 09:03:34
Erfolg!

Habe es mit   rsCanna.FindFirst "Nz(Freigabetext, ' ')  <=  ' '"    gelöst.

Danke an euch alle.

P.S. Habe ich dass schon mal gesagt? Das ist ein tolles Forum!