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

Цикл перебора записей DAO (пропуск отсутствующих значений)

21.10.2016, 09:34. Показов 2092. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток, уважаемые форумчане.
У меня никак не отрабатывает до конца цикл перебора записей с редактированием данных в таблице.
Постановка задачи следующая:
есть две таблицы: tblMain Основная, tblSecondary Вспомогательная; необходимо чтобы данные из полей K и SS, из таблицы tblSecondary переносились в аналогичные поля таблицы tblMain, но в таблице tblSecondary не всегда есть все значения присутствующие в таблице tblMain. Т.е. есть в tblMain например 10 записей, а в tblSecondary всего 8.
Цикл, указанный ниже (и переделанный мною из цикла любезно предоставленного ув. mobile) отрабатывает нормально, до того момента, пока не встретит несовпадение в полях этих двух таблиц.
А мне необходимо, чтобы если он наткнётся на данное недоразумение, просто пропустил его, оставив значения полей K и SS пустыми.
Заранее благодарен за помощь
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Sub trans()
    Dim db As DAO.Database, rsMain As DAO.Recordset, rsSecondary As DAO.Recordset
    Set db = CurrentDb
    Set rsMain = db.OpenRecordset("tblMain", dbOpenDynaset)
    Set rsSecondary = db.OpenRecordset("tblSecondary", dbOpenDynaset)
    Do Until rsSecondary.EOF = True
        If rsMain!NameMaterial = rsSecondary!NameMaterial Then
            With rsMain
                .Edit
                !K = rsSecondary!K
                !SS = rsSecondary!SS
                .Update
                .MoveNext
            End With
'        Else
'            rsSecondary.MoveNext
        End If
        rsSecondary.MoveNext
    Loop
End Sub
Вложения
Тип файла: zip tmpDB2.zip (54.7 Кб, 14 просмотров)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.10.2016, 09:34
Ответы с готовыми решениями:

Сравнение значений поля и списка, поиск отсутствующих значений
Добрый день. Подскажите по следующему вопросу: Есть таблица в базе данных, она содержит 550к строк. Одно из полей таблицы содержит...

Передача отсутствующих записей
Привет, вообщем, есть две бд (a1,b1) в них есть таблицы (a1,b1 соответственно) имеющие по 5 полей в a1 две строки, в b1, 4 строки(2 из них...

Заполнение отсутствующих значений
Здравствуйте. Меня интересует заполнение недостающих значений в таблице данных с помощью статистики, то есть заполнение пустых ячеек...

3
Эксперт MS Access
26825 / 14505 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
21.10.2016, 09:53
Лучший ответ Сообщение было отмечено alvk как решение

Решение

Цитата Сообщение от DiLoger Посмотреть сообщение
необходимо, чтобы если он наткнётся на данное недоразумение, просто пропустил его, оставив значения полей K и SS пустыми.
Так наверное
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Sub trans()
    Dim db As DAO.Database, rsMain As DAO.Recordset, rsSecondary As DAO.Recordset
    Set db = CurrentDb
    Set rsMain = db.OpenRecordset("tblMain", dbOpenDynaset)
    Set rsSecondary = db.OpenRecordset("tblSecondary", dbOpenDynaset)
    Do Until rsSecondary.EOF = True
        If rsMain!NameMaterial = rsSecondary!NameMaterial Then
            With rsMain
                .Edit
                !K = rsSecondary!K
                !SS = rsSecondary!SS
                .Update
            End With
        End If
        rsMain.MoveNext 'Двигаем рекордсет. Не исключено, что нужен поиск по rsMain (???)
        rsSecondary.MoveNext
    Loop
End Sub
Добавлено через 6 минут
Запросом все это проще и надежней
SQL
1
2
UPDATE tblMain INNER JOIN tblSecondary ON tblMain.NameMaterial=tblSecondary.NameMaterial
SET tblMain.K=tblSecondary.K, tblMain.SS=tblSecondary.SS
2
Мы один, давай на "ты"
3838 / 1384 / 343
Регистрация: 16.06.2016
Сообщений: 3,275
21.10.2016, 09:54
Лучший ответ Сообщение было отмечено texnik-san как решение

Решение

DiLoger, нипонял, а так то зачем? Ты же работаешь с БД, тут SQL рулит.
SQL
1
2
3
4
UPDATE tblMain INNER JOIN tblSecondary ON 
tblMain.NameMaterial = tblSecondary.NameMaterial 
SET tblMain.K = tblSecondary.K
tblMain.SS =tblSecondary.SS;
2
1 / 0 / 0
Регистрация: 30.06.2016
Сообщений: 6
21.10.2016, 10:21  [ТС]
Если честно, я слабоват как в работе с БД, Access, SQL и DAO, поэтому выбрал то, что проще ))
mobile ваша корректировка кода интересно отработала: занеслись данные в первую запись и в ту, которая следовала после отсутствующей, и всё.
mobile и Панург спасибо за помощь, Ваш код в запросе отработал именно так, как мне надо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.10.2016, 10:21
Помогаю со студенческими работами здесь

Заполнение отсутствующих значений в данных
Необходимо заполнить пропуски в таблице с данными. Данные выглядят следующим образом:...

Удаление отсутствующих значений на другой стороне
Всем привет! Получаю некоторые данные по json и записываю их в базу данных SQLite3. Но есть проблема, если на другой стороне...

Выборка из перечня значений, отсутствующих в списке
Доброго дня. Подскажите пож-ста, можно ли каким-то образом "вытащить" из постоянно и произвольно формирующегося перечня значения,...

Пропуск ряда значений
День добрый. Есть ряд числ в массиве 1,2,3......n, некоторые числа пропущены, как их вычислить/найти самым эффективным способом? ...

Цикл DAO с обращением к предыдущей ячейки одного и тогоже поля
Доброго времени суток форумчане. Сабж, прошу вашей помощи, а то сам уже не выруливаю уже как два дня(( Надо заполнить столбец pok_os по...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
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, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru