DBGrid の一行目(項目名)がどうしても古いものが表示されてしまうのですが?
database DeskTop でテーブルの再構築をやりました。
Query1.Active を trueにするとその再構築の変更した項目が出てくるのですが、
プログラムの実行をやると 変更前の項目が出てきてしまいます。
DBGrid のカラムエディタで項目の順番と表示の有無をやっても
プログラムの実行をやると古いままの表示になってしまいます。
どうしてでしょうか?
あれこれやってみたのですがわかりません。
ご教示願えませんでしょうか。
質問文を読んで状況をつかもうとしましたが.もしかしたら....
ですが,その前に
再構築というのは何をやったのですか.
項目の追加
項目の削除
項目名の変更
そして,どれがどこに(DBGRid?)実行時に再現しないのですか.
DBridの項目タイトル名としたら,DBGridのTitleプロパティはどうなって
いますか.
項目の追加です。
移動もやったはずです。
現在プログラムを動かすと表示される項目
DBGrid1 のカラムエディタで全部削除しても同じように表示されます。
No コード カナ その他 得意先 請求日 項目 請求金額 入金日
* (その他) (得意先) は空白です。削除か名前を変えましたので・・・
修正した項目(Query1.activeをtrue にしたときに表示される項目)
No コード カナ 得意先1 得意先2 請求日 項目 入金日 備考
以上です。
もう一つ不思議なのは? というかどこかが間違っているんでしょうが・・
PageControl にページを追加して DataSourse3,Query3,DBGrid3を貼り付け
プログラムを動かすとこれは修正した項目
No コード カナ 得意先1 得意先2 請求日 項目 入金日 備考
で表示されています。
ですので PageControl1 と PageControl2は 修正の以前のままで
PageControl3 は修正後の新しい項目で表示されています。
>DBridの項目タイトル名としたら,DBGridのTitleプロパティ
? すみませんがどういうことでしょうか?
申し訳ありません。
よろしくお願いします。
>DBridの項目タイトル名としたら,DBGridのTitleプロパティ
ゴメンなさい.DBridのカラム各プロパティのTitleプロパティのことです.
試しに,DBGridのタイトルのキャプションが前のままという,PageControl1
または2に配置している,Titleプロパティを変更してみたらどうなりますか.Query1と2の各カラムのDisplayLabelかな(関係ないかも)
>DBridのカラム各プロパティのTitleプロパティのことです.
おおっとまたやってしまった.
カラムのTitleプロパティのCaptionのことです.
DataSourse1,Query1,DBGrid1 削除して
正しく表示してあるDataSourse3,Query3,DBGrid3
と同じように設定しても
(QueryのActive.Trueにしている状態では訂正された項目です。)
プログラムを動かすと訂正前の項目が幽霊の様に現れます。
ちなみに DBGridでの「項目エディタ」での
Tile.Caption と FieldNameは同じ名前で
正しく表示されます。
訂正前の項目名が出てくるということはどこかに保存されているんでしょうね。削除とか名前を変更しているのにでてくるのですから。
Mr.XRAYさんのおっしゃているように、DBGridのカラムエディターで
Titleプロパティを調べてください。
ここに設定していると、Queryに無くても表示します。
憶測ですが、DBGridのカラム情報を自信で読み書きされていませんか?
以前、その様な質問があったもんで、気になりました。
https://www.petitmonte.com/bbs/answers?question_id=2024
何かが間違っているんですね。
修正前のPageControl1と2は
DBGrid のカラムエディタで DBGrid.columnsの編集を開け
0-No
1-コード
2-カナ
3-得意先1
-
-
9-備考
まで修正後の期待したものが現れています。
それに TitleのCaptionもそのまま修正後が入っています。
それがプログラムを動かすと
No コード カナ その他 得意先 と修正前のままです。
queryがそれぞれの3つのPageControlにあり
プロパティの databasenameは「h:\入金\」
datasourceは空白 SQLは「Select * from Pay」とみな同じです。
あとはDBGrid の違いは見つけられませんでした。
DBGrid,DataSourse,Query も削除して入れ替えても
プログラムを動かすと
PageControlの1と2は修正前のtable項目、後から追加した
PageControl3のtable項目は修正後の項目。
PageControlのなにかが原因になっているのでしょうか?
解決策に新規にtabeleを作り直すしてみようと思います。
この情報からでは、
修正したテーブルと、表示しているテーブルが
別のものとしか考えられません。
PageControlは関係ないと思いますが、、、
>DBGrid,DataSourse,Query も削除して入れ替えても
ということですので、それぞれのNameを今まで使用していない名前に変更した場合には動作に違いが出ませんか?
削除して入れ替えても、DBGrid1、DataSource1、Query1のように同様の名前が自動で付けられているのが原因かもしれません。
お役に立てれば幸いです。
>@っしー 2004/09/20(月) 19:12:51
>憶測ですが、DBGridのカラム情報を自信で読み書きされていませんか?
書いていただいてありがとうございました。
ビックリ、、そして心臓がドッキン、もしかしたら・・
以前の私の問いかけにお答えいただいたものが原因だったとは!
情けありません。なんといったら、穴があったら入りたいです。
FormShow で下記のコードがあったのを思い出しました。
まさか項目名も保存されているとは思いもしませんでした。
項目幅だけではなかったのですね。
DBGrid1.Columns.LoadFromFile(ExtractFilePath(ParamStr(0))+'col.dat');
DBGrid2.Columns.LoadFromFile(ExtractFilePath(ParamStr(0))+'col2.dat');
嬉しいやら、そして皆さんに申し訳ないやら一人相撲してしまいました。
ありがとうございました。
ツイート | ![]() |