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