VBA migrate VB

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von Mabbi.

    VBA migrate VB

    Hi,

    ich habe eine ziemlich großes Projekt über Jahre in VBA, zuletzt in Office 360 geschrieben.

    Über die Zeit sind eigentlich alle Tabellen-Operationen rausgeflogen und ich benutzte nur noch die Excel Forms mit einer selbstgeschriebenen Datenbank.

    Der nächste logische Schritt wäre die Migration des kompletten Projekts nach Visual Basic.

    Nun habe ich gegoogelt und bekomme unterschiedliche Vorschläge, wie ich z.B. die Userforms aus VBA nach VB bekomme, aber ich bekomme nur den Code importiert aber nicht die zugehörige Userform.

    Kann mir jemand einen Tip geben, wie ich eine VBA Form nach VB(.net) importiere.

    Ich habe die Form in VBA schon exportiert und 2 Dateien (.frm und .frx) vorliegen.

    Der Import in VB ergibt eine Start.frm (was so richtig wäre), aber nur mit Code als Inhalt und einem komischen Header:

    Visual Basic-Quellcode

    1. VERSION 5.00
    2. Begin {C62A69F0-16DC-11CE-9E98-00AA00574A4F} Start
    3. Caption = "Bitte Aktion wählen:"
    4. ClientHeight = 11130
    5. ClientLeft = 45
    6. ClientTop = 330
    7. ClientWidth = 18720
    8. OleObjectBlob = "Start.frx":0000
    9. StartUpPosition = 1 'Fenstermitte
    10. End
    11. Attribute VB_Name = "Start"
    12. Attribute VB_GlobalNameSpace = False
    13. Attribute VB_Creatable = False
    14. Attribute VB_PredeclaredId = True
    15. Attribute VB_Exposed = False
    16. Option Explicit
    17. Private Sub BUT_Info_Click()
    18. Dim i As Integer
    19. .......

    Wie bekomme ich die eigentliche Form da rein ?

    Das sind immerhin 16 Forms mit insgesamt 300+ statischen und dynamischen Controls etc.drin.

    Das nachzubauen wäre sehr aufwendig. Ich hoffe, hier gibt es einen einfacheren Weg.

    Vielen Dank vorab für die Hilfe.

    *Topic verschoben* ~ Marcus Gräfe
    Korrekte Code-Tags gesetzt ~ EaranMaleasi

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „EaranMaleasi“ ()

    Sehe ich ähnlich. Abreißen und neu bauen wie ich als Handwerker sagen würde.
    Dabei kann man auch gleich den VB Legacy-Mist rauswerfen und durch .net ersetzen.

    Ist zwar erstmal natürlich mehr Arbeit, aber bevor du da ewig Zeit in irgendwelche Konverter reinsteckst, die dir ein nicht funktionierendes, veraltetes Programm rauswürfeln: mach es neu.
    Und es gibt keine Möglichkeit die Userforms nur mit Ihren Objekteigenschaften zu migirieren ?

    DIe fast 7000 Zeilen Code in den Forms und Modulen würde ich sowieso Stück für Stück per Hand portieren.
    Da ist mir ein Konverter definitiv zu unsicher.

    Aber die Userforms nachbauen finde ich extrem aufwendig.
    Da muss alles passen da die Datenbank Darstellung in den unterschiedlichen Unter-Forms sich anhand der objekt-Namen orientiert.
    Sprich in der Datenbank gibt es einen Wert wohin er das schreiben soll der sich grob aus Ziel-Userform.object.name.typ zusammensetzt.
    Ist heute als Lösung nicht mehr ganz nachzuvollziehen, damals war es einfach so gut gelöst und vor allem skalierbar.
    Die Datenbank ist idz immens groß geworden, diese zu manipulieren möchte ich eigentlich nicht in Angriff nehmen.

    Alternative Ideen ? Vielen Dank im voraus.
    Vergiss "Konverter". Bei so etwas komplexen macht alles Andere außer abreißen und neu bauen meiner Meinung nach echt keinen Sinn.

    Ich habe vor Jahren ein Access Projekt mit etwa 185.000 Zeilen Code in VB .Net übernommen, dabei den Code um 90% eingekürzt weil in .Net vieles einfacher ist.

    Die Formulare mögen fummelig sein, allerdings wird das, wenn du erstmal drin bist, der kleinste Teil sein.

    Die größte Umstellung für dich wird der Zugriff auf die Datenbank sein. Bisher dürftest du mit Recordsets in VBA arbeiten oder? Die gibts so in der Form nicht mehr.
    "Die größte Umstellung für dich wird der Zugriff auf die Datenbank sein. Bisher dürftest du mit Recordsets in VBA arbeiten oder? Die gibts so in der Form nicht mehr. "


    Nein, ich habe eine richtige Datenbank komplett selber programmiert mit einfachem Push/Pull/Extract/Overwrite und einer sehr schnellen Suchfunktion für die Datensätze.
    Da sehe ich im umsetzen des Codes keine Probleme, ich muss mir nur nohchmal den Dateizugriff von VB und die Unterschiede zu VBA (es sind keine Exceltabellen sondern ein eigenes Dateiformat) anschauen.