VB5 unter Windows 11 und Office 2021 Professionel(32-bit) Programm stürzt ab

  • VB6

Es gibt 20 Antworten in diesem Thema. Der letzte Beitrag () ist von Pit.

    VB5 unter Windows 11 und Office 2021 Professionel(32-bit) Programm stürzt ab

    Habe neuen PC mit Windows 11, Office Professional Plus(32-bit), und VB5 installiert.
    VB5 wird mit Administrator ausgeführt, Programm geladen und es werden alle Forms korrekt angezeigt.
    Beim ausführen des Programms wird auch meine Startseite korrekt angezeigt.
    Wird jedoch ein Programmteil ausgeführt das auf meine Access-Datenbank zugreift, so beendet sich das Programm von selbst.
    Im Verweise sind die Access 16.0 Object Library vorhanden.
    Wie kann ich den Fehler beheben?

    Auf meinem alten PC mit Windows 10, Office 2013(32-bit) läuft das Programm einwandfrei.
    Dort ist allerdings im Verweis die Access 15.0 Library's vorhanden.

    Besten dank

    *Topic verschoben*

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    @PeterS Willkommen im Forum. :thumbup:
    Es ist gewiss nicht das Interesse von Microsoft, Kompatibilität unter allen Bedingungen aufrecht zu erhalten, irgendwann ist damit einfach Schluss.
    Wie wäre es, wenn Du Dich moderneren Programmiersprachen zuwendest, z.B. VB.NET?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @RodFromGermany Hmm, ob Deine Antwort das Problem von PeterS löst und nicht jeder hat Lust auf eine neue Sprache zu wechseln um ein altes Projekt zu pflegen.

    @PeterS Versuche den Fehler einzukreisen. Erstelle dir ein neues Minimalprojekt, ohne schnickschnack drumrum, wo du nur auf die Datenbank zugreifen möchtest. Stürzt das dann beim öffnen, lesen oder schreiben ab?
    Mfg -Franky-
    Hallo Franky,

    hatte ich auch schon versucht, aber genau der selbe Fehler.
    So wie versucht wird auf eine Datenbank zuzugreifen erfolgt der Absturz.
    Vermute, dass dies an der Objekt Library 16.0 liegt.
    Weis aber nicht ob und wie ich die Objekt Library 15.0 einstellen kann.
    MFG PeterS
    Hi

    Wie schaut Dein Code aus? Lade das Minimalprojekt (keine Exe, nur Code) hier hoch und eine Testdatenbank damit man das ganze mal nachvollziehen kann. Ich hab zwar kein VB5 mehr, mit VB6 kann ich mir das aber mal anschauen.
    Mfg -Franky-
    Hallo Franky,
    hier der Code

    Visual Basic-Quellcode

    1. Private DB As Database
    2. Private Rs As Recordset
    3. Private Const Pfad = "C:\Test\Test1.accdb"
    4. Private Sub cmdStart_Click()
    5. Anzeigen
    6. End Sub
    7. Private Sub Anzeigen()
    8. Dim SQLText As String
    9. SQLText = "Select * from Person"
    10. Set Rs = DB.OpenRecordset(SQLText, dbOpenDynaset)
    11. txtVorname = Rs.Fields("Vorname")
    12. End Sub
    13. Private Sub Form_Load()
    14. Set DB = Workspaces(0).OpenDatabase(Pfad)
    15. End Sub

    In der Form einfach ein Button und ein Textfeld
    Datenbank ist Test1.accdb
    eine Spalte mit Vorname
    ein Eintrag "Peter" das wars.

    Starten, auf Button klicken, absturz

    *Code-Tag eingefügt*

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    @Pit
    Versuche mal anstatt der Referenz auf die Access 16.0 Library, den Verweis auf die "Microsoft DAO 3.6 Oject Library" wobei Du schauen musst was bei Dir vorhanden ist. Evtl auch die 3.51 oder die 2.5/3.51 Compatibility.
    Mfg -Franky-
    Hallo Franky,

    ja, das ist eine Möglichkeit die funktioniert wie ich eben ausprobiert habe.

    Es ist nur die Frage wie lange Microsoft diese Möglichkeit noch offen lässt.
    Mir ist die Idee gekommen, Office 2021 deinstallieren, Office 2013 installieren, Programm auf Access Library 15.0 setzen, danach zusätzlich Office 2021 installieren.
    Werde diese Möglichkeit diese Woche mal ausprobieren nachdem ich eine Datensicherung gefahren habe.

    MFG PeterS

    Pit schrieb:

    Es ist nur die Frage wie lange Microsoft diese Möglichkeit noch offen lässt

    Naja, die Frage wäre auch, wie lange MS noch die VB5/6 Runtime unterstützt. Für Win11 wurde dieses ja noch zugesichert. Von der VB5/6-IDE war ja von MS nie die rede das diese ab WinXX noch unterstützt wird. Vllt ist ja irgendwann mit Win12 schluß. Aber wer weis das schon. ;)
    Mfg -Franky-
    Hallo Franky,

    ich habe versuchsweise Office 2021 deinstalliert, danach Office 2013 installiert, die Access Library 15.0 eingestellt.
    Danach arbeitete das Programm fehlerfrei mit der *.accdb Datenbank.
    Habe dann versucht das Office 2021 zu installieren, aber das wird verhindert mit der Meldung, dass zuerst Office 2013 deinstalliert werden muss, was ich dann auch getan habe.
    Nachdem ich wieder das Office 2021(32-bit) installiert hatte waren auch die Library 15.0 nicht mehr vorhanden, nur noch die 16.0 Version.
    Somit habe ich mich entschlossen meine Datenbank als *.mdb zu speichern, womit auch das Programm wieder richtig läuft.

    Bedanke mich recht herzlichst für die Unterstützung.

    MFG PeterS
    @Pit
    Ich glaub das das nicht möglich ist mehrere Office-Versionen auf dem gleichen Gerät vorzuhalten / zu installieren. Vllt geht es ja doch wenn Du mal das probierts, was @INOPIAE vorschlägt. DAO (MDB-Files) ist ja nur eine Möglichkeit. ADO wäre die andere Möglichkeit und wenn ich mich recht erinnere, kann ADO mit accdb umgehen. Müsstest halt mal testen.
    Mfg -Franky-

    -Franky- schrieb:

    Ich glaub das das nicht möglich ist mehrere Office-Versionen

    Geht schon lange.
    Wichtig ist: Zuerst die ältere Version, dann die neuere Version installieren und auf die Installationspfade achten.
    NB. Es ist doch schön, wenn man lesbare Namen vergibt. Siehe auch [VB.NET] Beispiele für guten und schlechten Code (Stil).
    Hi Franky,

    Office stellt fest, ob noch eine Version installiert ist.
    auch wenn du dem Pfad änderst, es lässt sich keine 2 Versionen parallel installieren.
    Wäre auch zu schön gewesen :)