Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
TreeView - MsgBox-Ersatz - Error Class
zurück: Auflistung von Abfragen- od. Tabellennamen in Combobox weiter: Benutzer / User automatisch aus DB kicken, werfen, loggen. Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Tutorial Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Bitsqueezer
Office-VBA-Programmierer


Verfasst am:
01. Nov 2009, 21:40
Rufname:

TreeView - MsgBox-Ersatz - Error Class - TreeView - MsgBox-Ersatz - Error Class

Nach oben
       Version: Office XP (2002)

Hallo zusammen,

hier mal wieder ein paar kleine VBA-Demos von mir.

Die angehängte Datenbank (als Versionen für Access 2002/3/7) enthält ein Formular, das eine TreeView mit Daten aus einer von zwei Tabellen füllt.

Die erste Tabelle ist die "HumanResources_Employee"-Tabelle aus Adventure-Works, die ja bekanntermaßen eine Spalte mit der ID des jeweiligen Vorgesetzten eines Angestellten enthält. Die TreeView-Klasse in der Datenbank scannt diese Tabelle und füllt die TreeView des Formulars mit dieser Baumstruktur.

Die zweite Tabelle ist eine kurze Demo-Tabelle, die zeigt, wie man eine Tabelle mit Icons versehen kann, die dann in der TreeView verwendet werden (für normale und angeklickte Darstellung). Beides funktioniert über die gleiche TreeView-Klasse.

Nebenbei ist noch ein Formular enthalten, das Meldungen mit Hilfe des Browser-Plugins ausgeben kann. Die Syntax funktioniert genauso wie bei der normalen MsgBox-Syntax, nur das man hier noch zwei weitere Grafiken anzeigen kann, einmal einen OK-Haken und einmal einen leeren Kreis (ccEmpty und ccOK), ansonsten funktionieren die normalen Konstanten wie vbExclamation usw.
Die Optionen für Hilfetext und Context sind nur Dummies und werden nicht verwendet (nur der Kompatibilität zum MsgBox-Befehl halber enthalten).

Das Browser-Plugin eröffnet durch Verwendung von ganz normalem HTML enorme Möglichkeiten zur ordentlichen Formatierung einer Benutzermeldung im Gegensatz zu dem MsgBox-Befehl.

Zuletzt ist noch ein Klassenmodul für die Verarbeitung von Fehlermeldungen enthalten, das diese neue MsgBox verwendet und gleichzeitig die Verwendung von HTML und CSS in der Meldung demonstriert.

Die Module können nach Belieben in eigenen Programmen eingesetzt werden, solange die Bemerkungszeilen in den Headern unverändert bleiben.

Viel Spaß beim Ausprobieren...

Christian



Trees.zip
 Beschreibung:
- demonstriert das Füllen einer TreeView
- enthält eine HTML-MsgBox
- enthält ein Klassenmodul zur Fehlerverarbeitung, das HTML-Fehlermeldungen anzeigt

Download
 Dateiname:  Trees.zip
 Dateigröße:  434.46 KB
 Heruntergeladen:  599 mal

Gast



Verfasst am:
02. Nov 2009, 20:45
Rufname:


AW: TreeView - MsgBox-Ersatz - Error Class - AW: TreeView - MsgBox-Ersatz - Error Class

Nach oben
       Version: Office XP (2002)

Ist das nicht fehlerhaft?
Code:
Public Property Let TableParentChild(ByVal strTableParentChild As String)
On Error GoTo Table_Error
    clsvar_strTable = strTableParentChild
    Exit Property
Table_ErrorParentChild:
    Select Case Err.Number
      Case Else:
        objErr.fnErr "Error " & Err.Number & " (" & Err.Description & ")" _
                   , "Class Module: clsCCTreeView" _
                   , "Property: TableParentChild"
    End Select
End Property
frmMessage endet mit "Die von Ihnen angegene Bitmap liegt nicht im Format geräteunabhängiger Bitmapdatein (DIP-Erweiterung) vor." Question
Bitsqueezer
Office-VBA-Programmierer


