- - PR -
VISUAL BASICのデータグリッドで
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-07-28 11:36
データベースのテーブルと連結しないで
(つまりデータベースのテーブルを書き換えることなく) データグリッド内で直接レコード追加・編集する方法を教えていただけますでしょうか? 要はデータベースから検索した結果をVB内にメモリ(変数)として持たせておいて メモリの内容をデータグリッドに書き込み、 検索もとのテーブルを書き換えることなく データグリッドでレコードを追加したり編集したいわけです。 ちなみにVBのバージョンは6.0で、使用しているデータベースはIBM DB2です。 | ||||
|
投稿日時: 2006-07-28 12:32
データグリッドじゃなくてフレキシブルグリッドつかったらどう?
| ||||
|
投稿日時: 2006-07-28 12:49
フレキシブルグリッドの場合、グリッド内での編集は
できないと思いますが・・・。 以下はVBのフレキシブルグリッドについてのヘルプの説明です。 「FlexGrid コントロールでは、表形式でデータが表示されます。このコントロールは、DBGrid とは異なり、読み取り専用です。この書式化機能は DBGrid コントロールとは異なり、文字列と図を含むテーブルの並べ替え、マージ、および書式化を行えます。」 | ||||
|
投稿日時: 2006-07-28 12:55
んっ?
普通に、MSFlexGrid.Text = "hogehoge" って設定すれば、編集になりませんか? (意味が違う?) 追加は、MSFlexGrid.AddItem で追加できますが。 | ||||
|
投稿日時: 2006-07-28 13:15
ひろれいさん>
コードを実行してみたところ、"hogehoge"という文字列は表示されますが、 グリッド内での直接の書き込みはできないようです。 | ||||
|
投稿日時: 2006-07-28 13:42
グリッド上で直接編集したい、ということですね。 その要件だと、MSFlexGrid では確かに無理ですね。 | ||||
|
投稿日時: 2006-07-28 13:53
試行錯誤してみたところ、レコードのロックの状態を「adlockoptimistic」ではなく
「adlockbatchoptimistic」にしたところ、元のテーブルを更新することなくデータグリッド内で直接編集することができたようです。 | ||||
|
投稿日時: 2006-07-28 16:31
TextBox を配置して擬似的に編集状態にさせるというのは、結構知られているかと思いますが... たとえば、Excel のように、F2 で編集状態になるように動作させることができます。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |