@Andy1982:
Hast du eine TDatabase-Komponente, oder gibst du den DB-Pfad direkt bei der Query an?
Anyway, das Problem ist ganz einfach, dass du einen relativen Pfad verwendest ("lieder.db") anstelle eines absoluten ("C:\meinProg\lieder.db").
Zunächst ist dann alles richtig, denn du befindest dich ja bei Programmstart im Programmverzeichnis. Dann aber wechselst du per Opendialog das aktuelle Dir, und schwupp, versucht die Query, dort nach einer lieder.db zu schauen...
Es gibt übrigens noch eine andere Möglichkeit das Problem zu lösen:
Unter der Eigenschaft Options von TOpendialog gibt es das Flag NoChangeDir, wenn du es aktivierst, wird nach dem Betätigen von Opendialog.Execute das vorherige Verzeichnis wieder das aktuelle.
Cu,
Udontknow