Hallo zusammen.
Meine DB bringt mich mal wieder an den Rand des Wahnsinns und ich hoffe, hier Hilfe zu finden. Nachdem ich seit Jahren anonym hier mitlese, traue ich mich nun mal selbst. ;)
Access-Version ist 2010
Beim Öffnen eines Formulars mit der Detailansicht zu einem Datensatz erscheint das erste Feld (ein Memo-Feld) leer. Erst nachdem ich ein anderes Feld angeklickt habe, wird der im ersten Feld vorhandene Text sichtbar.
Danach bleiben auch alle Feldinhalte sichtbar. Erst wenn das Formular neu geöffnet wird, ist der Inhalt des ersten Feldes wieder unsichtbar.
Wenn ich in der Aktivierungsreihenfolge ein anderes Feld als erstes Feld setze (bei meinem Versuch ein Textfeld), passiert dort dasselbe.
Habt Ihr eine Idee, wo da der Haken sein kann? Vielen Dank schon mal...
Beste Grüße
Morgi
Hallo Morgi,
wie lautet denn der Code zum Öffnen des Formulars? Und gibt es im Ereignis Form_Open Einträge?
Hallo Jürgen. Folgenden Code habe ich mir Internet zusammengesucht und "erbastelt".
Private Sub cmdOpenDetailansicht_Click()
'Gleicher Datensatz nach Requery
Dim lngStore As Long
lngStore = Me!entID
'Bildschirmflackern reduzieren
Me.Painting = False
DoCmd.Requery
DoCmd.RunCommand acCmdSaveRecord
Me.Recordset.FindFirst "entID = " & lngStore
Me.Painting = True
'springe zum aktuellen Datensatz im Formular frmEntscheidungenEingabe
Dim frm As Form
Dim rec As Recordset
DoCmd.OpenForm "frmEntscheidungenEingabe"
Set frm = Forms("frmEntscheidungenEingabe")
Set rec = frm.RecordsetClone
With rec
.FindFirst "entID=" & Me.entID
If Not .NoMatch Then
frm.Bookmark = rec.Bookmark
End If
End With
Set rec = Nothing
Set frm = Nothing
End Sub
Ich bin leider immer noch im Bereich des "denn sie wissen nicht so wirklich, was sie tun", aber grundsätzlich funktionierts. ;-)
Gruß Morgi
Hi,
eine Ursache für das Verhalten ist wohl eher nicht in dem Code zu finden, sondern in dem dort geöffneten Formular.
Man könnte ihn aber folgendermaßen einkürzen:
Private Sub cmdOpenDetailansicht_Click()
DoCmd.RunCommand acCmdSaveRecord
' öffne Formular frmEntscheidungenEingabe und springe zum aktuellen Datensatz
DoCmd.OpenForm "frmEntscheidungenEingabe"
Forms!frmEntscheidungenEingabe.RecordSet.FindFirst "entID=" & Me.entID
End Sub
Hinweise:
Nach einem Requery gibt es nichts mehr zu speichern (und wenn überhaupt dann vorher), das passiert automatisch.
Allerdings möchte ich den Sinn des Requery in Frage stellen, dann also lieber nur speichern.
Der Nomatch-Fall kann ausgeschlossen werden, es handelt sich ja um die aktuelle Datensatz-ID, nach der gesucht werden soll.
Als Alternative zum Sprung auf den Datensatz könnte man das Formular auch direkt beim Öffnen filtern, wodurch der ursprüngliche Code zu einem Zweizeiler wird:
Private Sub cmdOpenDetailansicht_Click()
DoCmd.RunCommand acCmdSaveRecord
DoCmd.OpenForm "frmEntscheidungenEingabe", , , "entID=" & Me.entID
End Sub
Hi MaggieMay,
vielen Dank schonmal für Deine Anregungen.
Ich habe mich nun nochmal an den Code gesetzt und viele verschiedene Möglichkeiten durchprobiert. Folgendes ist dabei herausgekommen, was die Anforderungen erfüllt.
Private Sub cmdOpenDetailansicht_Click()
DoCmd.RunCommand acCmdSaveRecord
' öffne Formular frmEntscheidungenEingabe und springe zum aktuellen Datensatz
DoCmd.OpenForm "frmEntscheidungenEingabe"
DoCmd.Requery
Forms!frmEntscheidungenEingabe.Recordset.FindFirst "entID=" & Me.entID
End Sub
Ich kann nicht erklären, warum es so funktioniert und vor allem nicht warum das Requery an der Stelle steht, aber bei allen Versuchen klappte es nur so, dass in dem Formular zu dem ich wechsle, auch ein ggf. neu angelegter Datensatz schon da ist. Und ich gebe zu, der ursprüngliche Code war sehr verschwurbelt - ich habe anscheinend einiges dazugelernt, dass mir das inzwischen auch auffällt.
Bezüglich meines eigentlichen Problems habe ich einen Verdacht:
In dem Formular frmEntscheidungenEingabe befindet sich ein Webbrowserelement, mit dem ich PDF's anzeige. Dessen Steuerelement ist ein Textfeld mit dem Pfad darin. Dieses Konstrukt läuft in einer anderen Datenbank von mir ganz hervorragend. Nun fiel mir auf, dass bei den Test-Datensätzen, die ich beim Probieren generiert habe und in denen das Feld für den Pfad leer ist, das Unsichtbarkeits-Problem nicht auftaucht...
Liegt es an dem PDF-Vorschau-Konstrukt? Gibt es da schlauere Lösungen? Mich verwirrt nur, dass genau dieser Weg in der anderen DB läuft wie geschnitten Brot... Jemand eine Idee?
Bastelgrüße
Morgi