PDA

Vollständige Version anzeigen : Access97: Inhalt im Datumsfeld wird unsichtbar!


Karin
14.10.2002, 08:37
Guten Morgen!

Ich habe in einem Formularkopf ein Feld mit dem Format "tt.mm.jjjj". Jetzt passiert es ab und zu - nicht immer, aber oft genug, dass es lästig ist - dass ich, nachdem ich was in das Feld eingegeben habe, dieses nicht mehr sichtbar ist! Ich gebe also z. B. "1/10" ein, verlasse das Feld und in dem Datumsfeld steht zwar "01.10.2002" drin, aber so, wie wenn es mit weißer Schrift auf weißem Grund formatiert wäre!

Bisher erfolglos versucht habe ich das alles:

- ein neues Formular erstellt
- ein neues Datumsfeld verwendet
- eine neue Datenbank erstellt und alles rein kopiert
- das komplette Reparaturprogramm
- die Verweise hab ich überprüft.

Hat vielleicht jemand anderes dieses Problem auch schon mal gehabt?

Danke schön und viele Grüße
Karin

BodoM
14.10.2002, 10:06
Hallo Karin,

kann es sein, dass ein Datensatzwechsel erfolgt (z.B. ausgelöst durch das Mausrad)?

Gruß Bodo

Karin
14.10.2002, 10:31
Hallo!

Also mit einem Mausrad passiert nix, so was modernes hab ich hier bei mir nicht :)

Was passiert, ist dieses: an Hand dieses Datumsfeldes (es sind eigentlich zwei - von und bis - aber nur das "von" spielt verrückt) werden die Datensätze im Endlosformular gefiltert. Das Filtern - das einwandfrei funktioniert - passiert im Ereignis AfterUpdate des Datumsfeldes. Da mach ich das hier:
FilterText = "[start-datum] between #" & Format(Me!EinVon, "mm-dd-yyyy") & _
"# and #" & Format(Me!EinBis, "mm-dd-yyyy") & "#"
Me.Filter = FilterText
Me.FilterOn = True
Me.Requery
Wobei mir gerade noch was seltsames auffällt: "Unsichtbar" wird das Datum nur, wenn ich "Me.Requery" nach dem Filtern ausführe - lasse ich den Requery weg, dann passiert etwas nicht weniger seltsames: dann bleibt, wenn ich z. B. "1/10" eingebe, auch "1/10" in dem Feld stehen (sichtbar!) und wird nicht in "01.10.2002" ungewandelt.

Und ein was noch: wenn ich beim AfterUpdate des Datumsfeldes - noch vor dem Filtern - ein
Me!EinVon = Format(Me!EinVon, "dd.mm.yyyy")
ausführe, dann stimmt das Datum im Formularkopf, aber für meinen FilterText wird es nicht mehr richtig erkannt! Da steht jetzt z.B. wenn ich mir den FilterText im Testfenster ansehe,
[start-datum] between #03-05-4917# and #10-19-2002#

drin !!! :bawling: :bawling:

Also so langsam versteh ich gar nix mehr :(

Aber vielleicht hat doch noch jemand ne Idee?

Danke schön!
Karin

{Moderatorenanmerkung: Coding zwecks besserer Lesbarkeit des Thread editiert!}

[ 16. Oktober 2002: Beitrag editiert von: A.S. ]</p>

BodoM
14.10.2002, 12:35
Hallo Karin,

versuche doch mal folgendes:
Stelle das Format Deiner Formularfelder auf ein Datumsformat ein (Datum,kurz). Dann kannst Du auch auf Me!EinVon = Format(Me!EinVon, "dd.mm.yyyy") verzichten.

Wandle das Datum mit Format(Me!EinVon, "\#mm\/dd\/yyyy\#")in das amerikanische Format um.


Gruß Bodo

Karin
14.10.2002, 13:59
Hi Bodo!

Also das mit dem neuen Datumsformat war schon mal nicht schlecht - da war dann das Phänomen weg, dass "1/10" nicht in "01.10.2002" umgewandelt wird :)

Und während dem Probieren und Verzweifeln in der letzten Stunde ist mir noch was aufgefallen: Du hast ganz zu Anfang gefragt, ob ich mit dem Mausrad einen Datensatzwechsel durchführe ... mit dem Mausrad tu ich das nicht, aber mit der Tastatur im VBA-Editor! Und zwar mach ich nach dem Filtern noch ein paar mal "DoCmd.GoToRecord ..." ... und wenn ich das bleiben lasse, dann hab ich - auf den ersten Blick zumindest - auf einmal keine Probleme mehr!

Deswegen tät mich jetzt doch noch interessieren, was Du zum Datensatzwechsel mit dem Mausrad sagen wolltest ...

Danke schön und viele Grüße
Karin

BodoM
15.10.2002, 06:46
Hallo Karin,

es deutes einiges darauf hin, dass irgendwie ein Datensatzwechsel erfolgt. Dies kann u.a. ungewollt durch das drehen am Mausrade passieren (aber Du hast keines; bist Du im öffentlichen Dienst?). Oder, Dein Steuerelement ist das letzte in der Aktivierungsreihenfolge und nach ENTER oder TAB wird ein neuer Datensatz angelegt. Überprüfe die Aktivierungsreihenfolge Deiner Steuerelement und ändere ggfls. die Formulareigenschaft "Zyklus".


Bis dann Bodo

Karin
15.10.2002, 08:23
Guten Morgen!

Also ... der Datensatzwechsel, der erfolgt tatsächlich!

Aber warum ein Datensatzwechsel ein Feld im Formularkopf - der ja meines Wissens eigentlich nicht vom Datensatz abhängt - derart seltsam verändert, das wundert mich immer noch ... und das Datumsfeld ist ja auch ein ungebundenes ... ???

Na ja, das wird halt jetzt in die Schublade zu den anderen seltsamen Dingen gelegt, die ich mir nicht erklären kann - aber trotzdem schönen Dank noch mal für Deine Hilfe!

Viele Grüße
Karin

PS:
Ich bin nicht im öffentlichen Dienst - es ist auch nicht so, dass es überhaupt keine Mausräder hier bei uns in der Firma gibt - nur die Programmierer haben keins! ;)

BodoM
15.10.2002, 09:09
Hallo Karin,

Ok, ungebundene Felder ändern nicht den Inhalt beim Datensatzwechsel. Dann überprüfe noch mal Deinen Code und Makros, ob nicht irgendwo der Wert des Feldes geändert/ gelöscht wird.
Sonst habe ich keine weitere Idee.

Gruß Bodo

Karin
16.10.2002, 07:08
Hallo Bodo!

Jetzt hab ich's - glaube (hoffe!) ich ... :D

Zuerst tu ich meine Datensätze filtern, dann mache ich ein paar mal einen Datensatzwechsel (weil ich nach dem Filtern nicht auf den ersten Satz, sondern auf den letzten positionieren möchte) und nach dem Datensatzwechsel ein Me!EinVon.Requery und ein Me!.EinBis.Requery - und die ersten 20 Versuche haben funktioniert!

Schöne Grüße
Karin