你可以设一个全局变量 ,数值型:只取 0 和1 ,0表示关,1表示未关。 在测试窗口关闭时,事件中的 Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) ,窗口关闭了,一定会执行这个事件,所以,把变量值为0; 然后,你再测试一下变量值就行了,不就知道窗口是否被关闭了。
返回存储过程OUTPUT参复和RETURN返回值的原代码 accessQQ.com 2004-3-4 ------------ALTER PROCEDURE sp_1 @p int output as begin select * from tbluser set @p=@@rowcount if @@error <> 0 return @@error end------------Function returnP()Dim cmd As New ADODB.Command Set cmd.ActiveConnection = CONN cmd.Parameters.Append cmd.CreateParameter("@P", adInteger, adParamOutput)cmd.CommandText = "sp_1" cmd.CommandType = adCmdStoredProccmd.Parameters.Refresh '本句非常重要,经常会看到有网友问返回值得不到的情况,大部分是本句没有的原因 cmd.ExecuteDim i As IntegerFor i = 0 To cmd.Parameters.Count - 1 Debug.Print cmd.Parameters(i).Name & "=" & cmd.Parameters(i).Value Next iSet cmd.ActiveConnection = Nothing Set cmd = NothingEnd Function'----------测试---------? returnP() @RETURN_VALUE=0//这个参就是RETURN的返回值 @p=2//这个是OUTPUT参数值
且frmfind中定义一个全局变量作为传值变量。
查询窗口.tag=查出的主键
原来窗口.变量=查询窗口.tag
在测试窗口关闭时,事件中的 Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) ,窗口关闭了,一定会执行这个事件,所以,把变量值为0;
然后,你再测试一下变量值就行了,不就知道窗口是否被关闭了。
accessQQ.com 2004-3-4 ------------ALTER PROCEDURE sp_1
@p int output
as
begin
select * from tbluser
set @p=@@rowcount
if @@error <> 0
return @@error
end------------Function returnP()Dim cmd As New ADODB.Command
Set cmd.ActiveConnection = CONN
cmd.Parameters.Append cmd.CreateParameter("@P", adInteger, adParamOutput)cmd.CommandText = "sp_1"
cmd.CommandType = adCmdStoredProccmd.Parameters.Refresh '本句非常重要,经常会看到有网友问返回值得不到的情况,大部分是本句没有的原因
cmd.ExecuteDim i As IntegerFor i = 0 To cmd.Parameters.Count - 1
Debug.Print cmd.Parameters(i).Name & "=" & cmd.Parameters(i).Value
Next iSet cmd.ActiveConnection = Nothing
Set cmd = NothingEnd Function'----------测试---------? returnP()
@RETURN_VALUE=0//这个参就是RETURN的返回值
@p=2//这个是OUTPUT参数值