Аксес подключение выдает ошибку

почитала то что предложили но теперь вопрос

Вот так должна выглядеть запись:

FDConnection1.Params.AddPair(‘ODBCAdvanced’,‘DefaultDir=I:\Projects\Embarcadero\Delphi\Server-Client\étoile\Serveur\Win64\Debug\BD;DriverId=25;MaxBufferSize=2048;MaxScanRows=8;PageTimeout=5;SafeTransactions=0;Threads=3;UserCommitSync=Yes’);

Так если правильно понял, цель отвязать приложение от среды разработки. А в коде вижу все до наоборот. Привязка к полному конкретному адресу.
Делайте относительный адрес. Например папка date содержит базу. Так и укажите относительно: date\base.mdb. Для отладочной версии папка date помещается в debug, финальная в release.

С относительным как бы поосторожней - позаботиться об нужном текущем рабочем каталоге. А он не всегда такой как кажется )

Я думаю сделать с помощью Extractfilepath(paramstr(0)), но как это записать так чтобы FD не принял за ошибку не пойму

было ж уже

на

последовало:

Так а в коде что сейчас?
Файл где лежит?

Лежит здесь
I:\Projects\Embarcadero\Delphi\Server-Client\étoile\Serveur\Win64\Debug\BD\UserBD.mdb

функция

function TForm2.BDconnected(S3: string; S2, S1: Tobject): string;

begin
if s1 is TFDConnection then
begin

TFDConnection(s1).Params.DriverID:='MSAcc';
TFDConnection(s1).Params.Database:=S3;
//TFDConnection(s1).Params.AddPair('ODBCAdvanced','DefaultDir='+s3+'DriverId=25;MaxBufferSize=2048;MaxScanRows=8;PageTimeout=5;SafeTransactions=0;Threads=3;UserCommitSync=Yes');
TFDConnection(s1).Connected := True;

end;

if s1 is TFDQuery then
begin
TFDQuery(s2).SQL.Text:='Select*From User_Grid';
TFDQuery(s2).Active:=true;
end;
end;

end.

вызов функции

procedure TForm1.CornerButton1Click(Sender: TObject);
var
path:string;
DatabaseFilePath,AppDirPath:string;
begin
AppDirPath := ExtractFilePath(ParamStr(0));
DatabaseFilePath := AppDirPath + 'db\UserBD.mdb';
Form2.BDconnected(DatabaseFilePath,Form2.FDQuery1, Form2.FDConnection1);

end;

дык опять

не поняла db - папка, в которой находиться файл - UserBD.mdb.
сделала с большой та же самая ошибка повторяется.

db и bd это разные имена.

изменила функцию вызова

procedure TForm1.CornerButton1Click(Sender: TObject);
var
DatabaseFilePath,AppDirPath:string;
begin
AppDirPath := ExtractFilePath(ParamStr(0));
DatabaseFilePath := AppDirPath + 'BD\UserBD.mdb';
Form2.BDconnected(DatabaseFilePath,Form2.FDQuery1, Form2.FDConnection1);

end;

не чего не поменялось

AppDirPath возвращает "I:\Projects\Embarcadero\Delphi\Server-Client\étoile\Serveur\Win64\Debug\ " ?

вот что храниться в DatabaseFilePath:

а как ODBC настроен для этого драйвера?

вот это мне и нужно понять я нашла вот что :
ODBCAdvanced’,‘DefaultDir=I:\Projects\Embarcadero\Delphi\Server-Client\étoile\Serveur\Win64\Debug\BD;DriverId=25;MaxBufferSize=2048;MaxScanRows=8;PageTimeout=5;SafeTransactions=0;Threads=3;UserCommitSync=Yes’);
но он настроен на абсолютный путь соответственно вопрос если это и есть настройка ODBC настройка драйвера то как его делать относительным и куда потом вставить

Я об администраторе источников данных ODBC.

Я сижу, из под единственной админской учетной записи или совсем понимаю как это.

Делаю через визуальный редактор с абсолютными путями все получается


а с относительными нет

попробовала так:
Form2.FDConnection1.DataSets.DataSource.DataSet.State:='ODBCAdvanced’,‘DefaultDir='+DatabaseFilePath+'DriverId=25;MaxBufferSize=2048;MaxScanRows=8;PageTimeout=5;SafeTransactions=0;Threads=3;UserCommitSync=Yes’)';
не вышло

Так может Аватар правильно спросил, драйвер в Источники данных ODBC?
Посмотрите в системе, для виндовс можно в пункт Выполнить ввести: odbcad32.exe и жмакнуть Enter. И посмотреть есть ли драйвер Access и как его там обозвали.