Добавление в таблицу данных из массива без повторов |
Dim db As Database Dim varArray() As Variant Dim per1 As Variant Dim strSQL As String Dim tdf As DAO.Recordset Dim rstData As DAO.Recordset Dim eData As Integer Dim fData As Integer Dim efields As Integer Set db = CurrentDb() efields = 10 strSQL = "SELECT Data.id_incoming_indicator, Data.id_region, Data.id_item_str, Data.twelvemonth, Data.id_unit, Data.ind_value, unit.name_unit, IncInd.name_incoming_indicator, StrItem.name_item_str, Data.id_data FROM unit INNER JOIN (StrItem INNER JOIN (IncInd INNER JOIN Data ON IncInd.id_incoming_indicator = Data.id_incoming_indicator) ON StrItem.id_item_str = Data.id_item_str) ON unit.id_unit = Data.id_unit WHERE (((Data.id_incoming_indicator)=" & [Forms]![main]![Data].[Form]![p1] & ") AND ((Data.id_region)=" & [Forms]![main]![Data].[Form]![p2] & ") AND ((StrItem.name_item_str)='-'));" Set rstData = db.OpenRecordset(strSQL, dbOpenDynaset) If rstData.RecordCount = 0 Then rstData.Close MsgBox "Недостаточно данных", 64 Exit Sub End If rstData.MoveLast rstData.MoveFirst eData = rstData.RecordCount If rstData.RecordCount = 1 Then rstData.Close MsgBox "Недостаточно данных", 64 Exit Sub End If ReDim varArray(efields, eData) varArray = rstData.GetRows(eData) per1 = varArray(4, i) Set tds = db.OpenRecordset("Output_data", dbOpenDynaset) If (p31 = 1) And (p7 = 1) Then For i = 1 To eData - 1 tds.AddNew tds!out_value = varArray(5, i) - varArray(5, i - 1) tds!id_output_indicator = 1 tds!id_outindtype = 1 tds!id_data = varArray(9, i) tds!twelvemonth2 = varArray(3, i - 1) tds!id_unit = per1 tds.Update 'End If Next i End If If (p31 = 3) And (p7 = 1) Then tds.AddNew tds!out_value = ((varArray(5, eData - 1) - varArray(5, 0)) / (eData - 1)) tds!id_output_indicator = 1 tds!id_outindtype = 3 tds!id_data = varArray(9, eData - 1) tds!twelvemonth2 = varArray(3, 0) tds!id_unit = per1 tds.Update End If If (p31 = 2) And (p7 = 1) Then For i = 1 To eData - 1 tds.AddNew tds!out_value = varArray(5, i) - varArray(5, 0) tds!id_output_indicator = 1 tds!id_outindtype = 2 tds!id_data = varArray(9, i) tds!twelvemonth2 = varArray(3, 0) tds!id_unit = per1 tds.Update Next i End If Set tdsData = Nothing rstData.Close Set rstData = Nothing
http://www.sql.ru/forum/1261679/dobavlenie-v-tablicu-dannyh-iz-massiva-bez-povtorov
Комментировать | « Пред. запись — К дневнику — След. запись » | Страницы: [1] [Новые] |