Hallo zusammen,
ich habe mittlerweile viele kleine Codeschnippsel, bei denen ich langsam die übersicht verliere. Wie verwaltet ihr eure kleinen Routinen habt ihr hierfür eine Datenbank. Muss man sich dafür selbst was schreiben oder gibt es was fertiges als Freeware. Wie macht ihr das?
Gruß Dieter
Hallo,
ich habe eine Beispieldatenbank mit viele Module.
Der Modulname weißt auf das Thema hin und darin sind die einzelnen
"Schnipsel" als Sub hinterlegt.
Vieleich gefällt dir das ja.
Gruß
Johann
Hallo Johann,
ich hab mal ein bischen länger gewartet, in der Hoffnung dass sich noch jemand beteiligt. Leider war und ist das nicht so der Fall.
Natürlich ist das eine Möglichkeit. Hast du da eine Tabelle dahinterstehen damit du weist was zusammengehört und was welches Modul macht. Ich stelle mir das recht unübersichtlicht vor alles in einer Datenbank.
Gruß Dieter
Hallo!
Beim Thema "Codeschnippsel" unterscheide ich zwischen wiederverwendbarem (fertigem) Code und Code als Vorlage (welcher beim Einfügen angepasst wird).
Den wiederverwendbaren Code sammle ich in Code-Modulen (Standardmodul bzw. Klassenmodul) und lege diese Codemodule als Text gespeichert in einer Verzeichnisstruktur ab. Falls ich in einer Anwendung dann so einen Code benötige importiere ich den Code mittels Access-Add-In.
Für das Einfügen der Vorlagen verwende ich Mz-Tool. Im Code der Vorlagen sind Platzhalter definiert, damit die Anpassung einigermaßen flott abläuft.
mfg
Josef
Hallo Josef
das könnte ich mir vorstellen und es ist auch sinnig was du da machst.
frage was ist das Access-Add-In bzw. das MZ-Tool. Sind diese Freeware?
und wie sieht so eine Vorlage aus. Die Klassenmodule sind das eigene oder sind das Formulare? Wenn es eigene sind kennst du dich damit aus? In Büchern werden die immer nicht gut behandelt und wenn es Beispiele gibt sind das immer 0815 Sachen. Ich glaube in diesen Klassen steckt sehr viel mehr potenzial als wir alle glauben.
Ich weis viele Fragen aber so ist das wenn man was lernen will.
Gruß Dieter
Hallo!
Zitatfrage was ist das Access-Add-In bzw. das MZ-Tool. Sind diese Freeware?
Die Mz-Tools gibt es für VB6 und VBA als Freeware.
=> http://www.mztools.com/
Das Add-In zum Importieren und Exportieren erstellte ich mir für diesen Einsatzzweck selbst, da ich nicht nur die Code-Module importiere, sondern auch beim Import eines Code-Moduls dafür sorge, dass alle andern dafür benötigten Code-Module ebenso importiert werden.
Das Access-Add-In "ACLib Import Wizard (http://wiki.access-codelib.net/ACLib-Import-Wizard)" ist auch frei (inkl. offenem Code).
Video über die Verwendung des Import-Wizard: http://access-codelib.net/videos/ACLib-Import-Wizard/neue-anwendung-erstellen/
Beschreibung: http://wiki.access-codelib.net/ACLib-Import-Wizard
Anm.: Die Beschreibung zeigt zwar den Einsatz mit der Verzeichnisstruktur von access-codelib.net, du bist aber nicht gezwungen diese Struktur zu verwenden, da du ein beliebiges Startverzeichnis einstellen kannst.
Zitatwie sieht so eine Vorlage aus
Z. B.:
Todo-Kommentar einfügen:
'/**
' * @todo {TODO}
'**/
{TODO} wird dann von den MZ-Tools mittels einer Art Inputbox abgefragt.
oder für die Array-Prüfung (ob Array gefüllt ist):
if (0/1) + (not not {I}) = 0 then
end if
... bei {I} steht nach dem Einfügen der Cursor.
[OT: Klassen]
... mit diesem Thema könnte dieser Thread ziemlich vom Thema "Codeschnippsel" abkommen. :)
ZitatDie Klassenmodule sind das eigene oder sind das Formulare?
Ich speichere Formulare (Code und Layout) und auch eigene Code-Module (Standardmodule u. Klassenmodule) als Textdatei ab.
ZitatWenn es eigene sind kennst du dich damit aus?
Ich glaub schon. ;)
ZitatIch glaube in diesen Klassen steckt sehr viel mehr potenzial als wir alle glauben.
Du darfst dir aber von den VBA-Klassen nicht zu viel erwarten ... für "richtiges OOP" fehlt in VBA einiges.
Zum Kapseln von betimmten Aufgaben sind sie aber durchaus geeignet. ... vor allem, wenn man auch (eigene) Ereignisse nutzen will, funktioniert das nur mit Klassen.
ZitatIn Büchern werden die immer nicht gut behandelt und wenn es Beispiele gibt sind das immer 0815 Sachen.
Das mit den Beispielen ist immer so ein Problem ... macht man sie zu umfangreich, erkennt man möglicherweise die Kernaussage nicht mehr - und macht man sie zu einfach, sind sie manchmal nicht mehr praxisnah.
Kennst du die AEK-Skripte von Paul Rohorzka zum Thema Klassen im AEK-Downloadbereich von http://www.donkarl.com/?AEK (http://www.donkarl.com/?AEK)?
mfg
Josef
Das nenn ich mal eine Antwort.
Danke Josef für deine Ausführungen, das muss ich erstmal alles sondieren und durcharbeiten. Kann ein bischen dauern.
Ich melde mich auf jeden Fall nochmal.
Gruß Dieter
Hallo Josef,
nein die AEK kannte ich noch nicht. Ich habe mir als erstes die Klassen Vorträge angesehen und Habe natürlich einige Fragen. Im AEK 12
wird beschrieben wie man ein zusammengesetztes Control (Gaugebar) mit einem Klassenmodul zusammenbaut, was mich aber erstaunt ist dass der Autor die Controls im Formular erstellt und nicht im Klassenmodul. Ich habe eigentlich gemeint, dass man die Controls ebenfalls im Klassenmodul erstellen kann. und was mich auch noch erstaunt hat ist, dass ich die überlagerten Ereignissen quasi im erstellten Control im Formular freigeben muss in dem man ein leeres Ereignis im VBA Editor stehen hat, oder hat sich das mittlerweile geändert? Ich hoffe du kannst mit diese fragen beantworten.
Gruß Dieter
Hallo!
Vorab: würde das Thema "Klassen" nicht besser in einen eigenen Thread passen?
ZitatIch habe eigentlich gemeint, dass man die Controls ebenfalls im Klassenmodul erstellen kann
Du kannst in einem Access-Formular zur Laufzeit (in der Formularansicht) keine Steuerelemente anfügen. Das funktioiert nur in der Entwurfsansicht eines Formulars.
(Wenn du das unbedingt benötigst, könntest du eine Form2-Formular verwenden.)
Zitatdass ich die überlagerten Ereignissen quasi im erstellten Control im Formular freigeben muss
Meinst du damit den Eigenschaftseintrag "[Event Procedure]"?
Das musst du nicht unbedingt bereits im Entwurf einstellen. Du kannst den Eintrag auch zur Laufzeit in der jeweiligen Eigenschaft eintragen.
Eines muss aber unbedingt vorhanden sein: das Formular muss inkl. Codemodul gespeichert sein.
mfg
Josef
Hallo Josef,
Also mir deiner ersten Anwort komm ich garnicht klar.
(Wenn du das unbedingt benötigst, könntest du eine Form2-Formular verwenden.)
wie meinst du das ?
Mit den Ereignissen meine ich, wenn ich die Ereignisse überschreibe (with Events) dann muss man doch im Eigenschaftsfenster bei den überschriebenen Ereignissen "[Ereignisprozedur]" einstellen und im VBA-Code ein leeres Eventereignis erzeugen damit das Ereignis auch ausgeführt wird. So hab ich das jedenfalls verstanden. Ich meine das überschreiben ist eine feine Sache man kan z.B eine Combobox im Enterereignis gleich aufgehen lassen oder die Hintergrundfarbe wechseln(geht natürlich auch anderst, sind nur Beispiele), aber warum in allerwelt muss ich dann diese qausi Geisterereignisse im Formularcode erstellen.
Gruß Dieter
Hallo!
zu Forms2-Formularen:
Es gibt in VBA auch die Möglichkeit die "Form 2.0"-Bibliothek zu verwenden und damit Formulare (UserForm) zu erstellen. (Das sehe ich z. B. öfter in Excel-Dateien, wenn spezielle Masken benötigt werden.)
zu den Ereignissen:
Du überschreibst nirgends ein Ereignis, wenn du eine Dekalaration mit Withevents durchführt.
Sobald ein Formular ein Klassenmodule besitzt, kannst du per VBA den Eigenschaftswert "[Event Procedure]" einstellen, um auf ein Ereignis reagieren zu können.
Wenn du willst, kannst du auch in 20 Klassen auf das eine Ereignis des Steuerelements reagieren. Dann wird in jeder dieser Klassen die Prozedur zur Ereignisbehandlung durchlaufen.
Du kannst das einfach testen, wenn du in einer Klasse auf so eine Prozedur reagierst aber auch in der Ereignisbehandlung im Formularmodul etwas ausführst (z.B. eine Messagebox anzeigen).
Ein Beispiel-Code:
Private WithEvents m_Form As Form
Public Property Set FormReferenz(ByVal frm As Form)
Set m_Form = frm
If Len(m_Form.OnCurrent) = 0 Then
m_Form.OnCurrent = "[Event Procedure]"
End If
End Property
Private Sub m_Form_Current()
MsgBox "..."
End Sub
Wenn du das in einer Klasse nutzt und eine Formular-Referenz an die Eigenschaft FormReferenz übergibst, muss im Formular keine leere Ereignisbehandlung enthalten sein. Es darf auch die Eigenschaft OnCurrent leer sein, da diese beim Übergeben der Referenz per Code eingestellt wird, falls sie fehlt.
Zum Thema Ereignisse versuchte ich einmal eine Beschreibung zu erstellen: [url?http://access.joposol.com/know-how/grundlagen/benutzerdefinierte-ereignisse.html]Ereignisse - Die Nachrichtenverbreiter von Klassen[/url]
Vielleicht hilft dir das ein wenig, um das Prinzip zu verstehen. Dabei geht es zwar eher um selbst erstellte Ereignisse - die eingebauten Ereignisse in den Access-Elementen funktionieren aber ähnlich.
mfg
Josef
Hallo Josef,
mal sehen ob ichs jetzt kapiert habe. Also du legst ein Property Formreferenz an und übergibst die komplette Form danach biegst du OnCurrent der Form auf deine eigene Routine um (m_Form_Current). Will ich für mehr als ein Ereignis, neue Events haben so schreibe ich diese ebenfalls zuerst in das Property und erstelle danach eine entsprechende namendliche Routine. Und so kann ich für jede Form in der ich diese neuen Ereignisse nutzen will, zB im Openereignis schreiben MeineKlasse.Formreferenz(Me) und schon hätte ich die neuen Ereignisse in meiner Form.
Ich nehme mal an, dass ich die Ereignisse in meinem Formular nur erweitert habe und diese weiterhin nutzen kann. welcher Code wird dann zuerst ausgeführt der in der Klasse oder der im Formular?
Public Property Set FormReferenz(ByVal frm As Form)
Set m_Form = frm '<-- Muss ich nicht m_Form wieder aufräumen irgendwo? Set m_Form = nothing
If Len(m_Form.OnCurrent) = 0 Then '<-- Was bezweckst du damit?
m_Form.OnCurrent = "[Event Procedure]"
End If
End Property
Ich habe die Hoffnung, dass ich dir noch nicht auf den Geist gehe mit meiner Fragerei
Danke und Gruß Dieter
Ich meine es ist der in der Form der zuerst ausgeführt wird.
Aufräumen kannst du in der Private Sub Class_Terminate deiner Klasse. diese ist wie die Private Sub Class_Initialize eine Standardsub welche beim Zerstören bzw. Beim Create deiner Klasse aufgerufen werden.
ZitatIf Len(m_Form.OnCurrent) = 0 Then '<-- Was bezweckst du damit?
damit wird überprüft ob eine ereignis schon definiert ist. Ich glaube er will ein vorhandenes definiertes Ereignis nicht überschreiben.
Zitatdanach biegst du OnCurrent der Form auf deine eigene Routine um
Da verstehst du die Ereignisse eventuell noch wein wenig falsch.
Mit der Einstellung in OnCurrent aktiviert man im Prinzip nur das Auslösen der Ereignisses.
Anm.: OnCurrent ist nicht das Ereignis. Das Ereignis heißt Current (siehe Objektkatalog).
Sobald das Ereignis von der jeweiligen Instanz (Formular, Steuerelement,...) ausgelöst ist, kann jeder der will und eine Referenz zur Instanz hat dieses Ereignis "abhören".
zu "Muss ich nicht m_Form wieder aufräumen irgendwo?"
Aber erst, wenn nicht mehr auf das Ereignis reagiert werden soll.
Anm.: "müssen" ist auch ein wenige realtiv ;), da beim Entladen des Formulars auch die Formular-Variablen entfernt werden. Es ist aber meiner Ansicht kein schlechter Stil, wenn man aufräumt, sobald die Referenzen nicht mehr benötigt werden.
Len(m_Form.OnCurrent) = 0
Damit wird geprüft, ob es bereits einen Eintrag in der Eigenschaft OnCurrent gibt.
Vielleicht ist es mit einem kleinen Beispiel besser zu verstehen => MehrfacheEreignisBehandlung.zip (http://access.joposol.com/download/MehrfacheEreignisBehandlung.zip)
mfg
Josef
hallo Josef,
nicht böse sein, dass ich dir keine Antwort gegeben habe, aber mich hat die Grippe voll erwischt und niedergestreckt. Ich bin auch noch nicht dazugekommen deine Test-DB genauer unter die Lupe zu nehmen.
ich melde mich wieder gruß Dieter
Hallo Josef,
bin wieder da, zwar noch nicht ganz der Alte aber es geht wieder. Deine Beispieldatenbank ist sehr gut, da sieht man was man alles mit den Klassenmodulen möglich ist. Ich habe mir vorgenommen die AEK durchzuarbeiten, denn da kann man viel lernen. Ich hätte natürlich noch sehr viele Fragen, aber ich möchte jetzt erst mal einiges selbst austesten, sonst gehe ich dir vielleicht doch noch auf den Geist mit meiner vielen Fragerei. ich hoffe,dass ich mich wieder bei dir melden darf wenn ich nicht weiterkomme. Dein "ACLib Import Wizard" ist ganz schön kompliziert aber auch sehr mächtig, was das nachladen von abhängigen Modulen betrifft .Trotzdem habe ich es bis jetzt noch nicht installiert. Mir fehlen einfach die Erklärungen zu dem jeweiligen Codeschnipsel, denn eine Odnerstrucktur habe ich bereits, nur mir fehlt der Durchblick welches Modul was macht, oden muss man dafür dieses Doxygen noch zusätzlich installieren, denn das schein ja was für die Dokumentation zu sein. Wie gesagt sehr kompliziert.
In der Hoffnung dass du diesen Beitrag noch im Auge hast.
Dieter
Hallo!
ZitatDein "ACLib Import Wizard" ist ganz schön kompliziert
Ja, da wäre ein Refactoring angebracht, damit der Code übersichtlicher wird. ... da es aber trotzdem läuft, finde ich einfach "keine Zeit" dafür. ;)
ZitatMir fehlen einfach die Erklärungen zu dem jeweiligen Codeschnipsel ... oder muss man dafür dieses Doxygen noch zusätzlich installieren
Doxygen ist nur für das Erstellen einer Code-Dokumentation zuständig.
Beispiel: http://source.access-codelib.net/doc/draft/class_code_module_reader.html
Für den Import-Wizard ist der Block
<codelib>...</codelib> in den Modulen erforderlich.
Beschreibung: http://wiki.access-codelib.net/ACLib-Import-Wizard
Ein Beispiel:
Option Compare Database
Option Explicit
'<codelib>
' <file>xyz/Modulname.bas</file>
' <use>abc/EinAnderesModul.bas</use>
'</codelib>
Public Sub MachWas()
'...
End Sub
Sobald ein codelib-Bock in einem Modul vorhanden ist, wird das Modul beim Exportieren unter StandardPfad\xyz\Modulname.bas (aus File-Tag) gespeichert.
Wenn du das Modul mit dem Import-Wizard in eine leere Anwendung importierst, wird auch das Modul StandardPfad\abc\EinAnderesModul.bas eingefügt.
Wären in diesem anderen Modul wieder use-Zeilen definiert, würden auch diese Module importiert werden.
Anm.: der ImportWizard ist für wiederverwendbare Codemodule vorgesehen und nicht für Code-Schnippsel im Sinne von Code-Mustern u. ä.
mfg
Josef
Hallo Josef,
daß ACLib nur Für Module ist, ist schon ok. Ich finde es auch ganz toll, dass man sich nicht um das nachladen der weiteren benötigten Modulen kümmern muß. Aber was mir fehlt ist schon der erwähnte Dokumentationsblock im Wizard. Für Module die man in fast jede Datenbank einbindet ist das OK, für selten benutze Module, muss man immer wieder nachschauen was macht was wann und da wäre eine solcher Dokumentationsanzeige im Wizard von Vorteil. Aber jetzt mal Butter bei den Fischen, so wie ich das sehe sind sowohl der Doxygen als auch der ACLib Wizard aus deinem Geist entsprungen, deshalb mal die Frage, sind denn die ganzen Routinen und Klassen die du auf der Seite bereitstellst zu freien Benutzung oder ist da irgendetwas zu beachten?
Gruß Dieter
Hallo!
ZitatAber was mir fehlt ist schon der erwähnte Dokumentationsblock im Wizard.
Ah! Ich glaube, jetzt verstehe ich erst was du meinst. Wenn du nach einem bestimmten Code suchst, würdest du gerne zuerst den Kommentar im Modul-Kopf lesen bevor du das Modul importierst, um nicht das falsche Modul zu importieren. Liege ich mit dieser Vermutung einigermaßen richtig?
Die Lösung könnte sein, dass man vom Import-Dialog aus entweder in einem zusätzlichen Fenster den Code aus dem Modulkopf anzeigt oder die Textdatei mit dem Standard-Texteditor öffnet.
Eine weitere Variante wäre eventuell auch interessant: die Klassen, Standardmodule und deren öffentlichen Prozeduren in einer Datenbank ablegen, damit nach deren Namen gesucht werden kann. Eine ähnliche (vielleicht sogar umfangreichere) Suchmöglichkeit erhält man, wenn man eine Doxygen-Doku erstellt, da man dann in der Html-Doku (oder bei Bedarf auch in einer chm-Datei) suchen kann. Die Datenbanksuche hätte allerdings den Vorteil, dass man die Suche direkt in die Import-Maske einbauen könnte.
Die eifnachste Lösung wäre: das CodeModul so zu benennen, dass daraus erkenntlich wird, wofür es benötigt wird. (Ich muss allerdings gestehen, dass mir das auch nur selten gelingt, einen Namen zu finden, den jeder sofort versteht. :))
Zitatso wie ich das sehe sind sowohl der Doxygen als auch der ACLib Wizard aus deinem Geist entsprungen, deshalb mal die Frage, sind denn die ganzen Routinen und Klassen die du auf der Seite bereitstellst zu freien Benutzung oder ist da irgendetwas zu beachten?
Doxygen (http://www.stack.nl/~dimitri/doxygen/) ist nicht von mir. Ich schrieb nur einen kleinen Assistenten für Access, der bei der Erstellung der Doxygen-Doku hilft.
Der Code im öffentlichen Teil von access-codelib.net steht frei zur Verwendung (BSD-Lizenz) - dabei aber bitte beachten, ob nicht auch Rechte Dritter im Spiel sind.
Im Sinne des Open-Source-Gedankens würde es mich freuen, wenn Verbesserungen nicht nur im stillen Kämmerchen ablaufen, sondern wieder offen zur Verfügung gestellt werden. Für die CodeLib würde eine Subversion-Quellcodeverwaltung zur Verfügung stehen, um den verbesserten Code einzuchecken.
Falls du detaillierte Fragen zu access-codelib.net hast, könntet du sie auch im dortigen Forum stellen. Ich beantworte die Fragen zwar auch gerne hier, weiß aber nicht, ob solche Fragen hier gerne gesehen werden, da es sich nicht mehr um Access-Fragen handelt.
/edit: Import-Wizard angepasst: Ein Doppelklick (oder {F2}) auf den in der Listbox ausgewählten Eintrag öffnet nun die Datei im Verzeichnis mit dem Standardprogramm für die jeweilige Datei-Erweiterung (bei Bedarf muss man noch den passenden Texteditor/viewer für frm, cls und bas einstellen).
mfg
Josef
Hallo Josef,
genauso habe ich das gemeint, dass wenn man auf die Datei geht, einen Text in einem anderen Fenster oder direkt im Wizard angezeigt bekommt.
Zitat
/edit: Import-Wizard angepasst: Ein Doppelklick (oder {F2}) auf den in der Listbox ausgewählten Eintrag öffnet nun die Datei im Verzeichnis mit dem Standardprogramm für die jeweilige Datei-Erweiterung (bei Bedarf muss man noch den passenden Texteditor/viewer für frm, cls und bas einstellen).
Dies ist eine Lösung, eine andere wäre in dem <codelib> Bereich einen Tag z.B. <doc> einzuführen und diese Zeilen dann im Wizard direkt anzuzeigen, aber das ist deine Sache, (nur ein Vorschlag) ich will dir da nicht reinreden. mit der Lösung die du jetzt hast kann man natürlich auch leben.
Zitat
(bei Bedarf muss man noch den passenden Texteditor/viewer für frm, cls und bas einstellen).
Wie in aller Welt stellt man sowas ein? Ich bin noch nicht so bewandert wie du in Access oder in VBA.
Gruß Dieter
Hallo!
ZitatDies ist eine Lösung, eine andere wäre in dem <codelib> Bereich einen Tag z.B. <doc> einzuführen und diese Zeilen dann im Wizard direkt anzuzeigen, aber das ist deine Sache, (nur ein Vorschlag) ich will dir da nicht reinreden.
Ich lasse mir gerne mit Vorschlägen "reinreden". ;)
Ein Tag "<description>" kann sicher nicht schaden. <doc> klingt für mich etwas zu umfangreich. Es sollte eigentlich nur eine kurze Beschreibung und keine vollständige Code-Dokumentation im Add-In-Fenster zu sehen sein, oder?
ZitatZitat(bei Bedarf muss man noch den passenden Texteditor/viewer für frm, cls und bas einstellen).
Wie in aller Welt stellt man sowas ein? Ich bin noch nicht so bewandert wie du in Access oder in VBA.
Damit meinte ich die Windows-Einstellung. Du musst dich aber nicht weiter darum kümmern. Sollte im Assistenten kein passendes Programm für die Dateierweiterung gefunden werden, kommt sowieso das übliche Windows-Fenster, in dem man das Programm auswählen kann. (Das ist der gleiche Dialog, der kommt, wenn du im Windows-Explorer auf eine Datei doppelklickst und Windows nicht weiß, mit welchem Programm es die Datei öffnen soll.)
mfg
Josef
Hallo Josef,
Zitat
Es sollte eigentlich nur eine kurze Beschreibung und keine vollständige Code-Dokumentation im Add-In-Fenster zu sehen sein, oder?
Genau so habe ich das gemeint. Es freut mich, dass du für Vorschläge offen bist. Andere hätte das mit einer mehr oder weniger guten Begründung angeschmettert, weil es für sie arbeit bedeutet hätte.
Ich muss nun allerdings weg, bis morgen Gruß Dieter
Hallo!
Die Version 1.0.2 hat nun beide Funktionalitäten eingebaut.
1. Doppelklick auf den Eintrag öffnet die Text-Datei.
2. Falls ein <description>-Tag vorhanden ist, kann man den Beschreibungstext in der Import-Maske zum ausgewählten Eintrag des Listenfeldes anzeigen lassen.
mfg
Josef
Hallo Josef,
ich muss sagen, dass du schnell bist, aber extra eine Nachtschicht hättest du nicht einlegen müssen. Ok ich lade mir diese Version herunter und probiere sie aus. Gebe dir Bescheid wenn ich sie durchgetestet habe. Ich hoffe sie läuft unter Win 7.
Gruß Dieter
Hallo Josef,
ich nochmal. Von welcher Seite muss ich den die neue Version runterladen? oder hast du sie schon auf der
http://wiki.access-codelib.net/ACLib-Import-Wizard (http://wiki.access-codelib.net/ACLib-Import-Wizard)
in den Download reingestellt?
Gruß Dieter
Hallo!
Zitatoder hast du sie schon auf der http://wiki.access-codelib.net/ACLib-Import-Wizard in den Download reingestellt?
Genau das machte ich. :)
Die Versionsnummer sollte eigentlich in der Titelleiste der Maske zu sehen sein. Im Code steht sie im Modul "_config_Application".
mfg
Josef
Hallo Josef,
sorry dass ich mich erst jetzt wieder melde, aber ich hatte die letzten Tage einfach keine Zeit.
Also das Teil ist einwandfrei habe bis jetzt keine Probleme damit und es arbeitet super. Als Addin für die Verwaltung von Modulen, ist es für mich nun komplett, mehr ausbauen sollte man es nicht. Ich habe mir die Seite zu meinen Favoriten abgelegt falls es dochmal noch ein Update gibt. Danke dass du auf alle meine Fragen eingegangen bist und für das schöne Tool. Wenn ich Fragen zu einem Klassenmodulen habe werde ich mich wieder bei dir melden, denn du scheinst da echt Ahnung davon zu haben.
Bis die Tage und ein schönes Weihnachtsfest für dich und deine Familie
Dieter
Hallo!
Einen Tipp bezüglich Code-Sammlung hätte ich noch:
Wenn du die Codemodule bereits als Text in einer Verzeichnisstruktur liegen hast, könntest du diese Struktur in ein Versionsverwaltungssystem einbinden, damit du bei Problemen auf den Inhalt der vorherigen Versionen eines Moduls zugreifen kannst ohne umständlich in irgendwelchen Archiven/Backups suchen zu müssen.
Mein Lieblingsspruch zum Thema Versionsverwaltung stammt aus http://www.clean-code-developer.de/:
ZitatAngst vor Beschädigung eines "running system" lähmt die Softwareentwicklung. Mit einer Versionsverwaltung ist solche Angst unbegründet. Die Entwicklung kann schnell und mutig voranschreiten.
Zitat aus http://www.clean-code-developer.de/Roter-Grad.ashx#Ein_Versionskontrollsystem_einsetzen_6
ZitatBis die Tage und ein schönes Weihnachtsfest für dich und deine Familie
Danke, das wünsche ich dir auch - und lass dich von Access nicht zu viel ärgern. :)
mfg
Josef