Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
1 / 1 / 0
Регистрация: 11.02.2019
Сообщений: 136

Как ускорить скорость открытия файла .csv?

21.05.2019, 15:31. Показов 1611. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
При нажатии кнопки для запуск процедуры Кнопка7_Click () программа работает в течение 5 часов, чтобы открыть файл .csv. Как ускорить скорость открытия файла .csv?

Пример файла CSV

MKMASTER,MKMASTER,DESC,PNC,COST,CORE,LIS T,1,2,3,4
84651TL0E01ZB,84651TL0E01ZB,LNG L. *NH85L*,,156.67,0,184.97,,,,
84651TL0E01ZA,84651TL0E01ZA,LNG ASSY L*NH85L*,,131.49,0,178.01,,,,
84651TK4A01ZA,84651TK4A01ZA,LNG L. *NH85L*,,84.53,0,104.92,,,,

программа, которая работает очень медленно при открытии csv

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
VERSION 1.0 CLASS
BEGIN
  MultiUse = -1  'True
END
Attribute VB_Name = "Form_Расчет"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Private Sub Вес_Click()
    Dim rs As ADODB.Recordset, Фирма1 As String
    Фирма1 = Nz(DLookup("Фирма1", "Итого"))
    Set rs = New ADODB.Recordset
    rs.Open "select nm_tabl From tb_tabl Where vkl = 3 order By nm_tabl", CurrentProject.Connection, adOpenDynamic, adLockOptimistic, adCmdTableDirect
    With rs
        Do While Not .EOF
            SysCmd acSysCmdSetStatus, "Обработка таблицы: " & !nm_tabl
            CurrentDb.QueryDefs("Вес").SQL = "UPDATE " & !nm_tabl & " INNER JOIN Итого ON (" & !nm_tabl & ".Поле1 = Итого.Артикул) AND (" & !nm_tabl & ".Поле2 = Итого.Фирма) SET Итого.Вес = [" & !nm_tabl & "].[Поле3]"
            CurrentDb.Execute "Вес"
            .MoveNext
        Loop
        If Фирма1 <> "" Then
            .MoveFirst
            Do While Not .EOF
                SysCmd acSysCmdSetStatus, "Обработка таблицы: " & !nm_tabl
                CurrentDb.QueryDefs("Вес").SQL = "UPDATE " & !nm_tabl & " INNER JOIN Итого ON (" & !nm_tabl & ".Поле1 = Итого.Артикул) AND (" & !nm_tabl & ".Поле2 = Итого.Фирма1) SET Итого.Вес = [" & !nm_tabl & "].[Поле3]"
                CurrentDb.Execute "Вес"
                .MoveNext
            Loop
        End If
    End With
    rs.Close
    MsgBox ("Вес сформирован")
End Sub
Private Sub Кнопка0_Click()
On Error GoTo Err_Кнопка0_Click
    DoCmd.Close
Exit_Кнопка0_Click:
    Exit Sub
Err_Кнопка0_Click:
    MsgBox err.Description
    Resume Exit_Кнопка0_Click    
End Sub
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
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
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 " & _
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.05.2019, 15:31
Ответы с готовыми решениями:

Макрос для открытия *.csv файла
Здравствуйте! Помогите пожалуйста сделать макрос, который мог бы открывать определенного формата файл *.csv. Макрос нужен для того, что бы...

Макрос для открытия и преобразования файла .csv в .xls
Всем доброго дня. Перелистал кучу вопросов на форуме и не смог найти ответа на свой вопрос, но уверен, он где-то уже всплывал. Может...

Как ускорить скорость нарастания тока в катушке?
Есть задача - Передать как можно больше энергии в пьезоелемент\ты. Рассматриваются любые схемы. Резонансные обычные, мостовые....

27
Модератор
Эксперт MS Access
 Аватар для shanemac51
