当按下按钮运行过程7_Click()时,该程序运行5个小时以打开文件.csv。我如何提高速度

时间:2019-05-21 07:38:59

标签: ms-access access-vba

当按下按钮来运行程序Кнопка7_Click()时,该程序将工作5个小时以打开文件.csv。如何提高打开.csv文件的速度?

.csv文件的示例         MKMASTER,MKMASTER,DESC,PNC,COST,CORE,LIST,1、2、3、4         84651TL0E01ZB,84651TL0E01ZB,LNG L. NH85L ,, 156.67,0,184.97 ,,,,         84651TL0E01ZA,84651TL0E01ZA,LNG组件L NH85L ,, 131.49,0,178.01 ,,,,         84651TK4A01ZA,84651TK4A01ZA,LNG L. NH85L ,, 84.53,0,104.92 ,,,, 打开csv时

的程序运行缓慢
 Private Sub Кнопка7_Click()
    Dim dbName As String
    Dim strFileName As String
    Dim i&, j&, s$, v, v1, k As Long
    Dim Subsru As Recordset, Полe(20) As String
    Set Subsru = DBEngine.Workspaces(0).Databases(0).OpenRecordset("SUBARU", DB_OPEN_DYNASET)
    Dim DESC As String, MKMASTER As String, Поле2 As String, NEW1 As String, COST As String, ABCD As String, CORE As String, LIST As String, mmm As String
    strFileName = FindNorthwind(dbName, "*.csv")
    If strFileName = "" Then
        MsgBox ("Нет выбранного файла")
      Else
             i = FreeFile: Open strFileName For Input As i: s = Input(LOF(i), i): Close i
              v = Split(s, vbLf)
        CurrentDb.Execute "DELETE SUBARU.* FROM SUBARU"
        Dim arr(0 To 4)
         For i = LBound(v) To UBound(v)
            If i > 0 Then
                SysCmd acSysCmdSetStatus, "Формирование  " & i
                s = v(i)
                If s = "" Then
                    Exit For
                End If
                If UBound(Split(s, ",")) = 10 Then
                    Subsru.AddNew
                    Subsru!MKMASTER = Nz(CuttingFromLine(1, ",", s))
                    mmm = CuttingFromLine(2, ",", s)
                    mmm = CuttingFromLine(2, ",", mmm)
                    Subsru![DESC] = Nz(CuttingFromLine(1, ",", mmm))
                    mmm = CuttingFromLine(2, ",", mmm)
                    Subsru![NEW#] = Nz(CuttingFromLine(1, ",", mmm))
                    mmm = CuttingFromLine(2, ",", mmm)
                    If Nz(CuttingFromLine(1, ",", mmm)) = "" Then
                        Subsru!COST = 0
                    Else
                        Subsru!COST = CCur(Nz(CuttingFromLine(1, ",", mmm)))
                    End If
                    mmm = CuttingFromLine(2, ",", mmm)
                    CORE = Nz(CuttingFromLine(1, ",", mmm))
                    If Nz(CORE) = "" Then
                        Subsru![CORE] = 0
                    Else
                        Subsru![CORE] = CCur(CORE)
                    End If

                    mmm = CuttingFromLine(2, ",", mmm)
                    If Nz(CuttingFromLine(1, ",", mmm)) = "" Then
                        Subsru!LIST = 0
                    Else
                        Subsru!LIST = CCur(Nz(CuttingFromLine(1, ",", mmm)))
                    End If


                    Subsru.Update
                Else

                    MKMASTER = Nz(CuttingFromLine(1, ",", s))

                    mmm = CuttingFromLine(2, ",", s)
                    Поле2 = Nz(CuttingFromLine(1, ",", mmm))
                    mmm = CuttingFromLine(2, ",", mmm)
                    For j = 0 To 20
                        Полe(j) = Nz(CuttingFromLine(1, ",", mmm))
                        mmm = CuttingFromLine(2, ",", mmm)
                        If Nz(mmm) = "" Then
                            Полe(j + 1) = ""
                            Exit For
                        End If
                        If InStr(1, mmm, ",") = 0 Then
                            Полe(j + 1) = mmm
                            Exit For
                        End If
                    Next
                    LIST = Полe(j - 3)
                    CORE = Полe(j - 4)
                    COST = Полe(j - 5)
                    NEW1 = Полe(j - 6)
                    j = j - 6
                    DESC = Nz(Полe(0))
                    For k = 1 To j - 1
                        If Nz(Полe(k)) <> "" Then DESC = DESC & "," & Nz(Полe(k))
                    Next

                        "SELECT '" & DESC & "','" & MKMASTER & "','" & NEW1 & "','" & COST & "','" & LIST & "'"
                    Subsru.AddNew
                    Subsru![DESC] = DESC
                    Subsru!MKMASTER = MKMASTER
                    Subsru![NEW#] = NEW1
                    If Nz(CORE) = "" Then
                        Subsru![CORE] = 0
                    Else
                        Subsru![CORE] = CCur(CORE)
                    End If
                    If Nz(COST) = "" Then
                        Subsru!COST = 0
                    Else
                        Subsru!COST = CCur(Nz(COST))
                    End If
                    If Nz(LIST) = "" Then
                        Subsru!LIST = 0
                    Else
                        Subsru!LIST = CCur(Nz(LIST))
                    End If
                    Subsru.Update


                End If
            End If
        Next i
    End If
    MsgBox ("Данные загружены")
Exit_Кадр_Click:
    Exit Sub

Err_Кадр_Click:
    MsgBox err.Description & " обработка строки " & Str(i + 1)
    Resume Exit_Кадр_Click
End Sub
Function CuttingFromLine(Serial As Byte, Symbol As String, Line As String)
    Dim i As Integer, j As Integer
    On Error GoTo err_
    i = 0
    j = 0
    j = Len(Line)
    i = InStr(1, Line, Symbol)
    If i = 0 Then MsgBox ("Не найден разделитель " & Symbol & " в строке :" & Line): GoTo ext
    If Serial = 1 Then
        CuttingFromLine = Mid(Line, 1, i - 1)
      Else
        CuttingFromLine = Mid(Line, i + 1, j - i)
    End If
    Exit Function
ext:
    CuttingFromLine = ""
    Exit Function
err_:
    MsgBox (err.Description & " " & err.Number)
    GoTo ext
End Function

Private Sub Кнопка8_Click()
    If Nz(Me.Фирма) = "" Then MsgBox ("Выберите фирму"): Exit Sub

    If MsgBox("Пересчитать результат", vbYesNo) = vbNo Then Exit Sub
    If Сущ_таб("Связи") Then DoCmd.DeleteObject acTable, "Связи"

    CurrentDb.Execute "Результат_итог"
    CurrentDb.Execute "INSERT INTO Итого ( Артикул, Наименование, Цена1, Цена2, Фирма, CORE ) SELECT Связи.Результат_SUBARU_MKMASTER, Связи.DESC, CCur(nz(Связи.COST)), CCur(nz(Связи.LIST)), '" & Me.Фирма & "', Связи.CORE " & _
        "FROM Связи WHERE (((Связи.Результат_SUBARU_MKMASTER) Is Not Null)) ORDER BY Связи.Результат_SUBARU_MKMASTER"

    CurrentDb.Execute "INSERT INTO Итого ( Артикул, Наименование, Цена1, Цена2, Фирма, CORE ) SELECT Связи.Результат_SUBARU_1_MKMASTER, Связи.DESC, CCur(nz(Связи.COST)), CCur(nz(Связи.LIST)), '" & Me.Фирма & "', Связи.CORE " & _
        "FROM Связи WHERE (((Связи.Результат_SUBARU_1_MKMASTER) Is Not Null)) ORDER BY Связи.Результат_SUBARU_1_MKMASTER"
    CurrentDb.Execute "INSERT INTO Итого ( Артикул, Наименование, Цена1, Цена2, Фирма, CORE ) SELECT Связи.Результат_SUBARU_2_MKMASTER, Связи.DESC, CCur(nz(Связи.COST)), CCur(nz(Связи.LIST)), '" & Me.Фирма & "', Связи.CORE " & _
        "FROM Связи WHERE (((Связи.Результат_SUBARU_2_MKMASTER) Is Not Null)) ORDER BY Связи.Результат_SUBARU_2_MKMASTER"
    CurrentDb.Execute "INSERT INTO Итого ( Артикул, Наименование, Цена1, Цена2, Фирма, CORE ) SELECT Связи.Результат_SUBARU_3_MKMASTER, Связи.DESC, CCur(nz(Связи.COST)), CCur(nz(Связи.LIST)), '" & Me.Фирма & "', Связи.CORE " & _
        "FROM Связи WHERE (((Связи.Результат_SUBARU_3_MKMASTER) Is Not Null)) ORDER BY Связи.Результат_SUBARU_3_MKMASTER"
    CurrentDb.Execute "INSERT INTO Итого ( Артикул, Наименование, Цена1, Цена2, Фирма, CORE ) SELECT Связи.Результат_SUBARU_4_MKMASTER, Связи.DESC, CCur(nz(Связи.COST)), CCur(nz(Связи.LIST)), '" & Me.Фирма & "', Связи.CORE " & _
        "FROM Связи WHERE (((Связи.Результат_SUBARU_4_MKMASTER) Is Not Null)) ORDER BY Связи.Результат_SUBARU_4_MKMASTER"
    CurrentDb.Execute "INSERT INTO Итого ( Артикул, Наименование, Цена1, Цена2, Фирма, CORE ) SELECT Связи.Результат_SUBARU_5_MKMASTER, Связи.DESC, CCur(nz(Связи.COST)), CCur(nz(Связи.LIST)), '" & Me.Фирма & "', Связи.CORE " & _
        "FROM Связи WHERE (((Связи.Результат_SUBARU_5_MKMASTER) Is Not Null)) ORDER BY Связи.Результат_SUBARU_5_MKMASTER"
    CurrentDb.Execute "INSERT INTO Итого ( Артикул, Наименование, Цена1, Цена2, Фирма, CORE ) SELECT Связи.Результат_SUBARU_6_MKMASTER, Связи.DESC, CCur(nz(Связи.COST)), CCur(nz(Связи.LIST)), '" & Me.Фирма & "', Связи.CORE " & _
        "FROM Связи WHERE (((Связи.Результат_SUBARU_6_MKMASTER) Is Not Null)) ORDER BY Связи.Результат_SUBARU_6_MKMASTER"
    CurrentDb.Execute "INSERT INTO Итого ( Артикул, Наименование, Цена1, Цена2, Фирма, CORE ) SELECT Связи.Результат_SUBARU_7_MKMASTER, Связи.DESC, CCur(nz(Связи.COST)), CCur(nz(Связи.LIST)), '" & Me.Фирма & "', Связи.CORE " & _
        "FROM Связи WHERE (((Связи.Результат_SUBARU_7_MKMASTER) Is Not Null)) ORDER BY Связи.Результат_SUBARU_7_MKMASTER"
    CurrentDb.Execute "INSERT INTO Итого ( Артикул, Наименование, Цена1, Цена2, Фирма, CORE ) SELECT Связи.Результат_SUBARU_8_MKMASTER, Связи.DESC, CCur(nz(Связи.COST)), CCur(nz(Связи.LIST)), '" & Me.Фирма & "', Связи.CORE " & _
        "FROM Связи WHERE (((Связи.Результат_SUBARU_8_MKMASTER) Is Not Null)) ORDER BY Связи.Результат_SUBARU_8_MKMASTER"
    CurrentDb.Execute "INSERT INTO Итого ( Артикул, Наименование, Цена1, Цена2, Фирма, CORE ) SELECT Связи.Результат_SUBARU_9_MKMASTER, Связи.DESC, CCur(nz(Связи.COST)), CCur(nz(Связи.LIST)), '" & Me.Фирма & "', Связи.CORE " & _
        "FROM Связи WHERE (((Связи.Результат_SUBARU_9_MKMASTER) Is Not Null)) ORDER BY Связи.Результат_SUBARU_9_MKMASTER"
    CurrentDb.Execute "INSERT INTO Итого ( Артикул, Наименование, Цена1, Цена2, Фирма, CORE ) SELECT Связи.Результат_SUBARU_10_MKMASTER, Связи.DESC, CCur(nz(Связи.COST)), CCur(nz(Связи.LIST)), '" & Me.Фирма & "', Связи.CORE " & _
        "FROM Связи WHERE (((Связи.Результат_SUBARU_10_MKMASTER) Is Not Null)) ORDER BY Связи.Результат_SUBARU_10_MKMASTER"
    CurrentDb.Execute "INSERT INTO Итого ( Артикул, Наименование, Цена1, Цена2, Фирма, CORE ) SELECT Связи.Результат_SUBARU_11_MKMASTER, Связи.DESC, CCur(nz(Связи.COST)), CCur(nz(Связи.LIST)), '" & Me.Фирма & "', Связи.CORE " & _
        "FROM Связи WHERE (((Связи.Результат_SUBARU_11_MKMASTER) Is Not Null)) ORDER BY Связи.Результат_SUBARU_11_MKMASTER"
    CurrentDb.Execute "INSERT INTO Итого ( Артикул, Наименование, Цена1, Цена2, Фирма, CORE ) SELECT Связи.Результат_SUBARU_12_MKMASTER, Связи.DESC, CCur(nz(Связи.COST)), CCur(nz(Связи.LIST)), '" & Me.Фирма & "', Связи.CORE " & _
        "FROM Связи WHERE (((Связи.Результат_SUBARU_12_MKMASTER) Is Not Null)) ORDER BY Связи.Результат_SUBARU_12_MKMASTER"
    CurrentDb.Execute "INSERT INTO Итого ( Артикул, Наименование, Цена1, Цена2, Фирма, CORE ) SELECT Связи.Результат_SUBARU_13_MKMASTER, Связи.DESC, CCur(nz(Связи.COST)), CCur(nz(Связи.LIST)), '" & Me.Фирма & "', Связи.CORE " & _
        "FROM Связи WHERE (((Связи.Результат_SUBARU_13_MKMASTER) Is Not Null)) ORDER BY Связи.Результат_SUBARU_13_MKMASTER"
    CurrentDb.Execute "INSERT INTO Итого ( Артикул, Наименование, Цена1, Цена2, Фирма, CORE ) SELECT Связи.Результат_SUBARU_14_MKMASTER, Связи.DESC, CCur(nz(Связи.COST)), CCur(nz(Связи.LIST)), '" & Me.Фирма & "', Связи.CORE " & _
        "FROM Связи WHERE (((Связи.Результат_SUBARU_14_MKMASTER) Is Not Null)) ORDER BY Связи.Результат_SUBARU_14_MKMASTER"
    CurrentDb.Execute "INSERT INTO Итого ( Артикул, Наименование, Цена1, Цена2, Фирма, CORE ) SELECT Связи.Результат_SUBARU_15_MKMASTER, Связи.DESC, CCur(nz(Связи.COST)), CCur(nz(Связи.LIST)), '" & Me.Фирма & "', Связи.CORE " & _
        "FROM Связи WHERE (((Связи.Результат_SUBARU_15_MKMASTER) Is Not Null)) ORDER BY Связи.Результат_SUBARU_15_MKMASTER"
    CurrentDb.Execute "INSERT INTO Итого ( Артикул, Наименование, Цена1, Цена2, Фирма, CORE ) SELECT Связи.Результат_SUBARU_16_MKMASTER, Связи.DESC, CCur(nz(Связи.COST)), CCur(nz(Связи.LIST)), '" & Me.Фирма & "', Связи.CORE " & _
        "FROM Связи WHERE (((Связи.Результат_SUBARU_16_MKMASTER) Is Not Null)) ORDER BY Связи.Результат_SUBARU_16_MKMASTER"
    CurrentDb.Execute "INSERT INTO Итого ( Артикул, Наименование, Цена1, Цена2, Фирма, CORE ) SELECT Связи.Результат_SUBARU_17_MKMASTER, Связи.DESC, CCur(nz(Связи.COST)), CCur(nz(Связи.LIST)), '" & Me.Фирма & "', Связи.CORE " & _
        "FROM Связи WHERE (((Связи.Результат_SUBARU_17_MKMASTER) Is Not Null)) ORDER BY Связи.Результат_SUBARU_17_MKMASTER"
    CurrentDb.Execute "INSERT INTO Итого ( Артикул, Наименование, Цена1, Цена2, Фирма, CORE ) SELECT Связи.Результат_SUBARU_18_MKMASTER, Связи.DESC, CCur(nz(Связи.COST)), CCur(nz(Связи.LIST)), '" & Me.Фирма & "', Связи.CORE " & _
        "FROM Связи WHERE (((Связи.Результат_SUBARU_18_MKMASTER) Is Not Null)) ORDER BY Связи.Результат_SUBARU_18_MKMASTER"
    CurrentDb.Execute "INSERT INTO Итого ( Артикул, Наименование, Цена1, Цена2, Фирма, CORE ) SELECT Связи.Результат_SUBARU_19_MKMASTER, Связи.DESC, CCur(nz(Связи.COST)), CCur(nz(Связи.LIST)), '" & Me.Фирма & "', Связи.CORE " & _
        "FROM Связи WHERE (((Связи.Результат_SUBARU_19_MKMASTER) Is Not Null)) ORDER BY Связи.Результат_SUBARU_19_MKMASTER"
    CurrentDb.Execute "INSERT INTO Итого ( Артикул, Наименование, Цена1, Цена2, Фирма, CORE ) SELECT Связи.Результат_SUBARU_20_MKMASTER, Связи.DESC, CCur(nz(Связи.COST)), CCur(nz(Связи.LIST)), '" & Me.Фирма & "', Связи.CORE " & _
        "FROM Связи WHERE (((Связи.Результат_SUBARU_20_MKMASTER) Is Not Null)) ORDER BY Связи.Результат_SUBARU_20_MKMASTER"
    CurrentDb.Execute "INSERT INTO Итого ( Артикул, Наименование, Цена1, Цена2, Фирма, CORE ) SELECT Связи.SUBARU_21_MKMASTER, Связи.DESC, CCur(nz(Связи.COST)), CCur(nz(Связи.LIST)), '" & Me.Фирма & "', Связи.CORE " & _
        "FROM Связи WHERE (((Связи.SUBARU_21_MKMASTER) Is Not Null)) ORDER BY Связи.SUBARU_21_MKMASTER"
    CurrentDb.Execute "INSERT INTO Итого ( Артикул, Наименование, Цена1, Цена2, Фирма, CORE ) SELECT Связи.SUBARU_22_MKMASTER, Связи.DESC, CCur(nz(Связи.COST)), CCur(nz(Связи.LIST)), '" & Me.Фирма & "', Связи.CORE " & _
        "FROM Связи WHERE (((Связи.SUBARU_22_MKMASTER) Is Not Null)) ORDER BY Связи.SUBARU_22_MKMASTER"
    CurrentDb.Execute "INSERT INTO Итого ( Артикул, Наименование, Цена1, Цена2, Фирма, CORE ) SELECT Связи.SUBARU_23_MKMASTER, Связи.DESC, CCur(nz(Связи.COST)), CCur(nz(Связи.LIST)), '" & Me.Фирма & "', Связи.CORE " & _
        "FROM Связи WHERE (((Связи.SUBARU_23_MKMASTER) Is Not Null)) ORDER BY Связи.SUBARU_23_MKMASTER"
    CurrentDb.Execute "INSERT INTO Итого ( Артикул, Наименование, Цена1, Цена2, Фирма, CORE ) SELECT Связи.SUBARU_24_MKMASTER, Связи.DESC, CCur(nz(Связи.COST)), CCur(nz(Связи.LIST)), '" & Me.Фирма & "', Связи.CORE " & _
        "FROM Связи WHERE (((Связи.SUBARU_24_MKMASTER) Is Not Null)) ORDER BY Связи.SUBARU_24_MKMASTER"
    CurrentDb.Execute "INSERT INTO Итого ( Артикул, Наименование, Цена1, Цена2, Фирма, CORE ) SELECT Связи.SUBARU_25_MKMASTER, Связи.DESC, CCur(nz(Связи.COST)), CCur(nz(Связи.LIST)), '" & Me.Фирма & "', Связи.CORE " & _
        "FROM Связи WHERE (((Связи.SUBARU_25_MKMASTER) Is Not Null)) ORDER BY Связи.SUBARU_25_MKMASTER"
    CurrentDb.Execute "INSERT INTO Итого ( Артикул, Наименование, Цена1, Цена2, Фирма, CORE ) SELECT Связи.SUBARU_26_MKMASTER, Связи.DESC, CCur(nz(Связи.COST)), CCur(nz(Связи.LIST)), '" & Me.Фирма & "', Связи.CORE " & _
        "FROM Связи WHERE (((Связи.SUBARU_26_MKMASTER) Is Not Null)) ORDER BY Связи.SUBARU_26_MKMASTER"
    CurrentDb.Execute "INSERT INTO Итого ( Артикул, Наименование, Цена1, Цена2, Фирма, CORE ) SELECT Связи.SUBARU_27_MKMASTER, Связи.DESC, CCur(nz(Связи.COST)), CCur(nz(Связи.LIST)), '" & Me.Фирма & "', Связи.CORE " & _
        "FROM Связи WHERE (((Связи.SUBARU_27_MKMASTER) Is Not Null)) ORDER BY Связи.SUBARU_27_MKMASTER"
    CurrentDb.Execute "INSERT INTO Итого ( Артикул, Наименование, Цена1, Цена2, Фирма, CORE ) SELECT Связи.SUBARU_28_MKMASTER, Связи.DESC, CCur(nz(Связи.COST)), CCur(nz(Связи.LIST)), '" & Me.Фирма & "', Связи.CORE " & _
        "FROM Связи WHERE (((Связи.SUBARU_28_MKMASTER) Is Not Null)) ORDER BY Связи.SUBARU_28_MKMASTER"
    CurrentDb.Execute "INSERT INTO Итого ( Артикул, Наименование, Цена1, Цена2, Фирма, CORE ) SELECT Связи.SUBARU_29_MKMASTER, Связи.DESC, CCur(nz(Связи.COST)), CCur(nz(Связи.LIST)), '" & Me.Фирма & "', Связи.CORE " & _
        "FROM Связи WHERE (((Связи.SUBARU_29_MKMASTER) Is Not Null)) ORDER BY Связи.SUBARU_29_MKMASTER"
    CurrentDb.Execute "INSERT INTO Итого ( Артикул, Наименование, Цена1, Цена2, Фирма, CORE ) SELECT Связи.SUBARU_30_MKMASTER, Связи.DESC, CCur(nz(Связи.COST)), CCur(nz(Связи.LIST)), '" & Me.Фирма & "', Связи.CORE " & _
        "FROM Связи WHERE (((Связи.SUBARU_30_MKMASTER) Is Not Null)) ORDER BY Связи.SUBARU_30_MKMASTER"
    CurrentDb.Execute "INSERT INTO Итого ( Артикул, Наименование, Цена1, Цена2, Фирма, CORE ) SELECT Связи.SUBARU_31_MKMASTER, Связи.DESC, CCur(nz(Связи.COST)), CCur(nz(Связи.LIST)), '" & Me.Фирма & "', Связи.CORE " & _
        "FROM Связи WHERE (((Связи.SUBARU_31_MKMASTER) Is Not Null)) ORDER BY Связи.SUBARU_31_MKMASTER"
    CurrentDb.Execute "INSERT INTO Итого ( Артикул, Наименование, Цена1, Цена2, Фирма, CORE ) SELECT Связи.SUBARU_MKMASTER, Связи.DESC, CCur(nz(Связи.COST)), CCur(nz(Связи.LIST)), '" & Me.Фирма & "', Связи.CORE " & _
        "FROM Связи WHERE (((Связи.SUBARU_MKMASTER) Is Not Null)) ORDER BY Связи.SUBARU_MKMASTER"
    CurrentDb.Execute "INSERT INTO Итого ( Артикул, Наименование, Цена1, Цена2, Фирма, CORE ) SELECT Связи.SUBARU_1_MKMASTER, Связи.DESC, CCur(nz(Связи.COST)), CCur(nz(Связи.LIST)), '" & Me.Фирма & "', Связи.CORE " & _
        "FROM Связи WHERE (((Связи.SUBARU_1_MKMASTER) Is Not Null)) ORDER BY Связи.SUBARU_1_MKMASTER"
    CurrentDb.Execute "INSERT INTO Итого ( Артикул, Наименование, Цена1, Цена2, Фирма, CORE ) SELECT Связи.SUBARU_2_MKMASTER, Связи.DESC, CCur(nz(Связи.COST)), CCur(nz(Связи.LIST)), '" & Me.Фирма & "', Связи.CORE " & _
        "FROM Связи WHERE (((Связи.SUBARU_2_MKMASTER) Is Not Null)) ORDER BY Связи.SUBARU_2_MKMASTER"
    CurrentDb.Execute "INSERT INTO Итого ( Артикул, Наименование, Цена1, Цена2, Фирма, CORE ) SELECT Связи.SUBARU_3_MKMASTER, Связи.DESC, CCur(nz(Связи.COST)), CCur(nz(Связи.LIST)), '" & Me.Фирма & "', Связи.CORE " & _
        "FROM Связи WHERE (((Связи.SUBARU_3_MKMASTER) Is Not Null)) ORDER BY Связи.SUBARU_3_MKMASTER"
    CurrentDb.Execute "INSERT INTO Итого ( Артикул, Наименование, Цена1, Цена2, Фирма, CORE ) SELECT Связи.SUBARU_4_MKMASTER, Связи.DESC, CCur(nz(Связи.COST)), CCur(nz(Связи.LIST)), '" & Me.Фирма & "', Связи.CORE " & _
        "FROM Связи WHERE (((Связи.SUBARU_4_MKMASTER) Is Not Null)) ORDER BY Связи.SUBARU_4_MKMASTER"
    CurrentDb.Execute "INSERT INTO Итого ( Артикул, Наименование, Цена1, Цена2, Фирма, CORE ) SELECT Связи.SUBARU_5_MKMASTER, Связи.DESC, CCur(nz(Связи.COST)), CCur(nz(Связи.LIST)), '" & Me.Фирма & "', Связи.CORE " & _
        "FROM Связи WHERE (((Связи.SUBARU_5_MKMASTER) Is Not Null)) ORDER BY Связи.SUBARU_5_MKMASTER"
    CurrentDb.Execute "INSERT INTO Итого ( Артикул, Наименование, Цена1, Цена2, Фирма, CORE ) SELECT Связи.SUBARU_6_MKMASTER, Связи.DESC, CCur(nz(Связи.COST)), CCur(nz(Связи.LIST)), '" & Me.Фирма & "', Связи.CORE " & _
        "FROM Связи WHERE (((Связи.SUBARU_6_MKMASTER) Is Not Null)) ORDER BY Связи.SUBARU_6_MKMASTER"
    CurrentDb.Execute "INSERT INTO Итого ( Артикул, Наименование, Цена1, Цена2, Фирма, CORE ) SELECT Связи.SUBARU_7_MKMASTER, Связи.DESC, CCur(nz(Связи.COST)), CCur(nz(Связи.LIST)), '" & Me.Фирма & "', Связи.CORE " & _
        "FROM Связи WHERE (((Связи.SUBARU_7_MKMASTER) Is Not Null)) ORDER BY Связи.SUBARU_7_MKMASTER"
    CurrentDb.Execute "INSERT INTO Итого ( Артикул, Наименование, Цена1, Цена2, Фирма, CORE ) SELECT Связи.SUBARU_8_MKMASTER, Связи.DESC, CCur(nz(Связи.COST)), CCur(nz(Связи.LIST)), '" & Me.Фирма & "', Связи.CORE " & _
        "FROM Связи WHERE (((Связи.SUBARU_8_MKMASTER) Is Not Null)) ORDER BY Связи.SUBARU_8_MKMASTER"
    CurrentDb.Execute "INSERT INTO Итого ( Артикул, Наименование, Цена1, Цена2, Фирма, CORE ) SELECT Связи.SUBARU_9_MKMASTER, Связи.DESC, CCur(nz(Связи.COST)), CCur(nz(Связи.LIST)), '" & Me.Фирма & "', Связи.CORE " & _
        "FROM Связи WHERE (((Связи.SUBARU_9_MKMASTER) Is Not Null)) ORDER BY Связи.SUBARU_9_MKMASTER"
    CurrentDb.Execute "INSERT INTO Итого ( Артикул, Наименование, Цена1, Цена2, Фирма, CORE ) SELECT Связи.SUBARU_10_MKMASTER, Связи.DESC, CCur(nz(Связи.COST)), CCur(nz(Связи.LIST)), '" & Me.Фирма & "', Связи.CORE " & _
        "FROM Связи WHERE (((Связи.SUBARU_10_MKMASTER) Is Not Null)) ORDER BY Связи.SUBARU_10_MKMASTER"
    CurrentDb.Execute "INSERT INTO Итого ( Артикул, Наименование, Цена1, Цена2, Фирма, CORE ) SELECT Связи.SUBARU_11_MKMASTER, Связи.DESC, CCur(nz(Связи.COST)), CCur(nz(Связи.LIST)), '" & Me.Фирма & "', Связи.CORE " & _
        "FROM Связи WHERE (((Связи.SUBARU_11_MKMASTER) Is Not Null)) ORDER BY Связи.SUBARU_11_MKMASTER"
    CurrentDb.Execute "INSERT INTO Итого ( Артикул, Наименование, Цена1, Цена2, Фирма, CORE ) SELECT Связи.SUBARU_12_MKMASTER, Связи.DESC, CCur(nz(Связи.COST)), CCur(nz(Связи.LIST)), '" & Me.Фирма & "', Связи.CORE " & _
        "FROM Связи WHERE (((Связи.SUBARU_12_MKMASTER) Is Not Null)) ORDER BY Связи.SUBARU_12_MKMASTER"
    CurrentDb.Execute "INSERT INTO Итого ( Артикул, Наименование, Цена1, Цена2, Фирма, CORE ) SELECT Связи.SUBARU_13_MKMASTER, Связи.DESC, CCur(nz(Связи.COST)), CCur(nz(Связи.LIST)), '" & Me.Фирма & "', Связи.CORE " & _
        "FROM Связи WHERE (((Связи.SUBARU_13_MKMASTER) Is Not Null)) ORDER BY Связи.SUBARU_13_MKMASTER"
    CurrentDb.Execute "INSERT INTO Итого ( Артикул, Наименование, Цена1, Цена2, Фирма, CORE ) SELECT Связи.SUBARU_14_MKMASTER, Связи.DESC, CCur(nz(Связи.COST)), CCur(nz(Связи.LIST)), '" & Me.Фирма & "', Связи.CORE " & _
        "FROM Связи WHERE (((Связи.SUBARU_14_MKMASTER) Is Not Null)) ORDER BY Связи.SUBARU_14_MKMASTER"
    CurrentDb.Execute "INSERT INTO Итого ( Артикул, Наименование, Цена1, Цена2, Фирма, CORE ) SELECT Связи.SUBARU_15_MKMASTER, Связи.DESC, CCur(nz(Связи.COST)), CCur(nz(Связи.LIST)), '" & Me.Фирма & "', Связи.CORE " & _
        "FROM Связи WHERE (((Связи.SUBARU_15_MKMASTER) Is Not Null)) ORDER BY Связи.SUBARU_15_MKMASTER"
    CurrentDb.Execute "INSERT INTO Итого ( Артикул, Наименование, Цена1, Цена2, Фирма, CORE ) SELECT Связи.SUBARU_16_MKMASTER, Связи.DESC, CCur(nz(Связи.COST)), CCur(nz(Связи.LIST)), '" & Me.Фирма & "', Связи.CORE " & _
        "FROM Связи WHERE (((Связи.SUBARU_16_MKMASTER) Is Not Null)) ORDER BY Связи.SUBARU_16_MKMASTER"
    CurrentDb.Execute "INSERT INTO Итого ( Артикул, Наименование, Цена1, Цена2, Фирма, CORE ) SELECT Связи.SUBARU_17_MKMASTER, Связи.DESC, CCur(nz(Связи.COST)), CCur(nz(Связи.LIST)), '" & Me.Фирма & "', Связи.CORE " & _
        "FROM Связи WHERE (((Связи.SUBARU_17_MKMASTER) Is Not Null)) ORDER BY Связи.SUBARU_17_MKMASTER"
    CurrentDb.Execute "INSERT INTO Итого ( Артикул, Наименование, Цена1, Цена2, Фирма, CORE ) SELECT Связи.SUBARU_18_MKMASTER, Связи.DESC, CCur(nz(Связи.COST)), CCur(nz(Связи.LIST)), '" & Me.Фирма & "', Связи.CORE " & _
        "FROM Связи WHERE (((Связи.SUBARU_18_MKMASTER) Is Not Null)) ORDER BY Связи.SUBARU_18_MKMASTER"
    CurrentDb.Execute "INSERT INTO Итого ( Артикул, Наименование, Цена1, Цена2, Фирма, CORE ) SELECT Связи.SUBARU_19_MKMASTER, Связи.DESC, CCur(nz(Связи.COST)), CCur(nz(Связи.LIST)), '" & Me.Фирма & "', Связи.CORE " & _
        "FROM Связи WHERE (((Связи.SUBARU_19_MKMASTER) Is Not Null)) ORDER BY Связи.SUBARU_19_MKMASTER"
    CurrentDb.Execute "INSERT INTO Итого ( Артикул, Наименование, Цена1, Цена2, Фирма, CORE ) SELECT Связи.SUBARU_20_MKMASTER, Связи.DESC, CCur(nz(Связи.COST)), CCur(nz(Связи.LIST)), '" & Me.Фирма & "', Связи.CORE " & _
        "FROM Связи WHERE (((Связи.SUBARU_20_MKMASTER) Is Not Null)) ORDER BY Связи.SUBARU_20_MKMASTER"
'    Forms![Расчет]![подчиненная форма Связи].Form.RecordSource = "Связи"
    Select Case Me.Фирма
    Case "TOYOTA"
        CurrentDb.Execute "UPDATE Итого SET Итого.[Фирма1] = 'LEXUS'"
    Case "LEXUS"
        CurrentDb.Execute "UPDATE Итого SET Итого.[Фирма1] = 'TOYOTA'"
    Case "HONDA"
        CurrentDb.Execute "UPDATE Итого SET Итого.[Фирма1] = 'ACURA'"
    Case "ACURA"
        CurrentDb.Execute "UPDATE Итого SET Итого.[Фирма1] = 'HONDA'"
    End Select

    Me.Фирма = Null
    MsgBox ("Пересчет выполнен")
End Sub

Private Sub Показать_Click()
    DoCmd.OpenForm "Результат"
End Sub

Private Sub Прогон_Click()
CurrentDb.Execute "DELETE Итого.* " & _
    "FROM Итого INNER JOIN OTKAZ_ALL ON (Итого.Фирма = OTKAZ_ALL.Фирма) AND (Итого.Артикул = OTKAZ_ALL.Артикул)"
    MsgBox ("Выполнено")

End Sub

Private Sub Удаление__Click()
    CurrentDb.Execute "UPDATE Итого SET Артикул = REPLACE(Артикул,'-','');"
    CurrentDb.Execute "UPDATE Итого SET Артикул = REPLACE(Артикул,'*','');"
    CurrentDb.Execute "UPDATE Итого SET Наименование = REPLACE(Наименование,';','/');"
    CurrentDb.Execute "UPDATE Итого SET Наименование = REPLACE(Наименование,'Chr(34)','');"
    CurrentDb.Execute "UPDATE Итого SET Наименование = REPLACE(Наименование,'*','');"
    MsgBox ("Выполнено")

End Sub

Private Sub Удаление_Click()
    If MsgBox("Будут удалены результаты всех расчетов", vbYesNo) = vbNo Then Exit Sub
    CurrentDb.Execute "DELETE Связи.* FROM Связи"
    CurrentDb.Execute "DELETE SUBARU.* FROM SUBARU"
    CurrentDb.Execute "DELETE Итого.* FROM Итого"
    MsgBox ("Данные удалены")
Exit_Удаление_Click:
    Exit Sub

Err_Удаление_Click:
    MsgBox err.Description
    Resume Exit_Удаление_Click

End Sub

Function Сущ_таб(Имя_таб)
    Dim i
    For i = 0 To DBEngine.Workspaces(0).Databases(0).TableDefs.Count - 1
        If DBEngine.Workspaces(0).Databases(0).TableDefs(i).Name = Имя_таб Then
            Сущ_таб = True
            Exit Function       ' Выход из функции, если форма не загружена.
        End If
    Next
    Сущ_таб = False


End Function

0 个答案:

没有答案