Delphi 如何对包含空格的字段名上的ADO表进行排序?

Delphi 如何对包含空格的字段名上的ADO表进行排序?,delphi,ms-access,sorting,ado,tadotable,Delphi,Ms Access,Sorting,Ado,Tadotable,我使用的是Delphi,但这是一个简单而普遍的问题: 我正在做以下工作: var ArticlesTable: TADOTable; begin ArticlesTable.DisableControls; ArticlesTable.Sort := 'CITY'; ArticlesTable.First; while not ArticlesTable.Eof do begin ... ArticlesTable.Next; end; 这工作得非常好

我使用的是Delphi,但这是一个简单而普遍的问题:

我正在做以下工作:

var
  ArticlesTable: TADOTable;

begin
  ArticlesTable.DisableControls;
  ArticlesTable.Sort := 'CITY';
  ArticlesTable.First;
  while not ArticlesTable.Eof do begin
    ...
    ArticlesTable.Next;
  end;
这工作得非常好,允许我有效地一个接一个地处理记录,当记录进入时,由城市字段按升序排列

但是,现在我想按字段“lastname”排序,该字段中有一个嵌入的空格。但当我使用这句话时:

  ArticlesTable.Sort := 'CITY';
我收到错误消息:

  EOleException:  Arguments are of the wrong type, are out of acceptable range, 
                  or are in conflict with one another.
我看到了。它表示用逗号分隔多个字段,并在字段后添加ASC或DESC以升序或降序排序。但它没有说明如果字段名中有空格该怎么办

我曾尝试将字段名放在单引号和双引号中,甚至使用#20作为空格字符,但这些都不起作用

我无法更改Microsoft Access数据库上的字段名,因为我无法使用其他依赖它的程序


我相信一定有一种简单的方法可以做到这一点,但我不知道。

您是否尝试过用方括号括起字段名?例如:

ArticlesTable.Sort := '[LAST NAME]';

非常感谢。这是我不知道的语法,我需要。再次为StackOverflow欢呼。我花了将近一个小时在网上搜索,不知道该在哪里查找,但斯卡姆拉特在大约3分钟内回答了我。如果你试图创建一个带有空格的字段名时Access责骂你,那就太好了!