1

私はDelphiを使用していますが、これは単純で一般的な問題です。

私は次のことをしています:

var
  ArticlesTable: TADOTable;

begin
  ArticlesTable.DisableControls;
  ArticlesTable.Sort := 'CITY';
  ArticlesTable.First;
  while not ArticlesTable.Eof do begin
    ...
    ArticlesTable.Next;
  end;

これは非常にうまく機能し、レコードが入ってくるときにCITYフィールドの昇順で並べられたレコードを1つずつ効率的に処理できます。

しかし、今はスペースが埋め込まれている「LASTNAME」フィールドで注文したいと思いました。しかし、私がステートメントを使用するとき:

  ArticlesTable.Sort := 'CITY';

エラーメッセージが表示されます:

  EOleException:  Arguments are of the wrong type, are out of acceptable range, 
                  or are in conflict with one another.

SORT文字列構文のヘルプを見てきました。複数のフィールドをコンマで区切り、フィールドの後にASCまたはDESCを追加して、昇順または降順で並べ替えることを示しています。ただし、フィールド名にスペースが含まれている場合の対処方法については説明していません。

フィールド名を一重引用符と二重引用符で囲み、スペース文字として#20を使用してみましたが、機能しません。

Microsoft Accessデータベースのフィールド名を変更することはできません。これは、使用していない他のプログラムがそれに依存しているためです。

私が知らないこれを行う簡単な方法があるに違いないと確信しています。

4

1 に答える 1

11

フィールド名を角かっこで囲んでみましたか? 例えば:

ArticlesTable.Sort := '[LAST NAME]';
于 2009-11-16T16:38:15.590 に答える