12231 / 5078 / 814
Регистрация: 07.08.2010
Сообщений: 14,933
Записей в блоге: 4
21.05.2019, 15:40
Цитата Сообщение от сергей124244 Посмотреть сообщение
программа работает в течение 5 часов, чтобы открыть файл
жуть..........
и как у вас терпения хватает
0
Эксперт MS Access
 Аватар для Eugene-LS
12065 / 5848 / 1494
Регистрация: 05.10.2016
Сообщений: 16,436
21.05.2019, 15:57
Цитата Сообщение от shanemac51 Посмотреть сообщение
жуть..........
и как у вас терпения хватает
И не говорите!
... и сразу влезать в топик расхотелось.
сергей124244, а может вы сами запросы свои оптимизируете - а?
Ну "каша" же - видно.

Добавлено через 8 минут
сергей124244, читаем:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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
...
И не удивительно ...
0
1 / 1 / 0
Регистрация: 11.02.2019
Сообщений: 136
21.05.2019, 17:58  [ТС]
csv файл
https://drive.google.com/file/... gGUHs/view

код программы
https://drive.google.com/file/... 8Uhh8/view
0
Модератор
Эксперт MS Access
 Аватар для shanemac51
12231 / 5078 / 814
Регистрация: 07.08.2010
Сообщений: 14,933
Записей в блоге: 4
21.05.2019, 18:25
csv --596т записей,36мб
а вот база уже 1500мб и еще не скачалась

может база тормозит, а не текстовик

Добавлено через 15 минут
получилась база 1960мб, почти предел
+155 таблиц из трех прилинкованных баз ......НЕХИЛО
+локальная таблица SUBARU 432000 записей

и вы еще жалуетесь на скорость, это чудо, что она вообще открывается
0
Эксперт MS Access
 Аватар для Eugene-LS
12065 / 5848 / 1494
Регистрация: 05.10.2016
Сообщений: 16,436
21.05.2019, 18:46
сергей124244, всё скачалось - но "цигель - цыгель ай лю-лю" плотняк.
Обязательно гляну.
Пока вы в знающих и добрых руках ув. shanemac51.

Добавлено через 15 минут
сергей124244, ну и шутник вы однако !
Реальный размер вашей "Avto.accdb" (после сжатия)= 61 мег. с копейками ...
0
Модератор
Эксперт MS Access
6231 / 2909 / 707
Регистрация: 12.06.2016
Сообщений: 7,839
21.05.2019, 18:53
сергей124244,

Сожмите БД средствами Access, затем заархивируйте и выложите здесь.
Также выложите архив с файлом CSV.
0
1 / 1 / 0
Регистрация: 11.02.2019
Сообщений: 136
23.05.2019, 10:24  [ТС]
Уточнение

код программы
https://drive.google.com/file/... sp=sharing

Добавлено через 1 минуту
csv файл

https://drive.google.com/file/... sp=sharing
0
Модератор
Эксперт MS Access
 Аватар для shanemac51
12231 / 5078 / 814
Регистрация: 07.08.2010
Сообщений: 14,933
Записей в блоге: 4
23.05.2019, 11:06
Цитата Сообщение от сергей124244 Посмотреть сообщение
код программы
я посмотрела ваш старый код
--там помимо основной базы есть еще 2-3 с прилинкованными таблицами(auto_a, auto_o,auto_d),

так что проверить код не смогла --только посмотрела
0
Модератор
Эксперт MS Access
6231 / 2909 / 707
Регистрация: 12.06.2016
Сообщений: 7,839
23.05.2019, 11:08
сергей124244,

Выкладывайте все на форум.

Сжимайте -> архивируйте -> выкладывайте

При необходимости делайте многотомные архивы.
0
1 / 1 / 0
Регистрация: 11.02.2019
Сообщений: 136
23.05.2019, 12:12  [ТС]
Добавлено через 1 минуту
zip файлы
код программы
https://drive.google.com/open?... KOqa2ZUS06
csv файл
https://drive.google.com/open?... aWbitlBLDN
0
Модератор
Эксперт MS Access
 Аватар для shanemac51
