Hallo liebe Programmierer,
erst mal die besten Wünsche für's neue Jahr!
In meiner Verzweiflung wende ich mich an Euch in der Hoffnung Hilfe zu bekommen.
Kurz zur Historie: ich habe vor 20 Jahren mal ein VB Programm (ein DJ Programm mit Access Datenbank) geschrieben. Damals war ich jung und hatte viel Zeit. Kurzum: hab heute keine Ahnung mehr was ich damals programmiert habe, zu lange raus, leider...
Mein Problem: besagtes Programm nutzte ich bis heute auf einem alten Laptop und es lief einwandfrei. Doch der alte Laptop macht langsam schlapp und ich wollte das ganze jetzt mal auf einen neuen (alten) installieren. Habe dazu extra einen Laptop mit Win XP installiert und sonst ist nix drauf:
Konstellation vom alten: Win XP, SP3, MS Office 200 und mein VB Programm -> läuft
Konstellation vom neuen: genau gleich jedoch kommt beim Zugriff auf die eingebundene Access Datenbank folgende Fehlermeldung:
,,Die Datenbank ,CD-Sammlung.mdb' konnte im aktuellen Pfad C:\Programme\UltimateDJ\UltimateDJPfad\ nicht gefunden werden! Diese Datei im entsprechenden Pfad aufnehmen oder neuen Pfad erstellen!"
Jetzt muss man wissen dass beim Erststart des Programms der Pfad bestimmt werden kann und diese in die Registy geschrieben wird. Habe hier schon alles möglich ausgetestet. Leider kein Erfolg....
Wie gesagt, habe extra den neuen Laptop mit altem Betriebssystem installiert und versucht die gleiche Konfig aufzuziehen – es läuft einfach nicht.
Kurze Nebeninfo: auf einem anderen PC unter Win7, konnte ich über einen virtuellen PC das Win XP simulieren und da läuft es – aber eigentlich auch wieder in der gleichen Konstellation.
OK, ich könnte das jetzt auch auf dem geplanten Laptop versuchen, aber hier packt mich doch der Ehrgeiz weil ich verstehen wollte woran das liegt.
Konnte inzwischen auch meine alte Entwicklerplattform auf diesem Laptop in Betrieb nehmen und das Quellprogramm öffnen, aber wie gesagt – ich hab keinen Plan mehr...
Auch in der Entwicklungsumgebung kommt derselbe Fehler....
Ich glaube in der Zwischenzeit das es irgendwas mit den JET oder DOA Versionen zu tun hat – aber da kenn ich mich noch weniger aus.
Jetzt meine Frage: könnte sich jemand dieser Herausforderung stellen?? Ich könnt mir sogar vorstellen das Ganze (Laptop plus Programm etc.) zu versenden zum richten......
Oder gibt's Tipps was ich noch versuchen könnte (soweit ich' verstehe...)
Vielen Dank schon mal
Übrigens: hier kurze Auszug vom Quellprogramm: (hätte auch noch eine ganze Doku über das damalige Programm)
`Variablen definieren
`die öffentliche Variable mit dem Namen CDMDB wird als Database-Objekt definiert
Public CDMDB As Database
'die öffentliche Variable mit dem Namen Tabelle_Daten wird als Variablen-Typ Recordset definiert
Public Tabelle_Daten As Recordset
'Datenbank öffnen
`in die Variable CDMDB wird die Pfadangeb zur Access-datenbank (Jet-Datenbank = .mdb) übergeben
Set CDMDB = OpenDatabase(sCD_Pfad & "CD-Sammlung.mdb", False, False)
'Tabelle öffnen
`in der Datenbank wird eine Tabelle geöffnet die sämtliche Datensätze geordnet nach der ,,CD-Nr." einliest
Set Tabelle_Daten = CDMDB.OpenRecordset _
("select * from Daten order by 'CDNr'", dbOpenDynaset)
Hallo,
ich sehe keinen Grund warum das Ganze nicht auf einem aktuellen Rechner laufen soll.
So wie ich es verstehe ist ja kein Access selbst notwendig.
Zitatmeine alte Entwicklerplattform
Welche wäre das?
VB6? Das hätte ich (noch) verfügbar.
Hallo, hatte das ganze auch bereits unter Win10 vrsucht, gleiches negatives Ergebnis. Daher bin ich ja auf den Trichter gekommen alles unter dem alten XP zu machen wie auf meinem Originalrechner
... habe dir eine PN geschickt.
Hallo,
zunächst solltest du deinem Programm vertrauen.
Wenn es meldet
Zitat,,Die Datenbank ,CD-Sammlung.mdb' konnte im aktuellen Pfad C:\Programme\UltimateDJ\UltimateDJPfad\ nicht gefunden werden! Diese Datei im entsprechenden Pfad aufnehmen oder neuen Pfad erstellen!"
dann fehlt wohl die Datei
C:\Programme\UltimateDJ\UltimateDJPfad\CD-Sammlung.mdb
Hast du versucht deinen Dateien im entsprechenden Verzeichnis zu "installieren"?
Hallo, was meinst du mit installieren? Mehr als die mdb Datei dort in den Pfad zu speichern kann ich ja nicht machen, oder?? Habe auch schon verschiedene Pfade und Speicerorte getestet, überll kommt die gleiche Fehlermeldung
Hallo,
ZitatC:\Programme\UltimateDJ\UltimateDJPfad\
ist das Verzeichnis in welchem die MDB (lt. Fehlermeldung) erwartet wird. Dies wird/wurde in der Registry festgelegt.
Kopiere die MDB und die anderen Dateien aus "ULTIMATEDJPFAD" dort hinein.
Hallo,
ja klar hab ich doch bereits schon gemacht und auch zig fach mit anderen Pfaden und Orten ausgetestet.
Es funktioniert nicht. Aus irgendeinem Grund erkennt mein Programm den Pfad oder die darin abgelegte Datei nicht......
Ich hatte dir ja alles gesendet, konnest du es mal installieren und ebenfalls austesten? Danke
Hallo,
installieren konnte ich nicht, aber anschauen:
Zitat von: Deine FehlermeldungDie Datenbank ,CD-Sammlung.mdb' konnte im aktuellen Pfad C:\Programme\UltimateDJ\UltimateDJPfad\ nicht gefunden werden! Diese Datei im entsprechenden Pfad aufnehmen oder neuen Pfad erstellen!"
und hinter dieser Fehlermeldung liegt vermutlich folgender Code
sDaten_Pfad = GetSetting("Mischpult", "Pfade", "Daten_Pfad")
If Dir(sDaten_Pfad & "Cd-Sammlung.mdb") = "" Then
MsgBox "Die Datenbank 'CD-Sammlung.mdb' konnte im" & Chr$(13) & "aktuellen Pfad: " & sDaten_Pfad & Chr$(13) & "nicht gefunden werden! Diese Datei im entsprechenden Pfad aufnehmen" & Chr$(13) & "oder neuen Pfad auswählen!!", 16
End If
Nach deiner Fehlermeldung entspricht das einem einfachen
Dir("C:\Programme\UltimateDJ\UltimateDJPfad\CD-Sammlung.mdb")
Wenn es diese Datei bei dir wirklich gibt, dann weiß ich auch nicht weiter ....
Btw:
Die ganze VB6-Geschichte bekomme ich nicht zum Laufen. Da fehlen verschiedenen *.OCX und *.DLL.
Da ich auf meinem VB6-Rechner nur Office 64bit habe, kann ich da auch nichts tun.
Ein Problem mit der MDB selbst schließe ich aus. Das ist zwar eine 97-er, aber der Zugriff per DAO sollte auch bei Win10 möglich sein.
Ja und Microsoft Access (als Anwendung) spielt bei dem Ganzen gar keine Rolle.
Hallo Steffen,
ja kein einfaches Problem - dennoch vielen Dank das du dir die Mühe gemacht hast das mal anzusehen.
Das es an der MDB liegt glaube ich auch nicht, meine Vermutung geht eher dahin das irgendwas im Hintergund, zugehörige DAO oder MDAC nicht recht funktioniert, aber dazu kenne ich mich leider nicht aus...
Vom Pogrammcode her war ich auch am überlgen ob es etwas anders programiert werden muss, mit richtigem Verweis auf diese Dao, Objekte etc... aber wie gesagt, habe zu wenig wissen dafür.
Vieleicht hat jemand anders aus dem Forum noch einen Tipp für mich
Danke
Hallo,
es gilt außerdem zu beachten, dass
-- es unter 64-Bit-Windows zwei Programmverzeichnisse gibt: "c:\Programme" und "C:\Programme (x86)"
-- im Normalfall Admin-Berechtigungen erforderlich sind, um auf diese Verzeichnisse vollständig zugreifen zu können.
Hallo Franz,
hey, Bodensee hört sich gut an, da sitz ich auch....
was sagt mir das mit den C\Programmverzeichnissen? Muss ich da bei der Installation etwas anders machen oder fehlen mir ggf irgendwelche Adminrechte?
Ansonsten schau ich mir mal deine Linksund Tipps an ob ich hier noch fündig werde
Danke
Hallo,
zunächst: Ich kenne die Installations-Voraussetzungen deiner Db nicht.
Ich nehme an, dass Steffen0815 das Meiste schon kontrolliert hat.
Windows hat im Standardfall etwas dagegen, direkt Dateien in das Rootverzeichnis (c:\) und ebenso in die Programmverzeichnisse zu kopieren. Dazu braucht es mindestens Admin-Rechte oder die Sicherheits-Einstellungen müssen angepasst werden.
Wenn die Fehlermeldung "Datei nicht gefunden" (bei Dir()-Funktion ) erscheint, würde ich im Direktfenster manuell die Dir-Funktion mit Test-Parametern aufrufen und so testen, was die Funktion, bzw. Windows da nun treibt.
Grundsätzlich gäbe es "bessere" Verzeichnisse (z. B. "appdata\...." im Benutzerverzeichnis ) für solche Dateien oder halt ein separates, neu erstelltes Verzeichnis unterhalb des C:\-Verzeichnisses.
Das alles ist nur Vermutung in Bezug auf Dein Problem.
Hallo,
laut der Fehlermeldung und dem VB6-Code sollte dieser Befehl?Dir("C:\Programme\UltimateDJ\UltimateDJPfad\CD-Sammlung.mdb")
den MDB-Namen ausgeben.
Du könntest jetzt mit irgendeinem Officeprogramm (Word, Excel, Access) am Problemrechner im Direktfenster des VBA-Editor diesen Befehl eingeben.