-Поиск по дневнику

Поиск сообщений в rss_sql_ru_access_programming

 -Подписка по e-mail

 

 -Постоянные читатели

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 16.03.2006
Записей:
Комментариев:
Написано: 4


Insert into с группировкой вставляемых значений

Вторник, 01 Июля 2014 г. 10:54 + в цитатник
Здравствуйте.

Делаю выгрузку вв внешнюю базу:
    S = "SELECT ххх1, ххх2, ххх3 "
    S = S & "FROM Base "
    S = S & "WHERE ....... "
    S = S & "ORDER BY ....... "

    Set ReportRst = CurrentDb.OpenRecordset(S)

    ReportRst.MoveFirst

    If Not ReportRst.BOF Then

        If ReportRst.RecordCount = 0 Then
            MsgBox "Неудача"
            Exit Sub
        Else
            ReportData = ReportRst.GetRows(120)
        End If
    Else
        MsgBox "Неудача"
        Exit Sub
    End If

    For k = 0 To 39
        DoCmd.RunSQL ("INSERT INTO temp (ххх1, ххх2, ххх3) " & _
        " VALUES ('" & ххх1 & "', '" & ххх2 & "', '1') ")
    Next k

    For k = 40 To 79
        DoCmd.RunSQL ("INSERT INTO temp (ххх1, ххх2, ххх3) " & _
        " VALUES ('" & ххх1 & "', '" & ххх2 & "', '2') ")
    Next k

    For k = 80 To UBound(ReportData, 2)
        DoCmd.RunSQL ("INSERT INTO temp (ххх1, ххх2, ххх3) " & _
        " VALUES ('" & ххх1 & "', '" & ххх2 & "', '3') ")
    Next k

    DoCmd.RunSQL ("INSERT INTO svod (ххх1, ххх2, ххх3) " & _
    " IN 'C:\Base.accdb' " & _
    " SELECT ххх1, ххх2, ххх3 " & _
    " FROM temp ")

    DoCmd.RunSQL ("DELETE * FROM temp")

    ReportRst.Close
    Set ReportRst = Nothing
Пришлось создать 3 конструкции for, чтобы разбить 120 записей по 40 и в каждую группу добавить значения 1, 2, 3.
Помогите, пожалуйста, оптимизировать код.
Спасибо.

http://www.sql.ru/forum/1102945/insert-into-s-gruppirovkoy-vstavlyaemyh-znacheniy


 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку