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
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
Danke für die Antwort, Franz, Aber der Kunde will alle Sätze sehen, auch die nicht Freigegebenen; dazu zeige ich dann ein Freigabetext
Hallo,
funktioniert denn dann der Code?
Evtl. ist
Set rsCanna = Me.Recordset
und die Bookmark-Zeile weglassen
besser..
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...
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
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
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
Hallo Ekkehard,
trotzdem muss man aufpassen:
?Len(null)
Null
?Len("")
0
alles abdeckend:
If Len(nz([Feld],"")) = "" Then ' Leersting oder leer
Zitat?Len(null)
Null
Hatte ich nicht bedacht >:(
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!