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

Копирование вложений между двумя таблицами

22.02.2016, 15:40. Показов 2112. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток.
Возникла проблемка, может, кто подскажет, буду рад.
По нажатию кнопки данные из одной таблицы переносятся во вторую.
Написал следующий код:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Dim dbs As DAO.Database
Dim TableFrom   As DAO.Recordset 'Таблица из которой будут перемещаются данные
Dim TableWhere  As DAO.Recordset 'Таблица в которую будут перемещаются данные
 
Set dbs = CurrentDb()'Открываем базу Access
Set TableFrom   = dbs.OpenRecordset("Table1")   'Открываем таблицу 1
Set TableWhere  = dbs.OpenRecordset("Table2")   'Открываем таблицу 2
If TableFrom.RecordCount > 0 then 'проверка чтобы не пустая
    TableFrom.MoveFirst  'переход в начало таблицы
    While Not TableFrom.EOF 'пока не дойдем до конца таблицы
        TableWhere.AddNew 'добавить строчку во второй таблице
        TableWhere.Fields("Номер") = TableFrom.Fields("Номер")'Тип поля "числовой" - здесь все ОК
        TableWhere.Fields("Документ") = TableFrom.Fields("Документ")'Тип поля "Вложение" - так не работает
        TableWhere.Update
    Wend
end if
TableWhere.Close
TableFrom.Close
Me.Refresh
С числовыми и текстовыми полями, не каких проблем, а вот вложения копировать не получается.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.02.2016, 15:40
Ответы с готовыми решениями:

Две связи между двумя таблицами
Помогите плиз новичку.) Даны две таблицы: Loading (ID, Supervisor, operative) - таблица загрузок с номером загрузки, проверяющим и...

Автозаполнение данных между двумя таблицами
Есть две таблицы (Таблица 1 и Таблица 2). В первой таблице два столбца - Организация и Адрес. Во второй таблице столбец Организация...

Связь между двумя разными таблицами
Добрый день. Есть форма "Обзор комплект." и на ней необходимо при выборе в поле со списком "Категория" внизу появлялись только те...

11
шапоклякистка 8-го дня
 Аватар для texnik-san
3681 / 2241 / 391
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
22.02.2016, 16:51
SQL
1
2
3
INSERT INTO TableWhere (Номер, Документ)
SELECT Номер, Документ
FROM TableFrom
А так работает?
0
0 / 0 / 0
Регистрация: 09.02.2015
Сообщений: 25
22.02.2016, 17:16  [ТС]
Нет.

Добавлено через 12 минут
Поле ВЛОЖЕНИЕ в действительности содержит в себе три поля FileData, FileName и FileType. Может нужно их как-то переносить вместе.
0
шапоклякистка 8-го дня
 Аватар для texnik-san
3681 / 2241 / 391
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
22.02.2016, 17:26
Ага, точно, не работает, я тоже попробовала. Значит, еще два рекордсета нужны. Сейчас, попробую.

Добавлено через 7 минут
Кстати, пока экспериментирую, подумалось. Вы точно уверены, что хотите дублировать вложение? Это же двойной объем места.

Я бы сделала отдельную таблицу для вложений, и дублировала только ссылку на вложение, но не само вложение.
0
0 / 0 / 0
Регистрация: 09.02.2015
Сообщений: 25
22.02.2016, 17:33  [ТС]
В действительности тройное
Дело в том что на каждом «этапе» в вложенных файлах могут вносится изменения. И нужно иметь возможность видеть предыдущий вариант документа.
Хотя если не выйдет из копированием придётся делать через ссылку.
0
шапоклякистка 8-го дня
 Аватар для texnik-san
3681 / 2241 / 391
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
22.02.2016, 18:02
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

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
Dim TableFrom   As DAO.Recordset 'Таблица из которой будут перемещаются данные
Dim TableWhere  As DAO.Recordset 'Таблица в которую будут перемещаются данные
Dim AttFrom As DAO.Recordset, AttWhere As DAO.Recordset
 
Set TableFrom = CurrentDb.openrecordset("photo_image")     'Открываем таблицу 1
Set TableWhere = CurrentDb.openrecordset("photo_gallery")    'Открываем таблицу 2
If TableFrom.RecordCount > 0 Then 'проверка чтобы не пустая
    TableFrom.MoveFirst  'переход в начало таблицы
    While Not TableFrom.EOF 'пока не дойдем до конца таблицы
        TableWhere.AddNew 'добавить строчку во второй таблице
        Set AttFrom = TableFrom.Fields("att").Value
        Set AttWhere = TableWhere.Fields("att").Value
        While Not AttFrom.EOF
            If AttFrom!FileName > "" Then
                AttWhere.AddNew
                    AttWhere!FileName = AttFrom!FileName
                    AttWhere!FileData = AttFrom!FileData
                AttWhere.Update
                AttFrom.MoveNext
            End If
        Wend
        TableWhere.Update
        TableFrom.MoveNext
    Wend
End If
TableWhere.Close
TableFrom.Close
1
0 / 0 / 0
Регистрация: 09.02.2015
Сообщений: 25
22.02.2016, 18:29  [ТС]
Благодарю за труд.
Можно только пару вопросов. В коде буду разбираться (я так понял это просто пример), вот структуру таблиц из кода не понять. (Или может сбросте мне мне этот пример через личку)
В нашей таблицах были записи «Номер» и «Документ». А здесь вроде добавилось «att». Какой у него тип?
Уважаемая texnik-san может еще подскажете как найти ссылку на файл который лежит не на диске, а в вложениях базы?
0
шапоклякистка 8-го дня
 Аватар для texnik-san
3681 / 2241 / 391
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
22.02.2016, 19:41
Цитата Сообщение от SlavaSVO Посмотреть сообщение
В нашей таблицах были записи «Номер» и «Документ». А здесь вроде добавилось «att». Какой у него тип?
Это я для тестов создала таблицы с единственным полем типа "вложение"
0
шапоклякистка 8-го дня
 Аватар для texnik-san
3681 / 2241 / 391
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
22.02.2016, 19:42
Цитата Сообщение от SlavaSVO Посмотреть сообщение
В нашей таблицах были записи «Номер» и «Документ». А здесь вроде добавилось «att». Какой у него тип?
Это я для тестов создала таблицы с единственным полем типа "вложение"
0
0 / 0 / 0
Регистрация: 09.02.2015
Сообщений: 25
24.02.2016, 13:13  [ТС]
Возникла проблемка.
Если файла во вложении нету то попытка прочитать его имя AttFrom!FileName вызывает ошибку. Можно как то узнать есть ли файл во вложениях? Проверка AttFrom!FileName > "" не подходит по тому что если файла нет то и прочесть имя мы не можем.
0
шапоклякистка 8-го дня
 Аватар для texnik-san
3681 / 2241 / 391
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
25.02.2016, 01:50
А каким образом при отсутствии вложенного файла вы оказваетесь внутри цикла с условием While Not AttFrom.EOF ?

Добавлено через 12 часов 21 минуту
SlavaSVO, так все-таки? Мне уже просто любопытно самой, как у вас получилось.
0
0 / 0 / 0
Регистрация: 09.02.2015
Сообщений: 25
25.02.2016, 10:06  [ТС]
Чесно уже и не понимаю. Вроди работает. Удалил вложения и снова загрузил и стало работать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.02.2016, 10:06
Помогаю со студенческими работами здесь

Две связи между двумя таблицами
Не могу понять,как добавить еще одну связь между таблицами Актеры и СыгранныеРоли,нужно провести связь КодАктера-КодАктера. Или нужно...

Несколько связей между двумя таблицами
Здравствуйте! Дали задание по БД, вот схема Никак не могу сделать несколько связей между таблицами Сделка и Заявка Не подскажите как...

Как организовать обмен данными между двумя таблицами двух разных файлов Access?
ВОПРОС: - Как организовать обмен данными между двумя таблицами двух разных файлов Access? - Чтобы КОМП 2 имеет доступ только к...

Наладить связи между практически одинаковыми таблицами таблицами
Помогите пожалуйста со следующей затыкой. Выбираю "Схема данных". Там открыты три таблицы. Одна материнская (откуда идет номер модели)...

Триггер между двумя таблицами
Пишу Базу данных для склада (для курсовой). Есть две таблицы: Products и Operations. В первой информация о продукте (ID, Title, Category,...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru