Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Fehler bei Fortschrittsanzeige
zurück: Fieldname in Variable an anderes Recordsetübergeben+Schleife weiter: Fokus zurücksetzen bei Steuerelemten Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Feedback Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
derFuxx
Halbwissen in Excel, Access und VBA


Verfasst am:
07. Okt 2008, 16:14
Rufname:
Wohnort: Rhein-/Neckargebiet

Fehler bei Fortschrittsanzeige - Fehler bei Fortschrittsanzeige

Nach oben
       Version: Office 2003

Hallo Leute,

ich habe ein "komisches Verhalten" eines Formulars das ich mir nicht erklären kann. In einer Sub führe ich relativ umfangreiche Berechnungen durch. Um den User über den Fortschritt zu informieren, öffne ich ein Formular, das einen Statusbalken repräsentieren soll. (2 Label die übereinander liegen) Das eine wächst mit dem Prozentsatz in Schwarzer Farbe) das andere enthält die Prozentangabe in weißer Schrift) Der Code dazu sieht so aus:
Code:
Public Sub updateBar(wert As Long, max As Long)
    Dim perc As Single
   
    perc = wert / max
    Me!label0.Caption = Int(perc * 100) & "%"
    Me!label1.Width = CInt(label0.Width * perc)
    Me!label1.BackColor = vbBlack
'if the percentage is about 50% the color must be changed,
'because of the backgroud
    If perc >= 0.5 Then
        Me!label0.ForeColor = vbWhite
      Else
        Me!label0.ForeColor = vbBlack
    End If
    Me.Repaint
End Sub
und ist dem Bsp. aus dem Buch Access-Programmierrezepte angelehnt.

Den Aufruf gestalte ich über:
Code:
        For intCounter = 0 To intCounter - 1
            Forms("frm_progressbar").Repaint
            intActualScope = Forms(strFormName).Controls("cmb_Scope") _
                                                        .Column(0, intCounter)
            Call initialize_Scope_Workstep_R_T_P(strFormName, intActualScope)
            lngProgress = lngProgress + 30
            Call Forms("frm_progressbar").updateBar(lngProgress, _
                                                    lngProgressMax)
            fillArray strFormName
            lngProgress = lngProgress + 5
            Call Forms("frm_progressbar").updateBar(lngProgress, _
                                                    lngProgressMax)
            saveArrayValues (intActualScope)
            lngProgress = lngProgress + 5
            Call Forms("frm_progressbar").updateBar(lngProgress, _
                                                    lngProgressMax)
        Next intCounter
lngProgressMax ist auf die Anzahl der Schleifendurchläufe *40 festgelegt.

Beim ersten Schleifenaufruf ist alles super und er läuft bis 25% durch (inCounter ist 4). Danach passiert aber leider nichts mehr mit dem Element.

Aus irgendeinem Grund erscheint in der Taskleiste "das Accesssymbol mit dem Namen Microsoft Access dahinter". Danach tut sich bei dem Formular Progessbar nichts mehr, bis die Bearbeitung der eigentlichen Sub abgeschlossen ist. Das Formular wird wieder geschlossen, das Symbol in der Taskleiste bleibt aber noch. Wenn ich mit der Maus drauf klicke, verschwindet es.

In den aufgerufen Funktionen und Subs öffne ich keine Formulare oder so und setze DoCmd.Echo nicht irgendwo auf false. Grob gesagt, sieht das ganze so aus: Ich fülle in einem anderen Formular Textfelder mit den Werten, die mir verschiedene SQL-Statements zurückliefern. Diese Werte lese ich in ein Array ein und speicher die Werte aus diesem dann über ein zusammengesetztes SQL-Statement in eine Tabelle.

Hat jemand irgendeine Ahnung, warum der Statusbalken nur bis 25% durchlauft. Habe auch schon versucht hinter jeden Aufruf updatebar: Forms(name).Repaint zu schreiben (in update steht der Aufruf aber sowieso). Nicht gebracht.

Bin für jede Anregung dankbar.
Moeffz
Im Profil kannst Du frei den Rang ändern


Verfasst am:
07. Okt 2008, 17:12
Rufname:


AW: Fehler bei Fortschrittsanzeige - AW: Fehler bei Fortschrittsanzeige

Nach oben
       Version: Office 2003

Da die Anzahl der Schleifendurchläufe sehr übersichtlich ist, wäre meine Frage, ob Du schon mit Stopppunkten geschaut hast, an welcher Stelle im Code nichts mehr passiert und welchen Wert die Variablen jeweils haben. Das würde das Problem deutlich eingrenzen.

Gib' da doch mal bitte Bescheid, an welcher Stelle das Problem auftritt.
derFuxx
Halbwissen in Excel, Access und VBA


Verfasst am:
07. Okt 2008, 17:59
Rufname:
Wohnort: Rhein-/Neckargebiet

AW: Fehler bei Fortschrittsanzeige - AW: Fehler bei Fortschrittsanzeige

Nach oben
       Version: Office 2003

Das Problem tritt nach dem ersten Schleifendurchlauf ein (nachdem er die 25% erreicht hat). Die Variablenbelegung habe ich mir mal über Printout angeben lassen. An updatebar werden, wie es sein müsste folgende Wert übergeben:
1. 30,35,40
2. 70,75,80
3. 110,115 ... der Maxwert für die Prozentberechnung ist jeweils 160.

Wenn ich über Stopppunkte arbeite, kann ich leider nicht mehr auf das Formular Progressbar wechseln, um zu sehen was angezeigt wird, da das wohl während der Code-Abarbeitung inaktiv ist. Die Werte werden aber richtig übergeben, wie zu sehen.

Was ich auch festgestellt habe: Vor Me.Repaint habe ich mal über eine Messagebox perc ausgeben lassen. Die Prozentzahlen werden auch alle exakt berechnet und nachdem ich in der Box auf OK klicke, zeichnet er den Balken auch neu und dann komplett zu den 100% durch (jeder einzelne Wert 30,35,40,70 usw. wird also gezeichnet)
Gasth
Gast


Verfasst am:
07. Okt 2008, 20:04
Rufname:

AW: Fehler bei Fortschrittsanzeige - AW: Fehler bei Fortschrittsanzeige

Nach oben
       Version: Office 97

Hallo,

ein DoEvents vor dem Next intCounter könnte das Problem lösen.

Übergibt die Steuerung an das Betriebssystem, damit es andere Ereignisse (Bildschirmaktualiserung bzw. dein progressbar) verarbeiten kann.

Gruß kh
derFuxx
Halbwissen in Excel, Access und VBA


Verfasst am:
08. Okt 2008, 08:49
Rufname:
Wohnort: Rhein-/Neckargebiet

AW: Fehler bei Fortschrittsanzeige - AW: Fehler bei Fortschrittsanzeige

Nach oben
       Version: Office 2003

DoEvents hilft leider auch nicht.

Etwas weiteres komisches, das ich festgestellt habe:

Wenn ich die Datenbank ganz neu starte und dann direkt die Speichernprozedur ausführe, funktioniert der Balken absolut einwandfrei und läuft super durch. Öffne ich dann das Formular auf dem der Speicherbutton ist erneut, lösche vorher die Werte aus der Tabelle und führe die Prozedur erneut aus, läuft der Balken nur bis 25%. Bleibt stehen und verschwindet nachdem alle Werte korrekt abgespeichert wurden.

Sehr mysteriös, das ist Wink
Willi Wipp
Moderator


Verfasst am:
08. Okt 2008, 10:38
Rufname:
Wohnort: Raum Wiesbaden

Re: Fehler bei Fortschrittsanzeige - Re: Fehler bei Fortschrittsanzeige

Nach oben
       Version: Office 2003

Hi derFuxx,

ausser DoEvents faellt mir dazu auch nicht viel ein. Confused
Versuche mal nur die fuer die Aktion notwendigen Objekte in eine neue DB zu importieren.
Kannst Du dort das Verhalten reproduzieren?

_________________
Eine kurze Rueckmeldung waere nett
SL Willi Wipp

(Anleitung fuer das Anhaengen von Dateien: Klicke links auf [www], Gaeste muessen sich dafuer anmelden)
Gasth
Gast


Verfasst am:
08. Okt 2008, 12:08
Rufname:

AW: Fehler bei Fortschrittsanzeige - AW: Fehler bei Fortschrittsanzeige

Nach oben
       Version: Office 2003

Hallo,

ich vermute dass die Anzahl der DoEvents nicht ausreichend ist.
Vor und nach den Calls wäre diese Anweisung sicher auch angebracht.
Hier musst du halt ein wenig experimentieren.
Teste mal folgende Konstellation
Code:
    Call...
    Form.Repaint
    DoEvents
    Call...

Gruß kh
derFuxx
Halbwissen in Excel, Access und VBA


Verfasst am:
08. Okt 2008, 13:47
Rufname:
Wohnort: Rhein-/Neckargebiet


AW: Fehler bei Fortschrittsanzeige - AW: Fehler bei Fortschrittsanzeige

Nach oben
       Version: Office 2003

Super Smile

Riesen Dank an euch alle. Wenn ich in der aufrufenden Prozedur ein DoEvents vor jeden Aufruf von UpdateBar setze, funktioniert es.

Vorher hatte ich mal testhalber DoEvents direkt in UpdateBar reingeschrieben und vor die Schleife. Muss aber anscheinend wirklich vor jeden.

Nochmals Danke.

Gruß derFuxx
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Tabellen & Abfragen: Fehler 3761 1 Manni 108 1419 20. März 2008, 17:35
Master_Chief Fehler 3761
Keine neuen Beiträge Access Tabellen & Abfragen: Fehler in Update: Fehler beim Kompilieren -> Methode n. g 1 Mindjogger 589 14. März 2008, 17:51
Mindjogger Fehler in Update: Fehler beim Kompilieren -> Methode n. g
Keine neuen Beiträge Access Tabellen & Abfragen: Oracle-Tablle einbinden - Reservierter Fehler (-7748); 4 PeterPan 4664 28. Feb 2008, 19:11
Nouba Oracle-Tablle einbinden - Reservierter Fehler (-7748);
Keine neuen Beiträge Access Tabellen & Abfragen: Fehler abfangen, wenn Datenbank nicht da 5 bentakle 1106 08. Feb 2008, 12:50
Da Oansa Fehler abfangen, wenn Datenbank nicht da
Keine neuen Beiträge Access Tabellen & Abfragen: mehrere Kriterien abfragen - Fehler wenn kein Wert vorgegebe 5 tommy22 812 07. Nov 2007, 23:50
JörgG mehrere Kriterien abfragen - Fehler wenn kein Wert vorgegebe
Keine neuen Beiträge Access Tabellen & Abfragen: DB-Frage liefert Fehler: Falsche Anzahl an Argumenten 3 susi_777 1812 01. Nov 2007, 00:20
Nouba DB-Frage liefert Fehler: Falsche Anzahl an Argumenten
Keine neuen Beiträge Access Tabellen & Abfragen: Access - Fehler bei Unterformular und SQL LEFT JOIN 1 kontextfrei 1526 01. Okt 2007, 18:03
kontextfrei Access - Fehler bei Unterformular und SQL LEFT JOIN
Keine neuen Beiträge Access Tabellen & Abfragen: Tabellenerstellungsabfrage Fehler! 5 ..::MaTzE::.. 598 19. Jun 2007, 15:07
Nouba Tabellenerstellungsabfrage Fehler!
Keine neuen Beiträge Access Tabellen & Abfragen: Fehler bei Geburtstagsabfrage wenn kein Geburtsdatum erfasst 2 adamth 1014 11. Jun 2007, 22:18
adamth Fehler bei Geburtstagsabfrage wenn kein Geburtsdatum erfasst
Keine neuen Beiträge Access Tabellen & Abfragen: Fehler in Löschabfrage!! 4 BorisDieKlinge 1623 12. Apr 2006, 13:17
BorisDieKlinge Fehler in Löschabfrage!!
Keine neuen Beiträge Access Tabellen & Abfragen: Access abfrage mittels SQL gibt Fehler... 1 Doris72 692 27. Feb 2006, 20:44
jens05 Access abfrage mittels SQL gibt Fehler...
Keine neuen Beiträge Access Tabellen & Abfragen: Übergabe eine Variable verursacht Fehler 2 blicki 714 16. Feb 2006, 10:42
blicki Übergabe eine Variable verursacht Fehler
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Excel Tipps