あるマスターテーブルから一覧を下記のように表示させ、
登録・更新・削除を行っています。
削除 コード 名称
□ 1 あああ
□ 2 いいい
テーブルにデータがあったときに、そのレコードのコードを
変更不可にしたいのですが、削除のチェックボックスや名称は
変更できるようにしたいです。
テーブルにあるデータのコードだけを
編集不可にすることは可能でしょうか?
ネットで色々検索してみたのですが、列全体を編集不可にするような
やり方しか見つけられなかったので、質問してみました。
可能かどうかだけでも教えていただけないでしょうか?
よろしくお願いします。
>可能かどうかだけでも教えていただけないでしょうか?
それが一番難しい質問でしょうね。工夫しだいでどうにか
なる場合がありますから。そういった設定ができるプロパティ
などが用意されてるかどうかは、使った事がないので全く
知りませんが、無くてもそれなりの物はできるでしょう。
例えば、
[VB6.0]の MSFlexGrid は編集できませんが、ヘルプには
KeyPress イベントで選択セル位置にテキストボックスを表示し、
そのテキストボックスの値をプログラムから代入する事により
編集を実現してるサンプルが載ってます。
Click イベントや KeyPress イベントくらいはあるんじゃないですか?。
…なら可能と言う事になるでしょう。
処理の仕方次第ですよね
まるるうさん仰っているイベント関係は存在します
ただDBGの特性上たいていバインドして行変えた(カーソルが行を変更した)瞬間更新
が普通の処理なので、仕様次第でしょう・・・
できるできないで言えばできます・・・となるのかな
バインドしないで更新なら同社(推定グレープシティ)のスプレッドシートの利用も考えられるかも知れませんね
確かこれならセル単位でロックとかできますからね
>可能かどうかだけでも教えていただけないでしょうか?
ぢぶんは
実現が不可!という情報が明らかで無ければ
可能だぁ〜、できるんだぁ〜
っと思い込んで、試練の道を行くだろうなぁ〜、
#だから今月もデスマーチ(orz
投げっぱなしみたいになってしまってすいません;
教えていただいたように、keypressやkeydownのところに
入力をキャンセルするような処理を書いたりしたのですが
if tdbgrid1.text <> "" or keycode = 46 then
keycode = 0
end if
ちょっと考えが浅すぎたようで、表示されているところには
入力もdeleteもできないようになってますけど、
1文字でも入力したらこれに引っかかってしまうじゃん><;
ってことになったりして、無理矢理やるには技術も時間も
足りませんでした・・・
結局上司にそこはいいと言われてしまいました。
どうやら私が勝手に細かく作ろうとしてただけみたいで。。すみません。。
まだTDBGridを使った仕事を2,3度しかしたことがないので
これからもっと勉強したいと思います。
お答えいただいた皆さん、ありがとうございました。
ツイート | ![]() |