Office中国论坛/Access中国论坛
标题: 用docmd.openStoredProcedure打開預存程序報錯??? [打印本页]
作者: ADAM 时间: 2005-10-7 18:54
标题: 用docmd.openStoredProcedure打開預存程序報錯???
在vba中有一段代碼,打開預存程序時報錯,如圖:
[attach]13495[/attach]
Private Sub 產量清空_Click()
On Error GoTo Err_產量清空_Click
'DoCmd.SetWarnings False
DoCmd.OpenStoredProcedure "UPDATE_BOM_Q"
Me.資料子表單.Requery
'DoCmd.SetWarnings True
Exit_產量清空_Click:
Exit Sub
Err_產量清空_Click:
MsgBox Err.Description
Resume Exit_產量清空_Click
End Sub
我的解決法:強制執行,忽略錯誤,並忽略提示.將上面這段代碼改成如下:
Private Sub 產量清空_Click()
On Error Resume Next
DoCmd.SetWarnings False
DoCmd.OpenStoredProcedure "UPDATE_BOM_Q"
Me.資料子表單.Requery
DoCmd.SetWarnings True
End Sub
怪的是,程序還是執行了預存程序,但是這樣解決不了根本問題啊.有誰知道問題出在哪兒啊????
(UPDATE_BOM_Q這個預存程序是有存在的,已確認過了,也沒有拼錯)
作者: zyp 时间: 2005-10-7 19:35
换成currentproject.connection.execute("exec UPDATE_BOM_Q")试试
作者: ADAM 时间: 2005-10-8 17:15
謝謝提示
這樣是可以的,我其實有在用,不過用的太簡單,只是用currentproject.connection.execute來執行已定義的SQL語句.不知能這麼用.
當一個存儲過程需要輸入參數時,那怎麼用VAB語句來寫呢.???
還有就是DOCMD.OpenStoredProcedure這語句執行有什麼樣的限制呢.????
[此贴子已经被作者于2005-10-8 9:15:26编辑过]
作者: zyp 时间: 2005-10-8 22:19
以下是引用ADAM在2005-10-8 9:15:00的发言:
謝謝提示
這樣是可以的,我其實有在用,不過用的太簡單,只是用currentproject.connection.execute來執行已定義的SQL語句.不知能這麼用.
當一個存儲過程需要輸入參數時,那怎麼用VAB語句來寫呢.???
還有就是DOCMD.OpenStoredProcedure這語句執行有什麼樣的限制呢.????
這個用法允許有參數的,如:
currentproject.connection.execute("exec 存儲過程名 @參數1=值1,@參數2=值2,@參數3="& me.ID)
作者: ADAM 时间: 2005-10-9 00:22
十分感謝,正為這個問題煩惱著呢,查也不知哪兒查.哈......
再問一下.一個查詢窗體,上有控件:
查詢結果.(子表單)
查詢項目.(下拉式方塊)
查詢條件.(文字框)
查詢.(按鈕)
怎樣隨時實現按條件在查詢結果中顯示資料.
在MDB中,可以直接將文字框資料讀入子表單的資料來源中,在ADP中不行.
目前我想到個笨辦法,按下查詢按鈕后,將一個SQL陳述式賦值給子表單做數據源,那樣就可以讀取查詢條件,並按條件顯示,但這樣做,那VBA程式碼一點也不好讀,改也不好改.
另外一個就是將一個查詢先做好,表單載入時先存好,當按下查詢按鈕后,修改查詢的SQL語句,再更新一下子表單.關閉表單時再將查詢復原.
但在MDB中可以用CurrentDb.QueryDefs("QueryTemp").SQL ="..",來修改查詢的SQL語句,在ADP中不知用什麼屬性來改它.???
[此贴子已经被作者于2005-10-8 17:06:25编辑过]
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) |
Powered by Discuz! X3.3 |