2017-03-10 10 views
0

Ich bin der neue Betreuer einer Anwendung, die zuvor von einem Auftragnehmer durchgeführt wurde. Die Anwendung wurde mithilfe von VBA in einem Access-Projekt entwickelt. Es besteht komplett aus Formularen (von denen eines mit dem Autoexec-Makro geöffnet wird) und solchen wie Click-Handlern. Ich sehe keine Verwendung von Access-Funktionalität, außer für den Zugriff auf die Tabellen mithilfe von ODBC-Tabellenverknüpfungen in Access. Dies sind die Gründe, würde Ich mag diese Anwendung auf eine eigenständige Anwendung konvertieren, wenn möglich:Make VBA Forms-Anwendung eigenständig

  • Es gibt keine Versionskontrolle überhaupt, nur mehrere Kopien des gleichen Projekts mit einer fortlaufenden Nummer an den Dateinamen angehängt
  • das VBA IDE ist super ärgerlich
  • ich der Code denke dann zu moderneren Sprachen wie C# oder VB.net migriert werden könnte so dass es mehr wartbar

gibt es eine Möglichkeit, dies zu einem separaten Windows-Anwen zu konvertieren on (Ich denke, WinForms zu verwenden, das scheint das gleiche wie die Formulare in VBA), die in Visual Studio verwaltet werden können?

+1

Ich denke, es würde eine Neuschreibung benötigen. Ich kenne kein Tool, um die Konvertierung zu automatisieren. Ein großer Teil des Codes könnte jedoch wiederverwendet werden. –

+1

'Gibt es eine Möglichkeit, dies zu einer separaten Windows-Anwendung zu konvertieren, dann müssten Sie die neue Anwendung in der von Ihnen gewählten Umgebung entwickeln. Es gibt keine Möglichkeit, den Code zu" konvertieren ". –

+0

Ja, Müll und Neuschreiben ist was zu tun. – Gustav

Antwort

2

Zugriff seit 20 Jahren unterstützt die Standard-Microsoft-Quellcode-Steuerschnittstelle. Dies wird in diesem Beitrag skizziert:

Version control for VBA file

Und dieser hier:

How to implement version control in Access 2003?

Es gibt wirklich wenig oder keinen Grund, warum Access + VBA oder vb.net kann nicht verwendet werden mit Quellcode-Kontrolle. Das SCC-Add-In, das Teil von Access war, wurde jedoch 2013 abgeschrieben. Daher können Sie für Versionen nach 2010 ein Skript zum Exportieren der Objekte verwenden. Das funktioniert ganz gut - ich benutze GitHub mit Access. Sie benötigen also ein Skript zum Exportieren von Objekten, da das SCC-Add-In in Versionen jenseits von 2010 nicht mehr enthalten ist und es funktioniert ziemlich gut. Access kann jedes Objekt als "logisch" getrennt betrachten. Wenn man also alle Teile in einem Ordner, einer Zip-Datei oder dem Access-Con- tainer nicht finden kann, sollte man nicht auf das physikalische vs. logische Konzept fallen, das so viele Leute nicht verstehen.

• Die VBA IDE ist super ärgerlich

Hum, hatte nie wirklich viel Problem mit ihm. Ich verbringe gute Teile meines Tages mit VS2013 und vb.net, aber die VBA-IDE ist in den meisten Access-Anwendungen in Ordnung. Können Sie ein Beispiel für ein Feature oder etwas geben, das Sie mit der VBA-IDE nicht gut finden?

• Ich denke, der Code dann zu moderneren Sprachen wie C# migriert werden könnte oder VB.net so dass es mehr wartbar

Ich kann nicht sehen, warum Code in C++ geschrieben, oder Pascal oder VBA wird mehr oder weniger haltbar sein? Sie müssen ein Beispiel geben, was Sie hier meinen? Wartbarer Code ist wartbar, wenn es COBOL, Pascal oder VBA ist.

Ich denke, WinForms verwenden wie die gleichen wie die Formen in VBA zu sein scheint

Nein, Access nicht WinForms verwenden.

Access als Entwickler-Tool wirklich nicht anders als mit FoxPro sagen, oder Delphi sagen. Solche Codes und Systeme können wie jedes andere Softwareentwicklungssystem neu geschrieben werden, das ich in den letzten 30 Jahren der Desktopentwicklung kenne.

Als eine allgemeine Regel, etwas in Delphi geschrieben, oder Access + VBA wird nicht durch einen Akt der Magie wird in WinForms und .net konvertiert werden. Das gilt für nahezu jede IDE und jedes System, das mir bekannt ist.

So Software in der allgemeinen Computerindustrie arbeitete nie auf diese Weise in der Vergangenheit, und so Zugang ist wirklich sehr ähnlich wie die meisten alles andere in dieser Hinsicht.

+0

> Nein, Access verwendet keine Winforms. Also hier war ich dann falsch. Ich dachte, es war Winforms und konnte daher aus VBA extrahiert werden (Winforms und VB6 sind beide außerhalb von VBA verfügbar). Ich fand [dieses kommerzielle Projekt] (http://www.microtools.us/_product.aspx) online, das scheint eine Konvertierung zu machen, wie ich es mir vorstellte, indem ich eine Source-to-Source-Übersetzung durchführte. Es sieht interessant aus, aber ich denke, ich werde versuchen, das Projekt für eine Weile unverändert zu erhalten. –

Verwandte Themen