I wrote simpliest program that connect to acceessdb and from Memo column I can execute SQL query.
Example query:
SELECT 
    company_name, date_of_order_start, date_of_order_finish
FROM 
    customers
INNER JOIN 
    orders ON customers.id_customer = orders.id_customer
WHERE 
    company_name='Ампер';
It works fine, but this query
SELECT 
    company_name, date_of_order_start, date_of_order_finish, amount
FROM 
    customers
INNER JOIN 
    orders ON customers.id_customer = orders.id_customer
INNER JOIN 
    invoice ON invoice.id_order = orders.id_order
WHERE 
    company_name='Ампер';
returns a syntax error
missing operator in expression 'customers.id_customer=orders.id_customer INNER JOIN invoice ON invoice.id_order=orders.id_orde' .
Yes, the final r in .id_order isn't showing.
Please help, where I made mistake.
Below the code of the program
    unit Unit1;
interface
uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.DB, Vcl.StdCtrls, Vcl.DBCtrls,
  Vcl.Grids, Vcl.DBGrids, Vcl.ExtCtrls, Data.Win.ADODB;
type
  TForm1 = class(TForm)
    ADOConnection1: TADOConnection;
    DataSource1: TDataSource;
    ADOQuery1: TADOQuery;
    Panel1: TPanel;
    DBGrid1: TDBGrid;
    DBNavigator1: TDBNavigator;
    Button1: TButton;
    Button2: TButton;
    Memo1: TMemo;
    Label1: TLabel;
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Memo1Change(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
//проверим - есть ли текст в Memo. Если нет, выходим:
  if Memo1.Text = '' then begin
    ShowMessage('Вначале введите запрос!');
    Memo1.SetFocus;
    Exit;
  end;
  //текст есть. Очистим предыдущий запрос в наборе данных:
  ADOQuery1.SQL.Clear;
  //добавим новый запрос из Memo:
  ADOQuery1.SQL.Add(Memo1.Text);
  //открываем набор данных, т.е. выполняем запрос:
ADOQuery1.Open;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
  Memo1.Clear;
end;
procedure TForm1.Memo1Change(Sender: TObject);
begin
  ADOQuery1.SQL.Add(Memo1.Text);
  ADOQuery1.SQL := Memo1.Lines;
end;
end.