ストアド プロシージャを使用した更新可能なフォーム レコードセットの実装
P粉086993788
P粉086993788 2023-09-13 14:06:48
0
1
556

  1. MySQL サーバー上のストアド プロシージャに基づくレコードセットを使用してフォームを設定しようとしています。コマンド オブジェクトを使用して Set Me.Recordset = cmd.execute を実行すると、正常に動作しますが、チェックボックスとテキストボックス (tinyint と varchar ) にバインドされている 2 つのフィールドを更新できる必要があります。形状。もちろん、これは機能しません。

  2. この設計上の問題を考慮して、.Open メソッドと "CALL procName ('value1', 'value2');" 構文を使用してレコードセットを開こうとしました。壊れたレコードセットを新しく作成し、.Open メソッドからスキーマを設定し、レコードをループして新しいレコードに追加します。最後に、次のようにフォームのレコードセットとして設定します。

  3. リーリー
  4. 追加情報: NewRecordset 変数はフォーム レベルでプライベートとして宣言されます。また、私のようにプロシージャを呼び出すのは悪い習慣であることもわかっていますが、このタスクを達成する他の方法は思いつきません。

  5. 重要: ローカル テーブルは使用できませんし、使用したくありません。これは簡単に修正できますが、コードの残りの部分と矛盾することになります。 ありがとう:)###

  6. 問題は、説明どおりに実行すると、バインドされたフィールドに対して #Name エラーが発生するか、フィールドがレコードセットとして設定されており、その値を変更できるのに、初期値が表示されないということです。
P粉086993788
P粉086993788

全員に返信(1)
P粉043470158

私が理解しているところによると、新しいレコードセットを作成したり、元のレコードセットからスキーマをコピーしたりするなど、さまざまな方法を試しましたが、フォームにバインドされているチェックボックス フィールドを更新することはできません。

この方法でストアド プロシージャを使用するのは難しい場合があるため、呼び出されたストアド プロシージャで更新が許可されているかどうかを個別にテストすることをお勧めします。

  1. 手動コピー モードの代わりに .Clone メソッドを使用して、元のレコードセットのコピーを作成してみてください。
  2. フォーム上のチェックボックス コントロールがレコードセット フィールドに適切にバインドされており、更新が許可されていることを確認します。
  3. データ更新の柔軟性を高めるために、adOpenKeyset などの別のカーソル タイプの使用を検討してください。
###お役に立てれば!

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!