いつもお世話になります。
https://www.petitmonte.com/bbs/answers?question_id=951
↑上記の掲示板を参考にして、TADOQueryを使ってDBComboBoxへのデータセットを組みたいの
ですがうまくいきません。どう組めばいいのか判りません。自分なりに出来るところまで
組みました。どなかご教授頂けますでしょうか?
OSはWIndowsXP SP3
データベースはMicrosoft Access2003
データベースへの接続は、下記↓のMr.XRAY氏のページを参考にして接続は成功しています。
http://mrxray.on.coocan.jp/Delphi/plSamples/570_ADO_BASIC.htm
-------------------------------------------------------------------
procedure TForm2.FormCreate(Sender: TObject);
var
int_count : Integer;
str_name : string;
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT DISTINCT 区分名称 FROM Name_Tabel');
ADOQuery1.Open;
with ADOQuery1 do
begin
for int_count := 0 to ADOQuery1.SQL.Count - 1 do
begin
str_name := ADOQuery1.SQL.Strings[int_count];
DBComboBox1.Items.Add(str_name);
end;
end;
end;
-------------------------------------------------------------------
どういう風にうまくいかないのかわからないです。
ADOQuery1をOpen後にNextしていないようですが、
ADOQueryだとforでループさせるだけで、次レコードに移動しましたっけ?
for抜けるまで同じデータをAddし続けるような気がするんですけど。
procedure TForm2.FormCreate(Sender: TObject);
begin
with ADOQuery1 do
begin
SQL.Clear;
SQL.Add('SELECT DISTINCT 区分名称 FROM Name_Tabel');
Open;
while not EOF do
begin
DBComboBox1.Items.Add(Fields[0].AsString);
Next;
end;
Close;
end;
end;
でいいような気がします。
> ADOQuery1.SQL.Count
これは SQL文の行数で、
コードの動作はSQL文の内容を DBComboBox1 へ追加している気がするのですが、
これは ももさん のお望みの動作ではないですよね?
ご指導ありがとうございます。
DBComboBoxで選択出来るようになりました。
DBComboBox1.Items.Add(Fields[0].AsString);のコーディングの中で、
Fields[0]はどうして[0]となるのでしょうか?
あと、DBComboBoxの設定が判らないのですが、選択したデータを
DBComboBoxに表示するにはどのプロパティを設定すればよいのでしょうか?
> Fields[0]はどうして[0]となるのでしょうか?
ももさん が記述された SQL には一つしかフィールドがありません。
SELECT DISTINCT 区分名称 FROM Name_Tabel
"区分名称" は最初のフィールドですので、Fields[0] でアクセスできます。
以降、Fields[1] Fields[2]...という具合です。
もちろん、FieldbyName('区分名称') でもアクセスできます。
> あと、DBComboBoxの設定が判らないのですが、選択したデータを
> DBComboBoxに表示するにはどのプロパティを設定すればよいのでしょうか?
使い方に関してはヘルプに記述があります。
http://docs.embarcadero.com/products/rad_studio/radstudio2007/RS2007_helpupdates/HUpdate4/JA/html/devwin32/12ctrlsusingtdblistboxandtdbcombobox_xml.html
http://docs.embarcadero.com/products/rad_studio/radstudio2007/RS2007_helpupdates/HUpdate4/JA/html/devwin32/12ctrlsdisplayingandeditingdatainlookuplistandcomboboxes_xml.html
大変失礼ですが、DB関係のコントロールの基本的な使い方を理解されていない印象を受けました。一度 DEMOS フォルダのサンプルプロジェクトを確認するなり、マニュアルを確認された方が最終的には近道になると思います。
いつもお世話になります。
> 大変失礼ですが、DB関係のコントロールの基本的な使い方を理解されて
> いない印象を受けました。一度 DEMOS フォルダのサンプルプロジェクト
> を確認するなり、マニュアルを確認された方が最終的には近道になると
> 思います。
どんでも御座いません。
職場や知人にDelphiを修得している人がいない環境ですので、実践的な
手解きが頂くことがありません。
・∀・様、DEKO様、大変お手数お掛けしました。(m_m)
またよろしくお願い致します。