erstelltes Programm findet Datenbank nicht

  • VB6

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von picoflop.

    erstelltes Programm findet Datenbank nicht

    Hallo an Alle,

    ein kleines von mir erstelltes Programm soll auf eine Datenbank zugreifen. Solange ich das auf meinem Rechner kompilierte Programm ausführe, wird auch die DB gefunden. Kopiere ich die Exe-Datei nun auf einen anderen Rechner, wird die DB nicht mehr gefunden. Das Programm benutzt auch Sound einer WAV-Datei. Wenn ich diese WAV-Datei auf dem anderen Rechner in den gleichen Ordner wie die EXE-Datei kopiere, wird der Sound gefunden. Leider funktionierts mit der Access-DB nicht auf gleichem Wege.

    Was kann ich tun? Wie bestimme ich den Pfad der DB, damit das kopierte Programm auf anderen Rechnern auch funktioniert?

    Fragen über Fragen...

    Grüße, Lars

    Tomodachi schrieb:

    Wie bestimme ich den Pfad der DB, damit das kopierte Programm auf anderen Rechnern auch funktioniert?

    Und wie machst Du das mit den Sound? Du musst den ConnectionString für die Datenbank anpassen (Analog zum Sound).
    NB. Es ist doch schön, wenn man lesbare Namen vergibt. Siehe auch [VB.NET] Beispiele für guten und schlechten Code (Stil).
    Es ist nur so, dass ich für den Sound gar nichts anpassen musste und es einfach funktioniert hat...

    Nun hab ich den Befehl CONNECTION STRING zwar auch entdeckt, doch kann ich ihn scheinbar nicht korrekt addressieren... Wenn ich die DB im gleichen Verzeichnis suche, wie die exe-Datei, dann muss ich doch einfach, d. h. ohne Pfadangabe, den Namen der DB angeben. Aber sowohl das, als auch ein konkreter Pfad, wie "D:\Projekte\Lernen.db" hat nicht funktioniert. :( -> Habe dazu herausgefunden, dass es wohl daran liegt, dass auf meinem Laptop D:/ eine Partition ist, während auf nem anderen Rechner mein USB-Stick als D: erkannt wird....

    (Könnte mir denn jemand mal einen Tipp geben, wie man so einen CONNECTION STRING in VB6 formuliert für den aktuellen Ort, an dem sich auch das Programm befindet? In anderen Foren-Beiträgen habe ich was von my.Settings ... gelesen, das gibts aber in 6 wohl nicht :( )
    -> ok, hab ich auch schon rausgekriegt: App.Path & "\DB.mdb"

    Aber das ist auch nicht des Rätsels Lösung, weils immer noch nicht auf nem anderen Rechner funktioniert!!!!!!

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „Tomodachi“ () aus folgendem Grund: Hab dran gearbeitet, aber ...

    Mal ne dumme Frage? Welche Fehler gibt es denn?
    Ist auf dem Zielrechner Access installiert? Wenn nein, musst Du die MDAC-Komponenten auf dem Zielrechner installieren, damit das Programm auch weis, dass es mit Access kommunizieren soll.
    NB. Es ist doch schön, wenn man lesbare Namen vergibt. Siehe auch [VB.NET] Beispiele für guten und schlechten Code (Stil).
    Also Access ist zwar installiert, aber dass das auch noch von Belang sein könnte, wundert mich. Ich erstelle doch ein eigenständiges Programm und es heißt in meinem VB-Handbuch: Wenn Access auf dem Rechner nicht installiert ist, kann man auch innerhalb der Entwicklerumgebung eine DB für das Programm direkt erstellen (Was ich ohnehin gemacht habe).

    Zu der Fehlermeldung: Die DB wird nicht gefunden:

    "Error 339: Component MSADODC.OCX or one of its dependencies not correct registered. A File is missing or invalid."

    Könnte es vielleicht wichtig sein, dass ich auf dem Test-Rechner keine Admin-Rechte habe? Aber so ganz kann ich das nicht glauben, weil ich durchaus ein anderes erstelltes Programm dorthin kopiert und fehlerfrei ans Laufen bekommen habe, bei dem allerdings keine DB benutzt wird...
    "Error 339: Component MSADODC.OCX or one of its dependencies not correct registered. A File is missing or invalid."


    Das ist der Hinweis auf das fehlende oder falsche OCX.

    Wenn Access auf dem Rechner nicht installiert ist, kann man auch innerhalb der Entwicklerumgebung eine DB für das Programm direkt erstellen

    Ja innerhalb der Entwicklungsumgebung. Aber auf dem Zielrechner muss das Programm auch wissen wo es die MSADODC.OCX findet.. Du kannst die exe nicht einfach kopieren, sondern Du musst das Programm über ein Setup auf den neuen Rechner übertragen. Dabei wird dann auch die MSADODC.OCX mit auf den Zielrechner gepackt.
    NB. Es ist doch schön, wenn man lesbare Namen vergibt. Siehe auch [VB.NET] Beispiele für guten und schlechten Code (Stil).
    Das wird wohl der Knackpunkt sein!

    Leider habe ich gerade gemerkt, dass ich Probleme habe, eine Setup-Datei zu erstellen.

    Bereits in meinem Handbuch ist darauf hingewiesen, dass es Probleme geben könnte, wenn man eine englische Version von VB hat und ein deutsches Windows betreibt...

    Ich habe bereits die Ländereinstellung des PC auf "English" gesetzt, aber es klappt noch nicht.
    Jawohl :P

    Ich habe mir am Wochenende VB2008 Express Edition herunter geladen und auch schon Literatur besorgt (zu VB2008), weil die Befehle doch ein wenig anders sind, aber ich kann durchweg sagen: Es erscheint mir vieles EINFACHER! Eine Frage noch: Ist denn VB2008 das Gleiche wie VB.NET?

    Mit der Veröffentlichung von Programmen ist es auch wesentlich einfacher, wobei man, wenn ich richtig gelesen habe, eine ca. 200 MB-Datei von der microsoft-Seite herunterladen muss, um sie auf dem Rechner einmalig zu installieren, damit das Programm auch läuft!!!!! Das ist natürlich Wahnsinn!! Ein 1 MB-Programm mit einer 200 MB-Datei ans Laufen zu kriegen!!!

    Tomodachi schrieb:

    Ist denn VB2008 das Gleiche wie VB.NET?

    Ja. Um zwischen neu und alt zu differenzieren, benutzt man normalerweise die Bezeichnung "vb.classic" und "vb.net"

    Das "große" Framework (3.5) kann man vermeiden, wenn man als Ziel-Framework 2.0 wählt. -> Projekt-Eigenschaften -> kompilieren -> erweiterte Optionen.

    Je nach Windows-Version sind bestimmte Framework normalerweise bereits installiert. Und ein Java-Programm braucht auch ne Java-Runtime ;)