0

多くのExcellファイル(に変換CSV)をアプリケーションのデータベースレイアウトに変換する必要があります。

私のテーブルには、他のテーブルリストに外部キーを使用するフィールドがいくつかあり、変換コードがそのようなフィールドを見つけると、外部IDはありませんが、に入力された単純なテキストがありますExcell

現時点では、新しい行を挿入し、そのフィールドにフォーカスを合わせてTDBLookupComboBoxから、SOを介してメッセージを送信し、テキストを入力していることをシミュレートするのが最善の方法であることがわかりました。次に、このComboBox autocomplete機能は外部リストから適切なアイテムを選択します。

これが最善の方法である場合、どうすればよいですか?Delphi 2006とFirebirdを使用してこれらのキーボードメッセージを送信するには?

4

1 に答える 1

1

ユーザーを「エミュレート」する代わりに、コンポーネントが行うことをコードで行う必要があります。TDataSet.Locate メソッドを使用して部分文字列を検索し、DataSet カーソルを検索したレコードに設定します。次に、ルックアップ ソースを使用して値を取得します。

var
  SearchString: string;
begin
  SearchString := 'Dat';
  if LookupDataSet.Locate('MySearchField', SearchString, [loCaseInsensitive, loPartialKey]) then
  begin
    DestDataSet.Edit;
    DestDataSet.FieldByName('FLD_ID').AsInteger := LookupDataSet.FieldByName('FLD_ID').AsInteger;
    // DestDataSet.Post;
  end
  else
    raise Exception.CreateFmt('Lookup value not found for "%s"', [SearchString]);
end;
于 2012-08-18T12:38:21.227 に答える