Date: Tue, 29 Jul 2003 17:35:11 +0900
From: "koyama" <koyama@kensui.on.arena.ne.jp>
小山といいます。
MSDE7.0+Access2000です。
抽出条件をストアドプロシージャで作り、そのレコードを
レコードセットで取ってきてフォームに表示という事を考えています。
(この際レコードはフォームの「詳細」に表示させ動的)
この表示させたデータを修正させたいのですが、
"ADO"だと無理みたいです。
でいろいろ調べました。堀川様著書の
1.「SQL Server+MSDE7.0完全トレーニングテキスト下」
でみると"再同期コマンド"の設定が必要とか。
2.またインターネットで調べてみると、フォームのレコードソース
にストアドプロシージャを設定し、"入力パラメータ"
の所へ、フォームのテキストボックスの値を設定させるように空いてあります。
http://www.shoeisha.com/book/hp/pc/office/Access/index.html
2の方法でやってみたのですが、うまく表示されませんでした。
1と2どちらの方法をとるのがよろしいのでしょうか?
それとももっとほかに方法があるのでしょうか?
ご存知の方がいらっしゃたら教えてください。
よろしくお願いします。
以下に更新できなかったVBAコードとストアドのコードを記載しておきます。
=========================VBA================================
Public Sub 入力データ呼出()
Set cn = CurrentProject.Connection
Set cmd = New ADODB.Command
Set parme = New ADODB.Parameter
Set rs = New ADODB.Recordset
rs.CursorLocation = adUseServer
rs.CursorType = adOpenStatic
rs.LockType = adLockOptimistic
'まずはデータ更新Fの入力データ呼出
With cmd
.ActiveConnection = cn
.CommandType = adCmdStoredProc
.CommandText = "入力データ呼出_store"
Set parme = .CreateParameter(, adDate, adParamInput, ,
Forms(Yobidasi_F).Controls("入力日"))
.Parameters.Append parme
Set parme = .CreateParameter(, adInteger, adParamInput, ,
Forms(Yobidasi_F).Controls("品名コード"))
.Parameters.Append parme
Set parme = .CreateParameter(, adSingle, adParamInput, ,
Forms(Yobidasi_F).Controls("入数1"))
.Parameters.Append parme
End With
Set rs = cmd.Execute
'画面を消去する
Call コントロール削除mdl(3)
'区分データ以外をフォームに表示
i = 1
'Do Until rs.EOF
If rs.EOF = True And rs.BOF = True Then
MsgBox ("該当するデータがありません。")
Exit Sub
End If
Set Forms(Yobidasi_F).Recordset = rs
Forms(Yobidasi_F).Controls("品名入力ID").ControlSource = "品名入
力ID"
Forms(Yobidasi_F).Controls("店舗入力ID1").ControlSource = "店舗
入力ID"
Forms(Yobidasi_F).Controls("店舗コード1").ControlSource = "店舗
コード"
Forms(Yobidasi_F).Controls("区分コード1").ControlSource = "区分
コード"
Forms(Yobidasi_F).Controls("価格1").ControlSource = "価格"
Forms(Yobidasi_F).Controls("個数1").ControlSource = "個数"
Forms(Yobidasi_F).Controls("数量1").ControlSource = "数量"
Forms(Yobidasi_F).Controls("合計1").ControlSource = "合計金額"
Set parme = Nothing
rs.Close: Set rs = Nothing
cn.Close: Set cn = Nothing
End Sub
===============================================================
======================ストアド===================================
Alter PROCEDURE 入力データ呼出_store
(
@nyuryoku datetime,
@hinmeino int,
@irisu float
)
AS
DECLARE @hinmeiid int
set @hinmeiid=(select 品名入力ID from 品名入力T where 入力日=@nyuryoku and
品名コード=@hinmeino and 入数=@irisu)
select b.品名入力ID,a.店舗入力ID,a.区分コード,a.価格,a.店舗コード,a.個数,数
量,a.合計金額 from 店舗入力T as a inner join 品名入力T as b on a.品名入力
ID=b.品名入力ID
where a.品名入力ID=@hinmeiid order by a.店舗入力ID
RETURN
============================================================================
======
どうかよろしくお願いします。
[MSDE/SQLServerに関して、今、どんなことにお困りですか?] |
よろしければお困りの内容を、電子メールで教えて下さい。 |
質問を電子メールで作成する
|
[ウィンドを閉じる][MSDE/SQLServer FAQ ][MSDE / MSDE2000 技術サポート情報一覧]
|