ALTER PROCEDURE Tran授权日志
@功能 nvarchar(28),
@动作 nvarchar(28),
@更新前 nvarchar(20),
@更新后 nvarchar(20),
@操作人 nvarchar(8)
AS BEGIN TRAN
INSERT INTO dbo.授权日志 (记录日期, 功能, 动作, 变更前值, 变更后值, 操作人) VALUES( GETDATE(), @功能 ,@动作,@更新前 ,@更新后, @操作人)
if @@ERROR >0 OR @@ROWCOUNT<>1
ROLLBACK TRAN
ELSE
COMMIT TRAN
ENDIF 作者: HG 时间: 2002-9-17 16:53
DoCmd.RunSQL ("exec Tran授权日志 " & "'" & 功能 & "', '" & 动作 & "', '" & 变更前值 & "', '" & 变更后值 & "','" & mUserName & "'")
這一句才是關珒所在,但這一句的變量,是直接來自窗體上的文本框的值嗎?
但這一句很容易出問題,如果參數輸入不完整,哪麼exec後的結果就可想而知了。
有沒有試過這個.docmd.runstortprocedure語句來調用哪,我就是在這條語句上碰碧的。
不多,還是結解了問題。多謝!作者: HG 时间: 2002-9-18 01:33
DoCmd.RunSQL ("exec usp_qry_production_cn @my_jobno=" & me.my_jobno.Value)
這條語句譔怎麼改寫,方可以用?
多謝!作者: KenjiSato 时间: 2002-9-18 04:19
DoCmd.RunSQL ("exec usp_qry_production_cn '" & Me.my_jobno.Value & "'") 作者: HG 时间: 2002-9-18 16:32
老大這樣是行不通的,我懷穎是您否這樣傳遞成功過。作者: HG 时间: 2002-9-18 17:23
Public Function test_proc(my_jobno As String)
Dim comm As New ADODB.Command
Dim para As New ADODB.Parameter
With comm
.ActiveConnection = CurrentProject.Connection
.CommandType = adCmdStoredProc
.CommandText = "usp_qry_production_cn"
End With
Set para = comm.CreateParameter(, adVarChar, adparainput, 10, mj_jobno)
comm.Parameters.Append para
If Not IsNull(my_jobno) Then
comm.Execute '現在用傳統的方法調用成功,但問題是我怎樣把數據賦給一個表格哪?
Else
MsgBox "請輸入一個JOBNO號碼", vbOKOnly, "err_info"
End If
Set para = Nothing
Set comm = Nothing
End Function
這是傳統的調用方法,但現在我怎麼才能實現實似於docmd.runsql哪樣的出現查詢數據窗體的效果哪?
正如KenjiSato所想的想的一樣,我也像好哪樣思考過,但從沒成功過,
現在參考了kenjisato的方法,可能是太笨,還是失敗了。
請kenjisato和高手們再指點。多謝!