當前位置:首頁 » 存儲配置 » vba存儲過程

vba存儲過程

發布時間: 2022-07-09 22:11:41

㈠ 怎樣在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。下面簡單的回答下容易理解的幾個點。

  1. 在EXCEL中的使用方法:使用快捷鍵ALT+F11 或者在菜單欄中通過「開發工具」---「Visual Basic」選項卡都可以進入VBE窗口進行編輯VBA代碼。

  2. 如果找不到「開發工具」選項卡,對照2007和2010版本的EXCEL可以點擊「文件」(2007是圓形的OFFICE圖標)--「選項」---「自定義功能選項」,勾選「開發工具」並確定,如下圖

  3. 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=nothing

    2. 使用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

熱點內容
我的世界伺服器拔刀強化 發布:2024-10-08 22:59:37 瀏覽:429
伺服器換ip寶塔面板 發布:2024-10-08 22:58:56 瀏覽:432
如何通過伺服器搭建網站 發布:2024-10-08 22:58:54 瀏覽:239
賽爾編程 發布:2024-10-08 22:30:12 瀏覽:161
威馳車有哪些配置 發布:2024-10-08 22:19:32 瀏覽:564
手游源碼全套 發布:2024-10-08 21:39:41 瀏覽:474
大眾賬號密碼是多少 發布:2024-10-08 21:22:18 瀏覽:890
價格厚道香港多ip伺服器 發布:2024-10-08 21:22:16 瀏覽:283
android適配values 發布:2024-10-08 21:18:36 瀏覽:240
數控折彎機如何編程 發布:2024-10-08 20:34:40 瀏覽:62