Hmm..
könnte es nicht sein, dass dann im 'Arbeitsverzeichnis' gesucht wird?
Besser den Pfad absolut mit
ExtractFilePath(ParamStr(0)) + 'Daten.mdb'
im Connectionstring setzen.
Dann muss man aber zur Laufzeit den Connectionstring parsen und verändern.
Alternative: Statt nur den Dateinamen der Datenbankdatei
.\Datenbankdateiname.mdb
nehmen.
Im FormCreate kann man auch noch ein
ChDir(ExtractFilePath(Application.ExeName));
machen, dann ist das aktuelle Verzeichnis auf jeden Fall auch das Arbeitsverzeichnis, unabhängig davon, wer wann und wo ein Arbeitsverzeichnis angegeben hat.
Diese Variante nutze ich für Programme, die nicht installiert werden müssen, sondern von USB-Stick, externer Festplatte... laufen sollen und ihre Daten auf dem Speicherträger ablegen sollen, auf dem sich die Exe befindet.
Allerdings lege ich die Daten, Konfigurationen... in Unterverzeichnissen ab.
Der Datenbankname im Connectionstring sähe dann so aus:
.\Data\Datenbankdateiname.mdb
Konfigurationen befinden sich im Unterverzeichnis Config, eine Dateinamenangabe sähe dann so aus:
.\Config\Programmname.ini