DBComboBoxの表示?


はつ  2003-09-11 20:25:44  No: 4757

CoboBoxのrecordsetを使うというのがありましたが
DBComboBoxで1レコードしか表示されないのですが、
ずらーっと表示させたいんです。
HELPではそうなるように書いてあるようでしたが。
いまいちわからなかったのでお願いします。
QueryとDataSouceを使用しています。


Jボス  2003-09-11 20:57:31  No: 4758

常套手段でいきましょう。
下のだとEmpNoフィールドが取得できます。
procedure TForm1.Button1Click(Sender: TObject);
   var
     intTest: integer;
     strTest: string;
   begin
     Table1.open;
     with Table1 do
       begin
         for intTest := 0 to RecordCount -1 do
         begin
           dtrTest := FieldByname('EmpNo').AsString;
             ComboBox1.Items.Add( strTest );
           next;
          end;
       end;
     Table1.Close;
   end;


masayan  2003-09-11 22:03:44  No: 4759

はつさんの言われてのは、DBLockupComboBoxでは?
DBLockupComboBoxを使うと他のデータセットの内容をコンボのリストに表示できます。


はつ  2003-09-11 22:17:01  No: 4760

masayanさん、Jボスさんありがとうございます。
Comboboxではうまくいきました。
masayanさんのDBLockupComboBoxでは、表示がうまくいきませんでした。
DBLockupComboBoxの設定を詳しく教えてほしいのですが。
dbcomboboxは一般的にあまり使われないのでしょうか?


Jボス  2003-09-11 23:16:19  No: 4761

table1,table2,datasource1,datasource2,DBLookupComboBoxを
貼り付けてください。
後はプロパティーの設定のみです。
(databasenameとかは知識があるということで)
DBLookupComboBox1のDataSourceプロパティーはdatasource1
DBLookupComboBox1のListSourceプロパティーはdatasource2
DataSource1のDataSetプロパティーはTable1
DataSource2のDataSetプロパティーはtable2
DBLookupComboBox1のDataFieldプロパティーはフィールド名
DBLookupComboBox1のListFieldプロパティーはフィールド名
DBLookupComboBox1のKeyFieldプロパティーはフィールド名
もちろんtableのactiveはtrueです。


masayan  2003-09-12 00:35:29  No: 4762

コーディングが面倒でなければ、Jボスさんのやり方の方がいいと思います。
(DBLockupComboBox[DBLockupListBoxも同じ]は、便利なようで結構融通が利かないので...。自分もほとんど使っていません。)
一応、DBLockupComboBoxの使い方を説明します。

例えば、次のデータセットとそれに関連するデータソースを用意します。
  Table1(=>DataSource1)
    項目:KeyCD1 
         Text1  
         KeyCD2 
  Table2(=>DataSource2)←こっちがコンボに一覧する方
    項目:KeyCD2
         Text2

  ※.Table1は、Table2を参照できる項目値を持っている必要があります。
     (この場合、KeyCD2)

DBLockupComboBoxのプロパティを以下のように設定します。
  ▼コンボで編集するデータセットと項目
  DataSource :DataSource1
  DataField  :KeyCD2
  
  ▼コンボでリスト表示するデータセットと項目
  KeyField   :KeyCD2       ※.Table1→Table2を参照するためのキー
  ListSource :DataSource2  
  ListField  :Text2        ※.コンボのリストに表示する項目

これでDBLockupComboBoxにTable2のText内容が一覧表示されると思います。
DBLockupComboBoxでリストを選択するとTable1のKeyCD2に選択されたTable2のKeyCD2の値がセットされます。

以上です。

なお、DBComboBoxは、性別の入力などで結構多用しています。(性別のように決まった項目リストから1つを入力する場合に便利ですよ。)


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加