Конечно будет несоответствие типов. Ты пытаешься присвоить строке дату. Так делать нельзя. Вообще, чтобы не было проблем с типами данных я советую использовать параметры в запросах. Для твоего случая решение будет вот таким:
Код:
...
with ADOQuery1 do
begin
if Active then
Close;
SQL.Text:='INSERT INTO main_base (date_vr) values (:date_vr)';
Parameters.ParseSQL(SQL.Text,True);
Parameters.ParamByName('date_vr').Value:=DateTimePicker1.Date;
try
ExecSQL;
except
on E:Exception do
ShowMessage(Format('Ошибка "%s", при обновлении таблицы',[E.Message]));
end;
end;