簡體   English   中英

從新工作表執行ADO宏時出現問題

[英]Issues executing a ADO Macro from new sheet

我試圖從一個帶有按鈕的新工作表中執行一個宏,以便它在另一個工作表中運行(名為“ ARF導出”)。

不幸的是,我不知道如何設置要在其中運行宏的工作表(“ ARF導出”)。 請您告訴我如何進行?

當我在另一個工作表中運行此代碼時遇到的錯誤是:

錯誤3265在過程export_data中與請求的名稱或順序相對應的集合中找不到項目

當我進入Debug時,直到最后我都沒有收到錯誤,但是它跳過了第38行上的For循環,接下來我

for x = 2 To nextrow
        DatabaseData.AddNew
        For i = 1 To 35
            DatabaseData(Cells(1, i).Value) = Worksheets("ARF Export").Cells(x, i).Value
            Next i
        DatabaseData.Update
    Next x

下面的所有代碼

Option Explicit

Sub CopyDatatoAccess()
    Dim DatabaseConn As ADODB.Connection
    Dim DatabaseData As ADODB.Recordset
    Dim Pathway
    Dim x As Long, i As Long
    Dim nextrow As Long


    On Error GoTo errorhandler:

    Pathway = Worksheets("ARF Export").Range("AR2").Value
    nextrow = Worksheets("ARF Export").Range("As2").Value


    Set DatabaseConn = New ADODB.Connection

    If Worksheets("ARF Export").Range("A2").Value = "" Then
    MsgBox "ARF form is not present for Upload"
    Exit Sub
    End If

    DatabaseConn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Pathway

    Set DatabaseData = New ADODB.Recordset

DatabaseData.Open Source:="ARFs", _
    ActiveConnection:=DatabaseConn, _
    CursorType:=adOpenDynamic, _
    LockType:=adLockOptimistic, _
    Options:=adCmdTable

For x = 2 To nextrow
    DatabaseData.AddNew
    For i = 1 To 35
        DatabaseData(Cells(1, i).Value) = Worksheets("ARF Export").Cells(x, i).Value
        Next i
        DatabaseData.Update
    Next x

    DatabaseData.Close
    DatabaseConn.Close

    Set DatabaseData = Nothing
    Set DatabaseConn = Nothing

MsgBox "The ARF is now uploaded"
Application.ScreenUpdating = True

Worksheets("ARF Export").Cells.Range("AK2").Value = Worksheets("ARF Export").Cells.Range("AK4").Value

Worksheets("ARF Export").Cells.Range("AK5").Value = Worksheets("ARF Export").Cells.Range("AK4").Value + 1

   On Error GoTo 0
   Exit Sub
errorhandler:

    Set DatabaseData = Nothing
    Set DatabaseConn = Nothing
    MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure Export_Data"
    End Sub

謝謝您的幫助

-原來我這樣做后就需要引用DatabaseData(Cells(1, i).Value)

For x = 2 To nextrow
    DatabaseData.AddNew
    For i = 1 To 35
        DatabaseData(Worksheets("ARF Export").Cells(1, i).Value) = Worksheets("ARF Export").Cells(x, i).Value
        Next i
        DatabaseData.Update
    Next x

效果很好。 謝謝大家的幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM