Office: Problem mit DTPicker in MultiPage

Helfe beim Thema Problem mit DTPicker in MultiPage in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo Forum, ich habe ein nervendes Problem mit dem DTPicker-Steuerelement. Ich habe ein Formular mit eingebetteter MultiPage. Auf einer Seite sind... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von AUN, 3. Dezember 2005.

  1. Problem mit DTPicker in MultiPage


    Hallo Forum,

    ich habe ein nervendes Problem mit dem DTPicker-Steuerelement.

    Ich habe ein Formular mit eingebetteter MultiPage. Auf einer Seite sind jede Menge Steuerelemente, auf der anderen Seite eine TextBox die ein SQL-Statement enthält. Das SQL-Statement wird durch die Steuerelemente beeinflußt, kann aber auch von Hand nachbearbeitet werden.

    Beim Wechsel auf die Seite mit dem SQL-Statement werden die einzelnen Steuerelemente ausgelesen und daraufhin das SQL-Statement gebastelt.

    Jetzt könnte hier die - veränderte - Einleitung der Asterix-Comics folgen:
    Alle Steuerlemente funktionieren? Nein, ein kleiner unbeugsamer Haufen von DTPickern leistet Widerstand.

    Wenn ich - oder der Benutzer - umblättert werden die DTPicker wieder auf den Standardwert - in meinem Fall: date() - zurückgesetzt. Wenn nicht umgeblättert wird - also das SQL-Statement nicht nachbearbeitet wird, sondern direkt ausgeführt wird, behalten die DTPicker den eingestellten Wert.

    Also: das Change-Ereignis der MultiPage reinitialisiert meine DTPicker (seltsamerweise bleibt der Rest unangetastet)

    Kann ich irgendwie unterbinden, dass die DTPicker durch den Wechsel der MultiPage neu initialisiert werden?
    Oder gibt es eine Möglichkeit auf die Werte der Steuerelemente vor dem Wechsel und nicht während dem Wechsel der MultiPage auszulesen (also den Code zum Basteln des SQL-Codes in ein anderes Ereignis reinzupappen)?

    Gruß

    Jochen Schäfer

    P.S: Da VBA-Fragen im Office-Bereich gestellt werden sollen und unter Office allgemein recht wenig VBA-Fragen gestellt werden, bin ich halt in den Excel-Bereich gegangen, da A) das Problem unter Excel 2003 auftritt unb B) unter Excel am meisten VBA programmiert wird *wink.gif*

    :)
     
  2. Hi Jochen,

    machs doch einfach mit "Gewalt" *wink.gif*
    Code:
     
    Unimatrix Zero, 5. Dezember 2005
    #2
  3. Guten Morgen Dieter,

    und wieder eilst du mir zu Hilfe *wink.gif*

    Ich wollte zwar vermeiden außerhalb von Funktionen Variablen zu definieren, war aber dann verzweifelt genug, dein Vorschlag in die Tat umzusetzen (er erfordert ja kaum Programmieraufwand) und siehe da:

    Laufzeitfehler '35788':

    An error occured in a call to the Windows Date and Time Pciker control.

    Ich hab' dann mal ein bischen ausprobiert und recherchiert:

    Wie bereits im ersten Post gesagt: alle DTPicker (3 Stück in der Multipage) werden im Initialise-Ereignis mit Date() (also heute) initialisiert (und dann erst mal deaktiviert)
    Wenn ich während des Multipage-Change-Ereigniss mal anschaue, was in den DTPickern steht, bin ich etwas erstaunt: ich erhalte nämlich den Wert '00:00:00', wechsle ich zurück erhalte ich das heutige Datum.
    Wenn ich während des Change-Ereignisses das vorher in einer globalen Variable abgelegte Datum zurückschreiben will, bekomme ich den obigen Fehler.

    Also mal ein bischen recherchieren:
    DTPicker scheint Probleme zu haben, wenn in einem Tab-Strip-Control mehrere DTPicker stecken (ok, ich habe ein Multipage-Control, aber die Verwandschaft ist naheliegend).

    Gerade Access-User scheinen sehr viele Probleme mit dem DTPicker zu haben und erwähnen diesen Fehler sehr häufig. (Im Access-Umfeld scheint es einen blühenden Markt an alternativen Kalender-Steuerelementen zu geben) *Smilie

    Als Workaround bieten sich unsichtbare Textfelder und globale Variablen an, man darf einfach nicht auf den DTPicker zugreifen (außer zur Änderung des Datums natürlich).

    Gruß Jochen
     
  4. Problem mit DTPicker in MultiPage

    Hi Jochen,

    es müssen noch mehr Faktoren sein, MultiPage und mehrere DateTimePicker haben bei mir nicht ausgereicht um den Fehler nachbilden zu können.
    Vielleicht ist ja in der MSDN http://search.microsoft.com/search/r...ateTimePicker+ Dein Fehler zu finden (allerdings ist die Übersetzung teilweise nur mäßig).
    Ich habs nur kurz überflogen, scheinbar gibt es Probleme wenn der DTP entweder auf "0" gesetzt wird oder aber es irgendwie zu einem ungültigen Wert (scheint am häufigsten beim Setzen der Month Eigenschaft aufzutreten) kommt. Nachdem Du oben erwähnt hast, daß Du irgendwann den Wert "00:00:00" ausliest, sieht es so aus, daß Ersteres bei Dir der Fall zu sein scheint.
    Was die globalen Variablen betrifft, das sehe ich eigtl. genauso, es soll ja sogar Programmierer geben, die sehen sowas als Fehler an. *wink.gif*
     
    Unimatrix Zero, 6. Dezember 2005
    #4
  5. Danke Dieter dass du dir die Zeit nimmst meine seltsamen Probleme mal zu analysieren.

    Da ich mittlerweile auf globale Variablen umgestellt habe und deshalb nach dem Wechsel der Multipage nicht mehr auf die DTPicker zugreife ist mir erst jetzt eine Kleinigkeit aufgefallen.

    Sobald ich vorher die Multipage gewechselt habe und von einer anderen Multipage lesend auf die DTPicker zugegriffen habe, bekam ich den Wert den Sie beim initialisieren zugewiesen bekamen, die MsgBox zeigt allerdings nur 00:00:00, meine TextBox bekam ein richtiges Datum (es war halt immer das heutige Datum)
    Wechselte ich auf die Seite zurück wo die DTPicker stehen, stand dort der Startwert eingetragen.

    Außer lesenden Zugriffen auf die Value-Eigenschaft wurde sonst nichts mit den DTPickern gemacht. Die Enabled-Eigenschaft wurde noch durch einen OptionButton beeinflusst, aber das bereitet keine Probleme (Der User kann halt aktivieren ob er nach einem Datum suchen will und nur bei einem aktiven Button wurde lesend auf den entsprechenden DTPicker.Value zugegriffen)

    Beim Versuch die Value-Eigenschaft zu ändern, wenn ich nicht auf der entsprechenden Seite bin, äußert sich in der beschriebenen Fehlermeldung.

    Jetzt wo ich nicht mehr auf die DTPicker zugreife nachdem ich die Seite gewechselt habe, behalten Sie den eingestellten Wert wenn man wieder zurückwechselt.

    Ich hatte ja bisher die Vermutung, dass ich irgendwie durch den Zugriff das Initialisieren auslöse (was ich noch als Erklärung akzeptiert hätte wenn ich in einem anderen Formular gewesen wäre), aber da das eingestellte Datum mittlerweile eingestellt bleibt, habe ich nicht mal mehr den Hauch einer Ahnung woher dieses seltsame Verhalten kommt.

    Die von MS beschriebenen Probleme habe ich deshalb nicht, ich versuche ja zu keinem Zeitpunkt ein Datum zu schreiben (also so was dussliges wie 30. Februar).
    Der einzige schreibende Zugriff erfolgte beim Initialisieren des Formulars und der Wert war Date(). Ich habe jetzt nicht versucht, eine andere Seite am Anfang starten zu lassen, deshalb ist die Seite aktiv die die DTPicker enthält.
    Beim Versuch ein Datum reinzuschreiben (sprich: dein Lösungsvorschlag in die Tat umzusetzen) erntete ich nur einen Fehler, dabei enthielt die Variable Datum=DTPicker.Value (Datum war ein Date-Datentyp) ja ein korrektes Datum (weil direkt aus dem DTPicker gelesen) und wurde zu keiner Zeit umformatiert.

    Seltsamer Fall *eek.gif*

    Gruß Jochen
     
  6. Hi Jochen,

    jetzt kann ich den Fehler auch nachproduzieren, er tritt bei mir auf, wenn in dem Beispielcode von mir beim MultiPage1_Change Ereignis die Prüfung nach der "Page1" weggelassen wird. Erst mal als einfache Lösoung, die Werte der DTPs nur dann setzen wenn diese auch "sichtbar" sind, ansonsten eben mit den Werten in der Variablen arbeiten.
    Werde nachher mal noch ein bischen probieren, ob man das irgendwie umgehen kann.
     
    Unimatrix Zero, 7. Dezember 2005
    #6
  7. Das Problem scheint auch nur dann zu bestehen, wenn man mehrere DTPicker einsetzt.

    Zumindest waren die Problembeschreibungen die ich finden konnte meistens im Zusammenhang mit TabStrip und mehreren DTPickern.
    Dass der Fehler nur auftritt, wenn man auf einer anderen Seite im TabStrip ist, fand sich bei keiner Problembeschreibung, ich vermute aber stark, dass das der Fehler war.

    Wobei ich zwei unterschiedliche Fehler beobachten konnte (beide treten nur dann auf, wenn die DTPicker nicht auf der aktiven (=anderer MultiPage.Value)Seite sind):
    1: Die Value-Eigenschaft enthält plötzlich kein Datum mehr oder enthält ein falsches Datum. Ich konnte wiederholt das beim Initialisieren festgelegte Datum auslesen oder die Uhrzeit 00:00:00. Dabei erhalte ich die Uhrzeit wenn ich mittels MsgBox das Datum ausgebe, das beim Initialisieren eingestellte Datum beim Zuweisen einer Variablen (dann kann man auch ein Datum ausgeben statt einer Uhrzeit, nur dass das Datum nicht das ausgewählte Datum ist)
    2: Schreibend auf die Value-Eigenschaft zuzugreifen ist keine gute Idee *upps

    In mir keimt die Vermutung, dass das Steuerelement neu initialisiert wird wenn es nicht bereits sichtbar auf dem Bildschirm liegt.
    In welchem Zusammenhang das Schreibproblem liegt kann ich noch nicht mal vermuten.

    Aber hey: ich finde wenigstens interessante Fehler *grins

    Gruß

    Jochen

    PS: ich habe das Teil schon umgeschrieben, so daß ich nur noch mit den Variablen weiterarbeite (war kein großer Aufwand dank Suchen/Ersetzen)

    Andere Frage: Damit ich von meinen drei globalen Variablen wegkomme (wieviele DTPicker setze ich damit wohl ein *wink.gif* ), kann man beim Laden eines Formulars diesem Variablen mit übergeben (Wie bei einer Function/Sub)? Wenn ja, wie ruft man das ganze auf? Ich konnte in der Hilfe nichts dergleichen finden.
    Aber wie bereits gesagt, dank der Umstellung auf die globalen Variablen funzt das Programm ja soweit.
     
  8. Problem mit DTPicker in MultiPage

    Hallo Jochen,
    habe noch ein bischen gesucht, konnte aber auch nichts mehr dazu finden, man muß anscheinend sicherstellen, daß die "richtige" Page gerade den Eingabe-Focus besitzt. Vielleicht bietet ja dieses Verhalten irgendwelche Vorteile die ich gerade übersehe.
    Wg. der Übergabe, da fällt mir momentan nur ein die Datumswerte als String, über die "Tag" Eigenschaft der UserForm, zu übergeben.
    Code:
     
    Unimatrix Zero, 8. Dezember 2005
    #8
  9. Das ist eine der bescheuertsten brillianten Ideen von denen ich je gehört habe. *tongue.gif*
    Auf so was muß man erst mal kommen.

    Auf jeden Fall werde ich mir diese Methode merken.

    Du arbeitest wohl schon lange mit VB *grins
    Wo lernt man so um die Ecke zu denken?

    Gruß

    Jochen
     
  10. Moin Jochen,

    naja, "Quick and Dirty" eben. *wink.gif*
    Aber was solls, in der Hilfe steht wörtlich:
    Diese steht übrigens bei (fast) allen Objekten in VB o. VBA zur Verfügung.
    Wenn nicht jetzt benutzen, wann dann?
    Jede andere Lösung wird vermutlich länger sein, als dieser 'Dreizeiler'.
    Übrigens, beim Setzen der Tag-Eigenschaft wird das UF-Initialize Ereignis ausgeführt, könnte ja mal wichtig sein.
    Außerdem, Schönheit wird meist nicht bezahlt. *biggrin.gif*
     
    Unimatrix Zero, 8. Dezember 2005
    #10
  11. alternativ kann ich noch als Lösung anbieten, sich bei jeder interaktion mit dem dtpicker den multipage value auf eben die seite zu stellen, auf der der dtpicker liegt und dann wieder zurückzugehen.

    ist zwar auch nicht die "schönste" lösung, funktioniert aber soweit ich das getestet habe ganz gut.

    lg
     
  12. Diese Lösung ist auch akzeptabel. *Smilie
     
    dericy, 4. Juli 2018
    #12
Thema:

Problem mit DTPicker in MultiPage

Die Seite wird geladen...
  1. Problem mit DTPicker in MultiPage - Similar Threads - Problem DTPicker MultiPage

  2. Outlook Problem

    in Microsoft Outlook Hilfe
    Outlook Problem: Hallo zusammen, ich brauche Hilfe bei folgendem Problem. Ich bekomme pro Woche ca. 44 Mails vom immer gleichen Absender, no-reply@deutschepost.de mit immer dem gleichen PDF-Anhang. Die...
  3. Problem bei Fußnote

    in Microsoft Word Hilfe
    Problem bei Fußnote: Hallo zusammen, habe folgendes Problem. Sobald ich eine Fußnote einfüge, erscheint automatisch am Ende der Seite eine Art Überschrift mit der Zahl 1. Hier der Screenshot. Habe schon alles...
  4. Excel found a problem with one or more formula references in this worksheet

    in Microsoft Excel Hilfe
    Excel found a problem with one or more formula references in this worksheet: Liebes Forum, ich habe ein Problem, das viel durch das Internet geistert, aber nirgendwo gibt es eine erfolgreiche Lösung für: "Excel found a problem with one or more formula references in this...
  5. Zählenwenns Problem

    in Microsoft Excel Hilfe
    Zählenwenns Problem: Hallo. Ich möchte zählen wie oft der Name Person 2 vorkommt aber nur dann wenn darüber ein anderer Name steht. Also in C3 sollte 5 mal stehen aber in C4 nichts bzw. 0 Dann in C8 die 2 und in C9...
  6. Problem mit Seitenzahlen/Seitenbeschriftung

    in Microsoft Word Hilfe
    Problem mit Seitenzahlen/Seitenbeschriftung: Hallo, ich schreibe gerade meine Masterarbeit und habe ein kurioses Problem, bei dem ich nicht weiterkomme. Ich habe eine "beidseitige" Vorlage für die Masterarbeit der Universität verwendet. Da...
  7. Data Transform, Problem with delimiter

    in Microsoft Excel Hilfe
    Data Transform, Problem with delimiter: Hello Community, I encounter one problem with excel. When I export table from csv I have a delimiter semicolon, but it doesn't work. I found solution. If I would go to Power Query Editor - Split...
  8. Problem Datenstruktur Mitglieds-Datenbank

    in Microsoft Access Hilfe
    Problem Datenstruktur Mitglieds-Datenbank: Hallo Leute, Ich habe eine Frage zu einer Vereins-Mitglieder-Datenbank, die ich erstelle. Die Vereinsmitglieder sind in einer Tabelle erfasst, also Nachname, Vorname, usw. Und es gibt einen...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden