0

必要なのは、ストアド プロシージャ レコードセットを Janus GridEX に何らかの方法でバインド解除することだけだと思いますが、その方法を理解するのに苦労しています。プログラミング言語はVBAです。

グリッドは希望どおりに入力されます-問題ありません。しかし、このコードでは、表示しているセルを編集することはできません (いくつかの列を非表示にしています):

JGEX.AllowEdit = True
JGEX.Columns(4).EditType = jgexEditNone
JGEX.Columns(6).EditType = jgexEditTextBox
JGEX.Columns(7).EditType = jgexEditTextBox
JGEX.Columns(8).EditType = jgexEditTextBox

繰り返しますが、唯一の問題は、(編集を許可するために) レコードセットを切断する必要があることだと思います。RS オブジェクトは次のように結び付けられます。

Set JGEX.ADORecordset = rsStaged

rsStaged の場所は次のとおりです。

Set rsStaged = New ADODB.Recordset
rsStaged.CursorLocation = adUseClient
rsStaged.Open SQL1, cnScada, adOpenStatic, adLockOptimistic

非常に単純なレコードセットですが、直接のテーブル クエリではなく、ストアド プロシージャから取得されます。

前もって感謝します!

4

1 に答える 1

0

以下に示すようにコード行を追加して問題を修正しました。

JGEX.AllowEdit = True
JGEX.EditMode = jgexEditModeOn

JGEX.Columns(4).EditType = jgexEditNone
JGEX.Columns(6).EditType = jgexEditTextBox
JGEX.Columns(7).EditType = jgexEditTextBox
JGEX.Columns(8).EditType = jgexEditTextBox

JGEX.Update

上から見ると違いがわかります。私の唯一の問題は、実際にフィールドを編集すると(1行で完了する)、次のようになることです。

複数ステップの操作でエラーが発生しました。各ステータス値を確認してください。

この問題は、レコードセット オブジェクトがバインドされていて、書き戻そうとしているためだと思います。ただし、基本的には、テーブル内の任意の行を更新できるようにする必要があります。行を繰り返し処理し、必要に応じてストアド プロシージャを呼び出すことで、ライト バックを処理します。

再度、感謝します。

于 2014-01-24T17:06:46.690 に答える