MSDE FunClub
Microsoft Data Engine FunClub
MSDE初心者向けメーリングリスト過去ログ[1922]番
 
[TOP]>[MSDE初心者向けメーリングリスト過去ログ(1922番)]>[ウィンドを閉じる]
 
SQLServer2005時代でも
開発の基本は T-SQL
上巻で T-SQL の基礎作り
 
SQLServer2005時代でも
運用の基本はバックアップ
下巻でバックアップ手法を学びましょう
PASSJ人気コンテンツで学んだ後は下巻でさらなる学習を!
 
ウィンドを閉じる
MSDE/SQLServer FAQ
MSDE / MSDE2000 
技術情報サポート
初心者向け
メーリングリスト
過去ログの表示
技術者向け
メーリングリスト
過去ログの表示
メーリングリスト
活動状況の
表示
MSDE TOP メニュー
MSDEトップメニューに移動します
 

 
Re: Access2007における ADP の連結フォームについて

Date: Fri, 08 Jun 2007 23:05:33 +0900
From: 丸山 宏徳 <who@example.ne.jp>



お久しぶりです、丸山です。

> >(省略)
> >2007は、GUI以外でもかなり変更があるようですね。少し試してみたところ、
> >以下のような結果が出ました。
> ビュー表を使った場合の、レコード追加・更新では、注意が必要です。
> 追加、更新可能なビュー表かどうか、SQLレベルで確認してください。

このあたりは正直、断言は出来ませんが……。

> 通常のビュー表を使ったSQLレベルでは、
> 
> >また、連結された1対多の1側のデータ(例:保護者.姓など)を変更した場
> >合でも、ちゃんと排他が掛かっています。他のクライアントで変更された場合、
> 
> 1側テーブルの更新はできません。
> それを更新ができるようにしているのは、Access側の処理だと思います。

出来るんですよ、それが(^^;
テーブル構成は前のメールの通りです。以下はカット&ペーストして空白を整形
しただけの、そのまんまのビューのSQLです

SELECT
 dbo.保護者生徒関係.生徒ID,
 dbo.保護者生徒関係.保護者ID, 
 dbo.保護者生徒関係.関係ID,
 dbo.保護者.姓 AS 保護者姓, 
 dbo.保護者.名 AS 保護者名
FROM
 dbo.保護者生徒関係 LEFT OUTER JOIN dbo.保護者
  ON dbo.保護者生徒関係.保護者ID = dbo.保護者.ID

このビューからウィザード(というか、例のリボンインターフェースから「作成」
→「フォーム」を選んで)で作っただけのフォームで、関係IDも保護者姓も保護
者名も修正できます。怖いコトに生徒IDも保護者IDも(既に存在しているIDにな
ら)修正できます(^^;
ちなみに、LEFT OUTER JOINをINNER JOINに修正しても(この部分に関しては)
特に変化はありませんでした

……既にあるIDに修正した場合どういう動作をするかというと……そうですね、
実際のデータを例に挙げましょう

【生徒】 ID,姓,名
1,丸山,太郎
2,丸山,次郎
3,堀川,花子

【保護者】 ID,姓,名
1,丸山,宏徳
2,堀川,明
3,堀川,奥様

【保護者生徒関係】 ID,生徒ID,保護者ID,関係ID
1,1,1,0
2,3,2,0
3,2,1,0
4,3,3,0

まぁ、とりあえず関係IDはダミーということで、こんなデータを想定します。上
記のビューでは次のような結果が得られます
1,1,0,丸山,宏徳
3,2,0,堀川,明
2,1,0,丸山,宏徳
3,3,0,堀川,奥様

で、このビューを元にウィザードでフォームを作ります。このフォームは(当然
ながら)「固有のプロパティ」も「再同期コマンド」も空白になっていますが、
全ての項目が修正可能です。
上記の結果の四行目にあたるレコードを表示しているときに

生徒ID=3(そのまま)
保護者ID=1
関係ID=1
保護者姓=朽木
保護者名=三郎

と修正すると、テーブルの内容は以下のようになります。

【生徒】 変化なし

【保護者】 ID,姓,名
1,朽木,三郎
2,堀川,明
3,堀川,奥様

【保護者生徒関係】 ID,生徒ID,保護者ID,関係ID
1,1,1,0
2,3,2,0
3,2,1,0
4,3,1,1

そして(流石にリアルタイムでは変化しませんが)「全てを更新」ボタンを押す
と、ちゃんとこの修正が反映されたデータがフォームにも表示されます。



丸山 宏徳(朽木 三郎)

E-Mail:who@example.ne.jp



[MSDE/SQLServerに関して、今、どんなことにお困りですか?]
よろしければお困りの内容を、電子メールで教えて下さい。
質問を電子メールで作成する


[ウィンドを閉じる]

[MSDE/SQLServer FAQ ]

[MSDE / MSDE2000 技術サポート情報一覧]

MSDE TOP ページに移動する

 
 
 
 
 
 
 
MSDE FunClubに関するご意見・ご要望等ございましたら、
msdefun@horikawa.ne.jp までご連絡下さい。
MSDEを始めとする各種データベースシステムの開発、コンサルタントに関するご要望等は、
msdedev@horikawa.ne.jp までご連絡下さい。