Verfasst am:
02. Nov 2009, 21:15
Rufname:

AW: TreeView - MsgBox-Ersatz - Error Class - AW: TreeView - MsgBox-Ersatz - Error Class

Nach oben
       Version: Office XP (2002)

Hallo,

die Datenbank ist unter Access 2007 entwickelt, das etwas großzügiger in Sachen Dateiformate ist, da ich leider nicht unter Version Office XP testen (nur in dem Format speichern) kann, könnte es sein, daß es da eventuell Probleme gibt.
frmMessage wird aber nur für die Anzeige von Fehlern verwendet, Du kannst statt fnErr hier auch einfach z.B. eine MsgBox verwenden, um eine Fehlermeldung anzuzeigen.

Gruß

Christian
Gast



Verfasst am:
02. Nov 2009, 21:18
Rufname:

AW: TreeView - MsgBox-Ersatz - Error Class - AW: TreeView - MsgBox-Ersatz - Error Class

Nach oben
       Version: Office XP (2002)

ich habe es unter A07 versucht,
die fehlerhafte Fehlerbehandlung im Code hat aber nichts mit A07 zu tun Smile
Bitsqueezer
Office-VBA-Programmierer


Verfasst am:
02. Nov 2009, 23:59
Rufname:

AW: TreeView - MsgBox-Ersatz - Error Class - AW: TreeView - MsgBox-Ersatz - Error Class

Nach oben
       Version: Office XP (2002)

Hallo,

also tut mir leid, bei mir funktioniert alles. Habe gerade nochmal alle Funktionen getestet, auch die MsgBox und einen absichtlichen Fehler eingebaut, um die frmMessage über fnErr aufzurufen - keine Probleme.

Vielleicht hilft Dir das weiter: Von Excel unterstützte Grafikdateitypen

Dort steht, daß für ein geräteunabhängiges BMP-Format einen Filter installieren muß. Vielleicht liegt es daran, daß ich unter Vista arbeite und dort ein paar Filter mehr vorhanden sein könnten als z.B. unter XP?

Gruß

Christian
Gast



Verfasst am:
10. Nov 2009, 14:44
Rufname:

AW: TreeView - MsgBox-Ersatz - Error Class - AW: TreeView - MsgBox-Ersatz - Error Class

Nach oben
       Version: Office XP (2002)

Hallo,

ich bin der Ersteller dieses Themas: Treeview: Stückliste mit nicht-zusammengehörigen Gruppen

Zu Christian:

Ich hab mir die Sache mal angesehen. Eine Frage hätte ich dazu:

Dass du das Treeview schön mit VBA erstellst, sieht echt gut aus. Aber wie hast du die Tabelle HumanRessources erstellt?

Auch mit VBA? Oder hast du das eingetippt.

Danke und Gruß
Cybot
Bitsqueezer
Office-VBA-Programmierer


Verfasst am:
10. Feb 2010, 13:12
Rufname:

AW: TreeView - MsgBox-Ersatz - Error Class - AW: TreeView - MsgBox-Ersatz - Error Class

Nach oben
       Version: Office XP (2002)

Bitsqueezer am 10. Nov 2009 um 15:01 hat folgendes geschrieben:
Hallo,

nein, natürlich nicht...Smile
Wie oben schon geschrieben, stammt die Tabelle aus der Microsoft Demodatenbank "AdventureWorks" für SQL Server.

Gruß

Christian

Hallo zusammen,

hier nochmal eine verbesserte Version der Messagebox aus der Datenbank oben. Die angehängte Datei enthält die Messagebox in den Versionen für Access 2000-2007.

Die Datei enthält NUR die Messagebox, nicht die anderen Module aus der Datenbank oben.

Die Geschichte mit den "geräteunabhängigen Bitmapdateien", die oben gemeldet wurde, habe ich auf einem anderen Rechner auch erhalten und dabei festgestellt, daß nur Programme wie das Windows Paint Bitmap-Dateien mit DIP-Erweiterung speichern. Ohne diese kommt es zu der oben erwähnten Fehlermeldung. Ich habe daher alle verwendeten Grafiken nochmal neu mit Paint gespeichert und neu eingefügt, der Fehler sollte also nun nicht mehr auftauchen.