12231 / 5078 / 814
Регистрация: 07.08.2010
Сообщений: 14,933
Записей в блоге: 4
23.05.2019, 12:22
Цитата Сообщение от shanemac51 Посмотреть сообщение
auto_a.accdb, auto_o.accdb,auto_d.accdb
для опробования программы, нужны эти базы
они в C:\prices\14.05.2019\repair\MDB\Avto_a.a ccdb

хотя бы одну таблицу из базы А,
возможно в О и Д по одной таблице(ОТКАZ и ИТОГО)
0
1 / 1 / 0
Регистрация: 11.02.2019
Сообщений: 136
23.05.2019, 13:00  [ТС]
Avto_a.accdb

https://drive.google.com/open?... YoT0BMVUDl
 Комментарий модератора 

Вы не выполняете требования Правил.
И игнорируете замечания модератора.
Правила.
4.11. Картинки и любые другие файлы загружайте на форум, во избежание их удаления или потери на сторонних ресурсах. По этой же причине коды программ также должны находиться на форуме.
0
Эксперт MS Access
 Аватар для alvk
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,380
23.05.2019, 13:23
не нарушайте правила, научитесь архивировать и выложите в архиве свою аццдб
0
Модератор
Эксперт MS Access
 Аватар для shanemac51
12231 / 5078 / 814
Регистрация: 07.08.2010
Сообщений: 14,933
Записей в блоге: 4
23.05.2019, 13:52
сергей124244,
осталось выложить базу avto_o.accdb и базу avto_d.accdb
после этого можно будет пробовать искать проблемы в вашей задаче
0
1 / 1 / 0
Регистрация: 11.02.2019
Сообщений: 136
23.05.2019, 13:57  [ТС]
попробуйте загрузить базу она загружается без этих файлов 5 часов
как можно ускорить загрузку?
0
Модератор
Эксперт MS Access
 Аватар для shanemac51
12231 / 5078 / 814
Регистрация: 07.08.2010
Сообщений: 14,933
Записей в блоге: 4
23.05.2019, 13:59
именно это я хочу попробовать
но нужны еще 2 базы
0
1 / 1 / 0
Регистрация: 11.02.2019
Сообщений: 136
23.05.2019, 13:59  [ТС]
avto_o.accdb и базу avto_d.accdb не нужны для загрузки csv файла
0
Модератор
Эксперт MS Access
 Аватар для shanemac51
12231 / 5078 / 814
Регистрация: 07.08.2010
Сообщений: 14,933
Записей в блоге: 4
23.05.2019, 14:05
попробую без них
0
1 / 1 / 0
Регистрация: 11.02.2019
Сообщений: 136
23.05.2019, 14:13  [ТС]
как ускорить загрузку файла csv
загрузка занимает более 5 часов
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.05.2019, 14:13
Помогаю со студенческими работами здесь

Подскажите, как можно ускорить скорость парсинга
Сам код под спойлером. { WebClient Client = new WebClient(); for (int i = 286543463;...

Разбиение CSV файла на много csv файлов по разделителю
Здравствуйте, есть файл в который нужно разделить, но не ровно по 30 строк например, а по 25, 23, 27. Как это можно сделать?

Как ускорить работу интернета и скорость интернета?
кто знает как ускорить работу интернета и скорость интернета. У меня USB 3G modem скорость 236 кб\сек, скорость передачи 1-3\кб а то и...

Программа: ускорить скорость мыши
Доброго времени суток всем. Скажу сразу: я не программист. Недавно мне понадобилось ускорить скорость курсора мыши, так как моя мышь самая...

Как ускорить обработку файла
Можно ли как-то ускорить обработку файла, который содержит тысячи строк? Нужно перебрать все строки в файле, сравнивая начало выбранной...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru