Date: Sat, 13 Apr 2002 04:14:03 +0900
From: "岡田 晃一" <who@sub.example.jp>
はじめまして、晃一といいます。よろしくお願いします。
質問の内容ですが
ストアドプロシージャの再同期についてなんですが、テーブルの主キーが
連結主キーの時はどのように設定したらいいのでしょうか?
ストアドプロシージャは
Alter Procedure Proc_日報明細
(
@指定番号 int
)
As SELECT [売上日報明細].日報番号, [売上日報明細].行番号,
[売上日報明細].数量, [売上日報明細].販売価格,
[売上日報明細].原価率, [売上日報明細].商品ID, [商品テーブル].品名,
[商品テーブル].仕入原価
FROM 商品テーブル INNER JOIN
売上日報明細 ON
[商品テーブル].商品ID = [売上日報明細].商品ID
where [売上日報明細].日報番号 = @指定番号
/* set nocount on */
return
再同期ストアドプロシージャは
Alter Procedure Resync_日報明細
(
@no int,
@no2 int
)
As SELECT [売上日報明細].日報番号, [売上日報明細].行番号,
[売上日報明細].数量, [売上日報明細].販売価格,
[売上日報明細].原価率, [売上日報明細].商品ID, [商品テーブル].品名,
[商品テーブル].仕入原価
FROM [商品テーブル] INNER JOIN
[売上日報明細] ON
[商品テーブル].商品ID = [売上日報明細].商品ID
where [売上日報明細].日報番号 = @no and [売上日報明細].行番号 = no2 )
/* set nocount on */
return
VBAでこのストアドプロシージャをサブフォームのレコードソースにして
メインフォームの日報番号のテキストボックスの値をパラメーターにして表示してい
ます。
主キーが一つ(行番号)の時は、where 売上日報明細.行番号 = @no を上記の再同期
ストアドと変えて
VBAで再同期コマンドとして指定すると、きちんと商品テーブルの内容は表示されま
す。
ところが、
Me!日報明細.Form.InputParameters = "@指定番号 int = forms![売上日報]![売上日
報番号]"
Me!日報明細.Form.ResyncCommand = "Resync_日報明細 @no = ? and @no2 = ?"
Me!日報明細.Form.UniqueTable = "売上日報明細"
Me!日報明細.Form.RecordSource = "Proc_日報明細"
Me!日報明細.Form![日報番号].ControlSource = "日報番号"
Me!日報明細.Form![行番号].ControlSource = "行番号"
Me!日報明細.Form![商品ID].ControlSource = "商品ID"
Me!日報明細.Form![数量].ControlSource = "数量"
Me!日報明細.Form![品名].ControlSource = "品名"
Me!日報明細.Form![原価率].ControlSource = "原価率"
Me!日報明細.Form![仕入原価].ControlSource = "仕入原価"
Me!日報明細.Form![販売価格].ControlSource = "販売価格"
Me.Requery
連結主キー(日報番号と行番号)にして、上記のように指定しても、商品テーブルの内
容は
表示されません。でもエラーにはならなくて、テーブルにデータも更新できます。再
同期に行番号
だけ指定しても、日報番号だけ指定しても、同じ状況です。
ながながと書いてしまいましたが、解からなくて困っています。どうぞよろしくお願
いします。
[MSDE/SQLServerに関して、今、どんなことにお困りですか?] |
よろしければお困りの内容を、電子メールで教えて下さい。 |
質問を電子メールで作成する
|
[ウィンドを閉じる][MSDE/SQLServer FAQ ][MSDE / MSDE2000 技術サポート情報一覧]
|