vba執行存儲過程
.Parameters.Append .CreateParameter("@FromDate", adVarChar, 1, Len(CStr(Format(Me.FromDate, "yyyy-mm-dd"))), CStr(Format(Me.FromDate, "yyyy-mm-dd")))
我是這樣寫的, 輸入輸出用1和2即可
另外未定義的錯誤信息是VBA提示,還是SQL裡面的存儲過程提示?
㈡ 如何vba連接oracle
VBA連接oracle資料庫
小 'システム共通変數
Public ORA_SE As Object 'Oracleのセッションオブジェクト
Public ORA_DB As Object 'Oracleの接続オブジェクト
'******************************************************************************
' プロシージャ名 : Ora_Connect
' 概要 : Oracle接続
' パラメータ : なし
' 說明 :Oracleへの接続を行う
'******************************************************************************
'Public Sub Ora_Connect()
Public Function Ora_Connect()
Dim rt As Integer
On Error GoTo err
Set ORA_SE = CreateObject("OracleInProcServer.XOraSession")
'Set ORA_DB = ORA_SE.OpenDatabase("資料庫連接詞", "用戶名/密碼", 0&)
Set ORA_DB = ORA_SE.OpenDatabase("combcm", "combcm/combcm", 0&)
Exit Function
err:
End Function
'******************************************************************************
' プロシージャ名 : Ora_DisConnect
' 概要 : Oracle切斷
' パラメータ : なし
' 說明 : Oracleの切斷を行う
'******************************************************************************
'Public Sub Ora_DisConnect()
Public Function Ora_DisConnect()
Set ORA_SE = Nothing
Set ORA_DB = Nothing
End Function
Public Function getData()
'該當なし
If OraDynaset.EOF = True Then
Set OraDynaset = Nothing
Exit Function
Else
'2004/03/06 add rec_cntを2して2行目から書き出す
'rec_cnt = 2
'Do While Not OraDynaset.EOF
'For row_cnt = 0 To OraDynaset.Fields.Count - 1
' Cells(rec_cnt, row_cnt + 1).Value = OraDynaset(row_cnt).Value
'Next row_cnt
'2004/11/26 クリップボードを介した方法でスピードアップ対応。
'從資料庫中取出數據
OraDynaset.CopyToClipboard
Cells(2, 1).Select
ActiveSheet.Paste
rec_cnt = OraDynaset.RecordCount
'OraDynaset.DbMoveNext
'rec_cnt = rec_cnt + 1
'Loop
End If
end function
㈢ 在excel的VBA中,如何執行private類型的過程
帶有參數的過程不能直接執行,需要調用並傳遞參數。
你這個是事件過程,需要滿足觸發條件(選擇單元格)才能觸發。
就這個代碼來說,你可以在第一行設置斷點,然後到表格中隨便選個其他單元格就可以觸發了,然後再按 F8 調試
㈣ VBA:Excel 調用 MSSQL存儲過程並返回結果,點了按鈕啥反應也沒有,也不報錯,請問該怎麼寫啊
設置rsData gobjCmd.Execute
雖然不rsData.EOF的
rsData.MoveNext
迴路
這里是給rsdate分配,
然後是有循環游標向下移動,直到邊界
當然,什麼都不會發生
DO循環中可以添加你想要什麼
㈤ 6.3.3.2 Excel VBA資料庫的Execute方法
執行指定的查詢、SQL語句、存儲過程或特定提供者的文本等內容。對於非按行返回的命令字元巾:connection. Execute CommandText, RecordsAffected, Options對於按行返回的命令字元串:Set recordset一connection. Execute (CommandText. RecordsAffected,Options)今f(CommandText字元串包含要執行的SQL語句、表名、存儲過程或特定提供者的文本。RecordsAffected可選,長整型變一,提供者向其返回操作所影響的記錄效目。Options可選,長整獄位.指示提供者應如何計算Commandlcxt參數.可為表6.2中的位。使用Correction對象的Execute方法,可執行任何在指定連接的CommandTcxt今數中傳送給方法的查詢。如果CommandText今數指定按行返回的查詢,執行產生的任何結果將存儲在新的RecordsetX4象中。如果命令不是按行返回的查詢。
㈥ 在vba執行程序期間,用什麼臨時存儲數值
運行期間,如果為了提高效率,盡可能使用變數存儲數據
特別是表格處理,可以考慮使用數組,動態數組,字典等
不過不考慮效率,也可以使用表格,文本等臨時存儲
具體使用什麼存儲,看樓主的具體需求。
㈦ EXCEL中VBA怎麼執行SQL SERVER 2005存儲過程
您好:
給您找了一段VBA的代碼,請參考,未測試。
Subtest()
DimstrconAsString
DimcnAsNewADODB.Connection
DimrsAsNewADODB.Recordset
strcon="Driver={SQLServer};Server=**********;UID=**;PWD=*********;DataBase=***"
cn.Openstrcon
strsql="exec存儲過程名'"&Sheet2.Cells(2,2).Value&"','"&Sheet2.Cells(3,2).Value&"'"'參數可選
rs.Openstrsql,cn,adOpenDynamic,adLockBatchOptimistic
r=6
Sheet2.Range(Cells(6,1),Cells(50000,20)).ClearContents
Fori=0Tors.Fields.Count-1
Sheet2.Cells(5,i+1).Value=rs.Fields(i).Name
Nexti
WhileNotrs.EOF
Fori=0Tors.Fields.Count-1
Sheet2.Cells(r,i+1).Rows.Value=rs.Fields(i).Value
Nexti
r=r+1
rs.MoveNext
Wend
EndSub
㈧ 請教各位大神,在excel里輸入VBA代碼,使執行宏可以刪除在SQL中存儲的數據,如何實現呢
VBA操作跟VB相似
㈨ VBA Project:
Private Sub CommandButton1_Click()
Dim a, b, c, d, e, f
a = Range("A1")
b = Range("B1")
c = Range("C1")
d = Range("D1")
e = Range("E1")
f = Range("F1")
Call 存儲過程(a, b, c, d, e, f)
End Sub
Sub 存儲過程(a, b, c, d, e, f)
'存儲過程代碼
End Sub