Код работает нормально при шаге, но бомбы при простом запуске - PullRequest
0 голосов
/ 19 марта 2020

У меня есть программа Excel VBA, над которой я работаю, которая, кажется, работает, только когда я использую F8, чтобы пройти программу. Я могу сделать это и go от начала до конца sh в программе, и у него нет проблем. Однако, если я нажимаю F5 и запускаю программу, она взрывается, заставляя Excel закрыться и перезапуститься (сообщение об ошибке не выдается): (

Я сузил это до того, что происходит в одном конкретном модуле, но не хватает какого-либо указание на то, что это, я не могу найти, что не так.

Любая помощь очень очень ценится

Модуль, который, кажется, дает мне проблему: 1007 *

Sub gwLoadWheels(ByRef db As DAO.Database, ByRef pColl As clsParts, ByRef pCrib As clsCrib, ByRef pExcept As clsExceptions)
    Dim i As Long
    Dim rs As DAO.Recordset
    Dim sSQL As String
    Dim iSH As Worksheet
    Dim cWheel As clsCribItem
    Dim rPart As clsPart
    Dim rExcept As clsException
        On Error GoTo ErrHandler
        For Each rPart In pColl
            sSQL = "SQL String Removed, Verified using SQL Query in MS Access"
            Set rs = db.OpenRecordset(sSQL, dbOpenSnapshot, dbReadOnly)
            If Not rs.EOF Then
                rs.MoveLast
                rs.MoveFirst
                For i = 1 To rs.RecordCount
                    If pCrib.ItemExists(rs!wheel_ID) = False Then
                        With pCrib
                            .AddItem (rs!wheel_ID)
                            With .Item(rs!wheel_ID)
                                .AveragePieces = rs!Avg_Pieces
                                .Burn = rs!BurnQty
                                .Cost = rs!AvgUnitCost
                                .HoleDiameter = rs!Hole
                                .OnHand = rs!OnHand
                                .OnOrder = rs!OnOrder
                                .OrderQty = rs!OrderQty
                                .OutsideDiameter = rs!OD
                                .Radius = rs!Radius
                                .Spec = rs!Specification
                                .Treatment = rs!Treat
                                .Width = rs!Width
                                .TotalPieces = rs!Number_Per * rPart.Qty
                            End With
                        End With
                    Else
                        pCrib.Item(rs!wheel_ID).TotalPieces = pCrib.Item(rs!wheel_ID).TotalPieces + (rs!Number_Per * rPart.Qty)
                    End If
                Next i
            Else
                With pExcept
                    .AddException (rPart.PartID)
                    .Exception(rPart.PartID).Qty = .Exception(rPart.PartID).Qty + rPart.Qty
                End With
            End If
            rs.Close
            Set rs = Nothing
        Next rPart
        GoTo SubExit
ErrHandler:
        MsgBox "Error: " & Err.Number & vbCrLf & "Description:" & vbCrLf & Err.Description, vbCritical, "Error Info"
        i = i
SubExit:
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...