November 27, 2020, 17:47:18

Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!


Datenbank wird im Pfad nicht gefunden

Begonnen von peacele, Juli 27, 2020, 13:30:12

⏪ vorheriges - nächstes ⏩

peacele

Guten Tag,
in meiner Verzweiflung wende ich mich an dieses Forum in der Hoffnung Hilfe zu finden. Eins Vorweg: bin leider kein sehr erfahrener Programmierer oder ähnliches, also typ. Anwender.
Folgendes Problem: ich habe ein altes Programm, wurde mal unter VB geschrieben und dies verwendet im Hintergrund eine Accsess Datenbank. Das ganze läuft auf einem alten Laptop mit XP, SP3 und Access 2000

Nun wollte ich dieses Programm auf einem neuen PC unter Win 10 einrichten. Beim Ausführen bekomme ich folgende Fehlermeldung. (hab extra Access 2000 und nicht das neue installiert)

"Daten können nicht aus Datenbank 'xxxx.mdb` ausgelesen werden. Diese Datei im entsprechenden Pfad aufnehmen oder neuen Pfad auswählen!"

Ich habe nun schon alles Mögliche versucht. Natürlich check der Pfadangaben, der Dateinamen, Schreibschutz etc.  - keine Abhilfe.
Also dachte ich mir ich besorg mir einen jüngeren alten Laptop und installier darauf ein XP und versuch es hier - leider gleiches Ergebnis, obwohl ich den soweit ich das beurteilen kann 1:1 wie meinen ganz alten Laptop wo es läuft aufgesetzt habe.

Nächster Versuch: unter Win 10 hab ich eine virtuelle Maschine installiert, darauf XP, SP3 installiert und das entsprechende Programm - wow es lief! Warum ???

Jetzt war das nicht der Laptop wo ich das drauf haben wollte, also packte ich den "alten , neuen" Laptop, installierte Win 10, simulierte XP - wieder kein Erfolg! gleiche Fehlermeldung

Aktuell bin ich wieder bei der Konstellation Laptop, nur mit XP, SP3, Access 2000 und immer noch gleiches Problem.

Ich weiß nicht mehr weiter - daher die Frage hier - kann mir jemand helfen???? Woran kann das liegen?
DANKE

Beaker s.a.

@peacele
Leider bin ich mir sehr unsicher, aber evtl. helfen meine bescheidenen
Kenntnisse ja zumindest in die richtige Richtung.
Für VB ist die Access-Version eher unwichtig. Es greift ja, bei dir wohl
per DAO direkt auf die DB/Tabellen zu. Es könnte also sein, das diese
Bibliothek fehlt.
Für VB ist auch wichtig, ob es unter 32- oder 64-Bit läuft. Da könntest
du versuchen folgenden Code in das Script zu schreiben (ganz an den
Anfang)
'----- Start: Check 32/64-Bit -----'
'Quelle: https://stackoverflow.com/questions/2806584/how-do-i-run-a-vbscript-in-32-bit-mode-on-a-64-bit-machine
Dim sArg
Dim Arg
Dim sCmd
Dim oWShell
Dim oProcEnv
Dim ScriptHost

ScriptHost = Mid(WScript.FullName, InStrRev(WScript.FullName, "\") + 1, Len(WScript.FullName))
Set oWShell = CreateObject("WScript.Shell")
Set oProcEnv = oWShell.Environment("Process")
'Am I running 64-bit version of WScript.exe/Cscript.exe? So, call script again in x86 script host and then exit.'
If InStr(LCase(WScript.FullName), LCase(oProcEnv("windir") & "\System32\")) _
   And oProcEnv("PROCESSOR_ARCHITECTURE") = "AMD64" Then
        'rebuild arguments'
    If Not WScript.Arguments.count = 0 Then
        sArg = ""
        For Each Arg In WScript.Arguments
            sArg = sArg & " " & """" & Arg & """"
        Next
    End If

    sCmd = """" & oProcEnv("windir") & "\SysWOW64\" & ScriptHost & """" & " """ & WScript.ScriptFullName & """" & sArg
    oWShell.Run sCmd

    Set oProcEnv = Nothing
    WScript.Quit

End If
'----- End: Check 32/64-Bit -----'

gruss ekkehard
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.

crystal

Hallo,
es scheint ja wohl so zu sein, dass die alte VB-Anwendung den Pfad zur MDB "irgendwo" gespeichert hat und/oder aus der Umgebungs-Variablen PATH (eingedeutscht Pfad!) herauszulesen versucht (zumindest lässt die zitierte Fehlermeldung darauf schließen, die Programm-gemacht und keine System-Fehlermeldung ist).

Öffne bitte eine DOS-Box (Kommandozeile) und gebe dort "path" ein (oder "path /?" für Hilfe).
Versuche dann einen Befehl wie
PATH d:\mdb-Verz;%PATH%
(inkl. ; und %, Groß-Schreibung von PATH beachten.)

Vergleiche dies zuvor mit der PATH-Angabe auf dem alten Laptop, auf dem es funktioniert.

Das fügt das Verzeichnis "D:\mdb-Verz" (als Beispiel !) der PATH-Variablen (quasi eine Auflistung) hinzu.
"Statt "D:\mdb-Verz" musst du natürlich das Verzeichnis angeben, in dem sich deine MDB befindet.
Vorsicht: bitte benutze (möglichst) keine Leerzeichen in diesem Verzeichnis-Namen und halte den Namen insgesamt kurz!
Es könnte auch sein, dass das alte VB-Programm noch einen abschließenden Backshlash "\" in der PATH-Komponemte erwartet.
Dann probiere "PATH d:\mdb-Verz\";%PATH"

Starte dann dein VB-Programm.

Vermutlich wird der aktuelle Pfad zur MBD dann in der MDB selbst abgespeichert (Huhn-Ei-Problem).

Du könntest das dann auch in einer BAT-Datei vereinen, etwa so:
REM VB-Programm starten
PATH d:\mdb-Verz;%PATH%
cd D:\VB-Programm
VB-Prog

(Hier könnte man zuvor prüfen, ob "d:\mdb-Verz" im PATH schon vorhanden ist...
ist aber m. E. nicht nötig, da PATH dann nur solange existiert, bis die BAT-Datei beendet ist)


ALTERNATIV könntest du probieren, die MDB-Datei in genau das Verzeichnis zu kopieren, in dem sich auch das VB-Programm befindet.

Gruß,
crystal
Wer Fehler in meinen Antworten findet, darf sie behalten, muss sie aber kommentieren. ;-)
Dies ist keineswegs arrogant gemeint, sondern soll nur unterstreichen, dass meine Antworten - natürlich - nicht immer fehlerfrei sind und sein können.
Devise: bitte immer erst selbst probieren!

Aus gesundheitlichen Gründen nur noch selten dabei...

peacele

Danke für die ersten Antworten.
Leider funktionieren beides bislang nicht.

Ich kann leider nicht in den VB Script eingreifen - ist ja fertiges Porgramm.

Habe PATH Möglichkeit versucht, leider keine Veränderung
Die MDB Date auch ins VB Verzeichnis gestellt, geht leider auch nicht

Ich muss evtl noch erwähnen: Das Programm frägt beim Initialen Start einmalig die Pfad und Datenbank Datei ab und legt diese in die Registry ab:

Heky_Current_User/Software/VB and VBA Programms/Mischpult/Pfade:

Standard              REG_SZ    (Wert nicht gesetzt)
CD_Pfad                Reg_SZ  F:\CD-Sammlung\    ist quasi die mdb Datei
Daten_Pfad            REG_SZ  C:\Programme\UltimateDJ\UltimateDJPfad\
Ersstart_Button        REG_SZ  1

Kann das damit noch zusammen hängen das die Reegistry nicht abgefragt wird. Die Einträge sind richtig und änfern sich auch wenn ich beim Neustart des Programms andere Angaben mache...

peacele

Der HInweis mit der DAO Bibliothek. Wie kann ich überprüfen ob diese vorhanden ist und ggf. nachinstallieren?

Beaker s.a.

--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.

peacele

DAO installiert, leider auch kein Erfolg.
Es kommt immer das die Datnbank-Name im angegeben Pfad (wird sogar der ricjtige mit angezeigt) nicht gefunden wird :-(

Beaker s.a.

@peacele
Sorry, leider kann ich da nun nicht mehr weiterhelfen.
Der Entwickler ist nicht mehr greifbar?
Allerdings, was ist hier
Zitat"Daten können nicht aus Datenbank 'xxxx.mdb` ausgelesen werden. Diese Datei im entsprechenden Pfad aufnehmen oder neuen Pfad auswählen!"
mit letzten Option? Bietet das Programm da einen Filedialog?
gruss ekkehard
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.