vba存储过程
㈠ 怎样在VBA中调用MSsql中的自定义函数
sqlserver存储过程可以将执行结果通过返回值返回给调用他得程序得,而Access中无论是mdb还是adp都可以用ado执行存储过程并获得返回值。
sqlserver中得函数能在sqlserver里面执行吗?能!存储过程能调用函数吗?能!调用了函数能够获得函数得返回值吗?能!能把函数得返回值赋值给存储过程得返回值吗?能!VBA能调用存储过程吗?能!VBa能取得返回值吗?能!
这不就结了???!!!!!
㈡ vba中怎样写执行sql带参的存储过程
.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里面的存储过程提示?
㈢ access的adp链接SQL后,如何在VBA中执行SQL中的存储过程
声明command对象, 你网络VB调用SQL存储过程, 语法是一样的,很多资料可以参考,比如
http://wenku..com/view/c44b8dc5bb4cf7ec4afed07c.html
㈣ 在vba执行程序期间,用什么临时存储数值
运行期间,如果为了提高效率,尽可能使用变量存储数据
特别是表格处理,可以考虑使用数组,动态数组,字典等
不过不考虑效率,也可以使用表格,文本等临时存储
具体使用什么存储,看楼主的具体需求。
㈤ VBA:Excel 调用 MSSQL存储过程并返回结果,点了按钮啥反应也没有,也不报错,请问该怎么写啊
设置rsData gobjCmd.Execute
虽然不rsData.EOF的
rsData.MoveNext
回路
这里是给rsdate分配,
然后是有循环光标向下移动,直到边界
当然,什么都不会发生
DO循环中可以添加你想要什么
㈥ VBA的语法格式,以及在excel中是如何使用的
这个问题的含金量就大了,首先VBA是OFFICE软件内置的二次开发功能,以VB代码作为编程语言,编辑窗口称为VBE。下面简单的回答下容易理解的几个点。
在EXCEL中的使用方法:使用快捷键ALT+F11 或者在菜单栏中通过“开发工具”---“Visual Basic”选项卡都可以进入VBE窗口进行编辑VBA代码。
如果找不到“开发工具”选项卡,对照2007和2010版本的EXCEL可以点击“文件”(2007是圆形的OFFICE图标)--“选项”---“自定义功能选项”,勾选“开发工具”并确定,如下图
sub示例()
msgboxsheet1.name'调用sheet1的名称,并弹出。这是调用对象的属性
shett1.name="表1"'对shhet1进行命名,这是对象的赋值方法
endsub㈦ 如何在VBA中调用存储过程
方法有几种
1、
SetConn=Server.CreateObject("ADODB.Connection")
Conn.openstrConn
iferr.number<>0then
response.Write"数据库链接失败。"'&err.Description
response.End
endIf
setRs=server.CreateObject("adodb.recordset")
'调用存储过程:[dbo].[Usp_GetUserMenu]
strsql="[dbo].[Usp_GetUserMenu]@UserID='"&Session(g_SessionName&"_UserID")&"'"
'这句话是关键,CursorLocation意思是游标本地化
rs.CursorLocation=3
Rs.openstrsql,conn,1,1
iferr.number<>0Then
conn.close
setconn=nothing
endif
fori=1tors.RecordCount
iMenuType=rs("MenuType")
......
rs.MoveNext
next
rs.Close
setrs=nothing
conn.close
setconn=nothing2. 使用adobd.Command对象
VB6.0调用存储过程的例子
(说明:以下代码摘自微软的MSDN,经过测试没问题。使用该方法的前提条件是必须知道将要使用的参数化命令的详细情况。)
打开Form1窗体,Copy以下的代码到窗体中,该段代码将测试存储过程ADOTestRPE的返回值、输入参数及输出参数,测试的过程中,可能需要修改链接字符串。
SubCreateParms()
DimADOCmdAsNewADODB.Command
DimADOPrmAsNewADODB.Parameter
DimADOConAsADODB.Connection
DimADORsAsADODB.Recordset
DimsParmNameAsString
DimstrConnectAsString
DimrStrAsString
OnErrorGoToErrHandler
strConnect="driver={SQLServer};server=(local);uid=sa;pwd=;database=pubs"
SetADOCon=NewADODB.Connection
WithADOCon
.Provider="MSDASQL"
.CursorLocation=adUseServer'MustuseServersidecursor.
.ConnectionString=strConnect
.Open
EndWith
SetADOCmd.ActiveConnection=ADOCon
WithADOCmd
.CommandType=adCmdStoredProc
.CommandText="ADOTestRPE"
EndWith
'.
sParmName="Return"
SetADOPrm=ADOCmd.CreateParameter(sParmName,adInteger,_
adParamReturnValue,,0)
ADOCmd.Parameters.AppendADOPrm
ADOCmd.Parameters(sParmName).Value=-1
'
'parameter.
sParmName="Output"
SetADOPrm=ADOCmd.CreateParameter(sParmName,adInteger,_
adParamOutput)
ADOCmd.Parameters.AppendADOPrm
ADOCmd.Parameters(sP
armName).Value=999
'Parameter2
sParmName="R1Num"'.
SetADOPrm=ADOCmd.CreateParameter(sParmName,adInteger,_
adParamInput)
ADOCmd.Parameters.AppendADOPrm
ADOCmd.Parameters(sParmName).Value=1
'Parameter3
sParmName="P1Num"'.
SetADOPrm=ADOCmd.CreateParameter(sParmName,adInteger,_
adParamInput)
ADOCmd.Parameters.AppendADOPrm
ADOCmd.Parameters(sParmName).Value=0
'Parameter4
sParmName="E1Num"'
'1.
SetADOPrm=ADOCmd.CreateParameter(sParmName,adInteger,_
adParamInput)
ADOCmd.Parameters.AppendADOPrm
ADOCmd.Parameters(sParmName).Value=0
'Parameter5
sParmName="R2Num"'.
SetADOPrm=ADOCmd.CreateParameter(sParmName,adInteger,_
adParamInput)
ADOCmd.Parameters.AppendADOPrm
ADOCmd.Parameters(sParmName).Value=2
'Parameter6
sParmName="P2Num"'.
SetADOPrm=ADOCmd.CreateParameter(sParmName,adInteger,_
adParamInput)
ADOCmd.Parameters.AppendADOPrm
ADOCmd.Parameters(sParmName).Value=0
'Parameter7
sParmName="E2Num"'
'2.
SetADOPrm=ADOCmd.CreateParameter(sParmName,adInteger,_
adParamInput)
ADOCmd.Parameters.AppendADOPrm
ADOCmd.Parameters(sParmName).Value=0
SetADORs=ADOCmd.Execute
DoWhile(NotADORsIsNothing)
IfADORs.State=adStateClosedThenExitDo
WhileNotADORs.EOF
Fori=0ToADORs.Fields.Count-1
rStr=rStr&":"&ADORs(i)
Nexti
Debug.PrintMid(rStr,3,Len(rStr))
ADORs.MoveNext
rStr=""
Wend
Debug.Print"----------------------"
SetADORs=ADORs.NextRecordset
Loop
Debug.Print"Return:"&ADOCmd.Parameters("Return").Value
Debug.Print"Output:"&ADOCmd.Parameters("Output").Value
GoToShutdown
ErrHandler:
CallErrHandler(ADOCon)
ResumeNext
Shutdown:
SetADOCmd=Nothing
SetADOPrm=Nothing
SetADORs=Nothing
SetADOCon=Nothing
EndSub
PrivateSubCommand1_Click()
CallCreateParms
EndSub
SubErrHandler(objConAsObject)
DimADOErrAsADODB.Error
DimstrErrorAsString
ForEachADOErrInobjCon.Errors
strError="Error#"&ADOErr.Number&vbCrLf&ADOErr.Description_
&vbCr&_
"(Source:"&ADOErr.Source&")"&vbCr&_
"(SQLState:"&ADOErr.SQLState&")"&vbCr&_
"(NativeError:"&ADOErr.NativeError&")"&vbCr
IfADOErr.HelpFile=""Then
strError=strError&"NoHelpfileavailable"&vbCr&vbCr
Else
strError=strError&"(HelpFile:"&ADOErr.HelpFile&")"_
&vbCr&"(HelpContext:"&ADOErr.HelpContext&")"&_
vbCr&vbCr
EndIf
Debug.PrintstrError
Next
objCon.Errors.Clear
EndSub㈧ 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中“ontime”如何使用,语法怎样,我是初学者,请高手尽量说详细
Application.OnTime 方法
安排一个过程在将来的特定时间运行(既可以是具体指定的某个时间,也可以是指定的一段时间之后)。
语法
表达式.OnTime(EarliestTime, Procere, LatestTime, Schele)
表达式 一个代表 Application 对象的变量。
参数
名称 必选/可选 数据类型 描述
EarliestTime 必选 Variant 希望此过程运行的时间。
Procere 必选 String 要运行的过程名。
LatestTime 可选 Variant 过程开始运行的最晚时间。例如,如果 LatestTime 参数设置为 EarliestTime + 30,且当到达 EarliestTime 时间时,由于其他过程处于运行状态而导致 Microsoft Excel 不能处于“就绪”、“复制”、“剪切”或“查找”模式,则 Microsoft Excel 将等待 30 秒让第一个过程先完成。如果 Microsoft Excel 不能在 30 秒内回到“就绪”模式,则不运行此过程。如果省略该参数,Microsoft Excel 将一直等待到可以运行该过程为止。
Schele 可选 Variant 如果为 True,则预定一个新的 OnTime 过程。如果为 False,则清除先前设置的过程。默认值为 True。
说明
使用 Now + TimeValue(time) 可安排经过一段时间(从现在开始计时)之后运行某个过程。使用 TimeValue(time) 可安排某个过程只运行指定的时间。
示例
本示例设置从现在开始 15 秒后运行 my_Procere。
Visual Basic for Applications
Application.OnTime Now + TimeValue("00:00:15"), "my_Procere"
本示例设置 my_Procere 在下午 5 点开始运行。
Visual Basic for Applications
Application.OnTime TimeValue("17:00:00"), "my_Procere"
本示例撤消前一个示例对 OnTime 的设置。
Visual Basic for Applications
Application.OnTime EarliestTime:=TimeValue("17:00:00"), _
Procere:="my_Procere", Schele:=False
其实像这种EXCEL VBA内置函数,你可以打开帮助查找F1