Добрый день.
Попробуйте проверить как отрабатывает функция TCustomDBLookupComboboxEh.LocateStr
Код:
function TCustomDBLookupComboboxEh.LocateStr(const Str: String; const PartialKey: Boolean): Boolean;
...
Result := FListLink.DataSet.Locate(FListField.FieldName, Str, Options);
if not Result and CaseInsensitiveTextSearch then
Result := FListLink.DataSet.Locate(FListField.FieldName, Str,
Options + [loCaseInsensitive]);
if Result then
begin
FTextBeenChanged := False;
CurOnChangeEvent := OnChange;
OnChange := HookOnChangeEvent;
SetKeyValue(FListLink.DataSet.FieldValues[FKeyFieldName]);
...
Result := FListLink.DataSet.Locate(FListField.FieldName, Str, Options);
должен перейти на правильную запись с учетом пробела
Результат перехода на запись будет виден в строек
SetKeyValue(FListLink.DataSet.FieldValues[FKeyFieldName]);
FListLink.DataSet.FieldValues[FKeyFieldName] должен вернуть код записи 'Стол 2' для Str = 'Стол '; // С пробелом.