Date: Wed, 30 Jul 2003 10:56:56 +0900
From: "Akira Horikawa" <who@example.ne.jp>
堀川です、おはようございます
-----Original Message-----
From: koyama [mailto:koyama@kensui.on.arena.ne.jp]
Sent: Tuesday, July 29, 2003 5:35 PM
To: MSDEメーリングリスト
Subject: [ml-msde-beg:00722] フォームでデータ更新
>でいろいろ調べました。堀川様著書の
>1.「SQL Server+MSDE7.0完全トレーニングテキスト下」
>でみると"再同期コマンド"の設定が必要とか。
再同期コマンドは、ストアドプロシージャが返すレコードセットが
2つ以上のテーブルから抜き出したビュー表形式(1対多の
参照整合性が設定されているテーブルの等結合)の場合に
必要です。
参照整合性がある1対多の多側テーブルの外部キーの列を
Accessのフォームから修正した場合、Accessでは、その変更
に対応する1側テーブルの主キーの値を新しく表示しなければ
いけません。
しかしストアドプロシージャが返すレコードセットがビュー表
になっているので、どのようにその値を取得していいのか判断
できないので、再同期コマンドを呼び出して、値の取得を依頼します。
ADOプログラムレベルで、自力でレコードを更新しないで、
Accessの連結フォームを使ってレコード更新を行うのであれば
再同期コマンドが必要です。
また固有のテーブルプロパティの設定も必要です。
固有のテーブルプロパティは、ビュー表形式で更新が可能な
条件を満たすベーステーブルの名前を入力します。
1対多の形式であれば多側テーブルの名前です。
>2.またインターネットで調べてみると、フォームのレコードソース
>にストアドプロシージャを設定し、"入力パラメータ"
>の所へ、フォームのテキストボックスの値を設定させるように空いてありま
す。
>http://www.shoeisha.com/book/hp/pc/office/Access/index.html
>2の方法でやってみたのですが、うまく表示されませんでした。
この場合、入力パラメータの定義が正しいかどうかチェック
しなければいけません。
一番簡単な方法は、レコードセットを返すストアドプロシージャの方で、
与えられたパラメータの値をデバッグ用テーブルに記録し、その
デバッグ用テーブルに記録された値と、Accessフォームのコントロール
の値とを比較して下さい。
検索用パラメータが正しくストアドプロシージャに受け渡っているのかを
確認します。
>1と2どちらの方法をとるのがよろしいのでしょうか?
ストアドプロシージャがパラメータを必要として、しかもビュー表形式なら
再同期コマンド、入力パラメータ、固有のテーブル
この3つのプロパティの設定が必要です。
但し自分で非連結フォームを作成するのであれば、これらは必要としません。
>Alter PROCEDURE 入力データ呼出_store
set nocount on が抜けていましたが、大丈夫でしょうか?
> set @hinmeiid=(select 品名入力ID from 品名入力T where 入力日=@nyuryoku
and
>品名コード=@hinmeino and 入数=@irisu)
selectの検索が失敗すると、null値が代入されます
レコード検索は必ず上手く行くのでしょうか?
------------------------------------
(株)日本技術ソフト開発
堀川 明 (Akira Horikawa)
07月30日(水曜日) 10時56分記
mailto:who@example.ne.jp
http://www.horikawa.ne.jp/msde/
[MSDE/SQLServerに関して、今、どんなことにお困りですか?] |
よろしければお困りの内容を、電子メールで教えて下さい。 |
質問を電子メールで作成する
|
[ウィンドを閉じる][MSDE/SQLServer FAQ ][MSDE / MSDE2000 技術サポート情報一覧]
|