Außerdem hat das zugehörige Modul eine Erweiterung erhalten. Statt der bisher verwendeten While-Schleife zum Warten, bis eine Messagebox geschlossen ist, wird das Form-Objekt nun in eine Collection aufgenommen. Damit kann der aufrufende Code sofort weiter ausgeführt werden, außerdem können so beliebig viele (so viel der Speicher hergibt) Messageboxen gleichzeitig aufgemacht werden.

Problem ist nur, daß die Formulare nach dem Schließen nicht entladen werden. Daher gibt es eine Sub "ccMsgBoxUnload", mit deren Hilfe man (wenn sie ohne Parameter aufgerufen wird), alle nicht mehr sichtbaren Formulare entladen kann. Diese Prozedur wird auch automatisch beim Öffnen der nächsten Messagebox gestartet.
Mit den optionalen Parametern kann man entweder ganz gezielt eine bestimmte Messagebox entfernen (die dabei auch automatisch geschlossen wird) oder alle Messageboxen entfernen. In beiden Fällen betrifft dies auch bereits nicht mehr sichtbare Formulare.
Somit kann man also auch Nachrichten gezielt programmgesteuert schließen, ohne daß der Benutzer einen Knopf drücken muß. Das kann man zum Beispiel für eine timtergesteuerte Messagebox benutzen, oder wenn man beim Schließen des Programms alle noch geöffneten Messageboxen automatisch schließen möchte.

Beim gezielten Entfernen bitte beachten, daß sich die Nummer ändern kann. Wenn beispielsweise 3 Messageboxen offen sind, kann man die zweite mit "ccMsgBoxUnload 2" entfernen. Die bis dahin dritte Messagebox kann man nun aber nicht mehr mit dem Parameter "3" entfernen, da nur noch 2 vorhanden sind und die dritte nun auf Platz 2 liegt.

Will man eine bestimmte Messagebox entfernen, kann man aber auch den Code erweitern und der Messagebox eine Property für einen eindeutigen Key hinzufügen, so daß man aus der Collection abfragen könnte, welche Messagebox diesen Key besitzt.

Viel Spaß damit....

Christian
Nachtrag: Bitsqueezer am 11. Feb 2010 um 13:15 hat folgendes geschrieben:
...noch eine kleine Verbesserung:

im Formular "frmMessage" sollten die beiden Prozeduren am Ende wie folgt ausgetauscht werden:
Code:
Public Sub Prompt(strPrompt As String)
    If strPrompt <> "" Then
        Do While Me.htmlOutput.readyState <> 4
            DoEvents
        Loop
        Me.htmlOutput.Document.Body.innerHTML = strPrompt
    End If
End Sub

Public Sub SetStyle(strStyle As String)
    If strStyle <> "" Then Me.htmlOutput.Navigate "about:" + strStyle
    Do While Me.htmlOutput.readyState <> 4
        DoEvents
    Loop
End Sub
Damit wartet die Messagebox darauf, daß das integrierte Webbrowser-Control mit seiner Ausgabe fertig wird. Ansonsten kann es sporadisch zu Fehlermeldungen kommen. In der Vollversion von Access ist mir das noch nicht passiert, aber in der Runtime. Wahrscheinlich läuft sie geringfügig performanter als die Vollversion.

Gruß

Christian



MessageBox.zip
 Beschreibung:
Konfigurierbare Messagebox mit HTML-Ausgabe für Access 2000-2007, enthält nicht die TreeView und Error Class aus der Datenbank weiter oben.

Download
 Dateiname:  MessageBox.zip
 Dateigröße:  271.67 KB
 Heruntergeladen:  200 mal

Bitsqueezer
Office-VBA-Programmierer


Verfasst am:
04. Sep 2010, 14:09
Rufname:


AW: TreeView - MsgBox-Ersatz - Error Class - AW: TreeView - MsgBox-Ersatz - Error Class

Nach oben
       Version: Office XP (2002)

Hallo zusammen,

für alle, die bereits Access 2010 verwenden, hier ein Update des Messagebox-Moduls. Dieses ist als Vorlage gespeichert, so daß man in Access 2010 unter "Erstellen - Anwendungsparts" einer bestehenden Datenbank einfach hinzufügen kann.

Es wird eine kleine Testtabelle, ein Formular und ein Modul hinzugefügt, außerdem ein Testmodul, daß die Anwendung demonstriert.

Neu ist hier, daß das Fenster nun nicht mehr das externe ActiveX-Webbrowsercontrol verwendet, wie noch in der alten Version, sondern nun das neue Access 2010 Webbrowsercontrol verwendet (was beinahe genauso funktioniert).

Außerdem wird hier der Einsatz der neuen Buttons gezeigt (wie man runde Buttons erzeugt) und mit diesen kann man die angezeigte Meldung nun sowohl speichern, mailen wie auch drucken.

Wie immer freue ich mich über Feedback, das Modul kann nach Belieben verwendet werden.

Christian



CCMessageBox.zip
 Beschreibung:
HTML-Messagebox-Formular als kompatibler Ersatz für VBA MsgBox, als Access 2010 Anwendungspart-Vorlage.

Download
 Dateiname:  CCMessageBox.zip
 Dateigröße:  240.5 KB
 Heruntergeladen:  151 mal

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: Error 3090 Mehr als 1 AutoWert Feld 2 akdes 86 10. März 2014, 12:44
akdes Error 3090 Mehr als 1 AutoWert Feld
Keine neuen Beiträge Access Formulare: Treeview Routine 6 Supermarc1 317 21. Aug 2013, 18:21
Supermarc1 Treeview Routine
Keine neuen Beiträge Access Formulare: Schriftart der Treeview ändern 14 JtGD28 2014 24. Jul 2012, 15:27
Bitsqueezer Schriftart der Treeview ändern
Keine neuen Beiträge Access Formulare: Fehlermeldung "Syntax error (missing operator) in query 6 arwar 288 18. Jan 2012, 14:56
arwar Fehlermeldung "Syntax error (missing operator) in query
Keine neuen Beiträge Access Formulare: Treeview: Knoten nicht anwählbar einstellen 1 Vandroy 495 18. Sep 2011, 14:45
Nouba Treeview: Knoten nicht anwählbar einstellen
Keine neuen Beiträge Access Formulare: #Error abfangen in Formularfeld 2 sk42 277 19. März 2011, 00:51
KlausMz #Error abfangen in Formularfeld
Keine neuen Beiträge Access Formulare: Error 3022 Abfangen und Datensatz zurücksetzten 1 derdem 285 28. Jan 2011, 01:21
Fritzerich Error 3022 Abfangen und Datensatz zurücksetzten
Keine neuen Beiträge Access Formulare: Fehlermeldungen wenn Treeview im Formular 2 JtGD28 278 23. März 2010, 19:52
JtGD28 Fehlermeldungen wenn Treeview im Formular
Keine neuen Beiträge Access Formulare: Umstieg auf XP jetzt kommt Fehler Runtime error 2147467259 5 cala24 2307 11. Feb 2009, 17:57
trekking Umstieg auf XP jetzt kommt Fehler Runtime error 2147467259
Keine neuen Beiträge Access Formulare: Gegenteil von "on error resume next"? 1 phischi 1298 20. Nov 2007, 00:52
Nouba Gegenteil von "on error resume next"?
Keine neuen Beiträge Access Tabellen & Abfragen: DCount-Runtime error 2001 und DCount 1 Nightwish 2111 20. Jun 2007, 17:04
Nightwish DCount-Runtime error 2001 und DCount
Keine neuen Beiträge Access Formulare: syntax error, (missing operator)... 1 Dr.Hossa 692 16. Nov 2006, 20:15
steffen0815 syntax error, (missing operator)...
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Microsoft Project