Worksheet_Change - фиксирует изменения в вставленных значениях в несколько строк - PullRequest
0 голосов
/ 24 марта 2020

У меня есть код на рабочем листе, который сохранит введенное значение в базе данных. Однако, если пользователь вставляет несколько строк, в базу данных сохраняются только данные из одной строки. Как я могу получить это, чтобы сохранить данные из всех строк?

Пример кода:


Private Sub Worksheet_Change(ByVal Target As Range)

   On Error GoTo ErrorHandler
'Exit if selected row is the header row
If (Target.Row >= 7) Then
    If Not (Intersect(Target, Columns(Sheets("PRs RFQs POs").Range("Table_v_Sourcing_Report[Comments]").Column)) Is Nothing)  Then

        Application.EnableEvents = False
        'Define variables
        Dim cn As ADODB.Connection
        Dim rs As ADODB.Recordset
        Dim sConnString As String
        Dim CommentType As String
        Dim PO, PR, Num As String
        Dim POLine, PRLine, Line As Double

        sConnString = "database connection stuff"

        Set cn = New ADODB.Connection
        Set rs = New ADODB.Recordset
        cn.Open sConnString

        Num = Cells(Target.Row, Range("Table_v_Sourcing_Report[Req Num]").Column).Value
        Line = Cells(Target.Row, Range("Table_v_Sourcing_Report[Req Line]").Column).Value

        rs.Open "select * from t_sourcing_comments where type = 'PR' and num = " & Num & " and line = " & Line, cn, adOpenKeyset, adLockOptimistic

        If rs.EOF Then
            rs.AddNew
            rs("Num").Value = Num
            rs("Line").Value = Line
        End If

        rs("Comment").Value = Cells(Target.Row, Range("Table_v_Sourcing_Report[Comments]").Column).Value
        rs.Update

    End If
End If

    GoTo CleanUp 'skip error handler

ErrorHandler:
    MsgBox "Failed to save comment(s):" & Err.Description
CleanUp:
    On Error Resume Next
    Application.EnableEvents = True
    rs.Close
    Set rs = Nothing
    cn.Close
    Set cn = Nothing

End Sub```
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...