掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
データベースにあるデータの一覧表をTabControlとStringGridでつくるには (ID:34711)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
procedure TForm1.TabControl1Change(Sender: TObject); var C : Integer; S,SQLA,SQLB : String; begin SQLA := 'SELECT COUNT(コード) + 1 AS 行数 FROM TBL_アドレス帳 WHERE'; SQLB := 'SELECT コード,カナ名,名前,グループ名,住所1,住所2,電話番号,メールアドレス FROM TBL_アドレス帳 LEFT JOIN TBL_グループ ON グループ = グループコード WHERE '; case TabControl1.TabIndex of 0:begin//あ行 ADOQuery1.SQL.Text := SQLA + 'LEFT(カナ名,1) BETWEEN ''ア'' AND ''オ'' OR LEFT(カナ名,1) BETWEEN ''ァ'' AND ''ォ'''; ADOQuery1.Open; if ADOQuery1.FieldByName('行数').AsInteger > 1 then begin StringGrid1.RowCount := ADOQuery1.FieldByName('行数').AsInteger; end else begin StringGrid1.RowCount := 2; end; ADOQuery1.SQL.Text := SQLB + 'LEFT(カナ名,1) BETWEEN''ア'' AND ''オ'' OR LEFT(カナ名,1) BETWEEN ''ァ'' AND ''ォ'''; end; 1:begin//か行 ADOQuery1.SQL.Text := SQLA + 'LEFT(カナ名,1) BETWEEN''カ'' AND ''コ'''; ADOQuery1.Open; if ADOQuery1.FieldByName('行数').AsInteger > 1 then begin StringGrid1.RowCount := ADOQuery1.FieldByName('行数').AsInteger; end else begin StringGrid1.RowCount := 2; end; ADOQuery1.SQL.Text := SQLB + 'LEFT(カナ名,1) BETWEEN''カ'' AND ''コ'''; end; 2:begin//さ行 ADOQuery1.SQL.Text := SQLA + 'LEFT(カナ名,1) BETWEEN''サ'' AND ''ソ'''; ADOQuery1.Open; if ADOQuery1.FieldByName('行数').AsInteger > 1 then begin StringGrid1.RowCount := ADOQuery1.FieldByName('行数').AsInteger; end else begin StringGrid1.RowCount := 2; end; ADOQuery1.SQL.Text := SQLB + 'LEFT(カナ名,1) BETWEEN''サ'' AND ''ソ'''; end; ・ ・ ・ 省略 ・ ・ ・ 11:begin//検索結果 end; end; C := 1; ADOQuery1.Open; ADOQuery1.FindLast; S := ADOquery1.FieldByName('コード').AsString; ADOQuery1.FindFirst; StringGrid1.Cells[ 1, C ] := ADOQuery1.FieldByName('コード').AsString; StringGrid1.Cells[ 2, C ] := ADOQuery1.FieldByName('カナ名').AsString; StringGrid1.Cells[ 3, C ] := ADOQuery1.FieldByName('名前').AsString; StringGrid1.Cells[ 4, C ] := ADOQuery1.FieldByName('グループ名').AsString; StringGrid1.Cells[ 5, C ] := ADOQuery1.FieldByName('住所1').AsString; StringGrid1.Cells[ 6, C ] := ADOQuery1.FieldByName('住所2').AsString; StringGrid1.Cells[ 7, C ] := ADOQuery1.FieldByName('電話番号').AsString; StringGrid1.Cells[ 8, C ] := ADOQuery1.FieldByName('メールアドレス').AsString; repeat if S = ADOQuery1.FieldByName('コード').AsString then begin Exit; end; ADOQuery1.FindNext; C := C + 1; StringGrid1.Cells[ 1, C ] := ADOQuery1.FieldByName('コード').AsString; StringGrid1.Cells[ 2, C ] := ADOQuery1.FieldByName('カナ名').AsString; StringGrid1.Cells[ 3, C ] := ADOQuery1.FieldByName('名前').AsString; StringGrid1.Cells[ 4, C ] := ADOQuery1.FieldByName('グループ名').AsString; StringGrid1.Cells[ 5, C ] := ADOQuery1.FieldByName('住所1').AsString; StringGrid1.Cells[ 6, C ] := ADOQuery1.FieldByName('住所2').AsString; StringGrid1.Cells[ 7, C ] := ADOQuery1.FieldByName('電話番号').AsString; StringGrid1.Cells[ 8, C ] := ADOQuery1.FieldByName('メールアドレス').AsString; until S = ADOQuery1.FieldByName('コード').AsString; こんな感じです。 これだと結果が1行しか表示されません。 検索のキーワードをEditに入力してボタンをクリックすると検索のタブを表示させたいです。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.