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

Добавление файла вполе вложение на форме по кнопке

11.04.2013, 16:08. Показов 6461. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помоги пожалуйста!
Смысл таков:
надо чтобы при нажатии на кнопку на форме, файлы из определенной папки прикреплялись к создаваемой записи записи. Файлов может быть несколько до 15 шт., с разными расширениями и названиями.
Уже два дня ковыряюсь, и не могу сообразить как это сделать.
Если не трудно приведите пример с кодом.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.04.2013, 16:08
Ответы с готовыми решениями:

Активация запроса на добавление данных по кнопке в форме
Всем привет! Я - почти совсем нуб в Access, поэтому заранее прошу прощения за возможную бестактность вопроса. Создал базу данных, пару...

EMail вложение в письмо из поля с типом Вложение
Добрый всем день. Есть таблица, в ней есть поле с типом Вложение. Нужно файлы из поля типом Вложение отправить по почте. Создать новое...

Вложение файла в e-mail
Возникла проблема с вложением файла в письмо, вкладываются только мелкие файлы примерно "600 kb", другие файлы размером например...

11
Эксперт MS Access
 Аватар для alvk
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,380
12.04.2013, 02:26
Цитата Сообщение от georg18197 Посмотреть сообщение
файлы из определенной папки прикреплялись к создаваемой записи записи. Файлов может быть несколько до 15 шт., с разными расширениями и названиями.
Создаёте ещё одну таблицу, связываете с главной, многие к одному, добавляете в неё поле OLE. Строите форму, в ней подчинённую форму, основанную на второй таблице с OLE, выводите поле OLE на подчиинённую. Далее в это поле OLE можете просто копировать файлы, можете правой мышкой привязывать, если файл на диске не будет менять своё расположение. Вообще почитайте про OLE, примеров и информации много.
0
0 / 0 / 0
Регистрация: 11.04.2013
Сообщений: 7
12.04.2013, 10:22  [ТС]
Дело в том, что база сетевая, не на всех компах может быть прога OLE. К тому же база уже запущена в работу и имеет рабочие записи (≈500шт.) которые переписывать будет очень проблематично. да и влаживаемые файлы не хранятся на компе.
Так что вопрос остается не решенным.
0
Эксперт MS Access
 Аватар для alvk
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,380
12.04.2013, 10:30
Цитата Сообщение от alvk Посмотреть сообщение
Вообще почитайте про OLE, примеров и информации много.
Цитата Сообщение от georg18197 Посмотреть сообщение
не на всех компах может быть прога OLE.
Какая такая прога OLE?

Цитата Сообщение от georg18197 Посмотреть сообщение
которые переписывать будет очень проблематично.
Серия запросов.


Цитата Сообщение от georg18197 Посмотреть сообщение
да и влаживаемые файлы не хранятся на компе.
Цитата Сообщение от alvk Посмотреть сообщение
можете правой мышкой привязывать, если файл на диске не будет менять своё расположение.
0
0 / 0 / 0
Регистрация: 11.04.2013
Сообщений: 7
12.04.2013, 11:00  [ТС]
Разобрался сейчас буду пробовать делать.
Большое спасибо!!!
А не подскажите как сделать серию запросов для перевода файлов из вложения в OLE поля

Добавлено через 58 секунд
Этих файлов на компе уже нет они только на сервере в базе
0
Эксперт MS Access
 Аватар для alvk
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,380
12.04.2013, 12:42
Цитата Сообщение от georg18197 Посмотреть сообщение
Этих файлов на компе уже нет они только на сервере в базе
На каком сервере? SQL сервер многозначные поля не поддерживает, а вложение - многозначное.


Цитата Сообщение от georg18197 Посмотреть сообщение
Большое спасибо!!!
По этому поводу есть кнопка под сообщением и нажатие её никому не навредит
1
0 / 0 / 0
Регистрация: 11.04.2013
Сообщений: 7
12.04.2013, 13:12  [ТС]
Цитата Сообщение от alvk Посмотреть сообщение
На каком сервере? SQL сервер многозначные поля не поддерживает, а вложение - многозначное.
сервер это отдельная машина
0
3544 / 1118 / 94
Регистрация: 13.03.2011
Сообщений: 1,513
12.04.2013, 13:45
Цитата Сообщение от georg18197
надо чтобы при нажатии на кнопку на форме, файлы из определенной папки прикреплялись к создаваемой записи. Если не трудно приведите пример с кодом.
Цитата Сообщение от georg18197
А не подскажите как сделать серию запросов для перевода файлов из вложения
И во вложение, и из вложения см. здесь или здесь
3
0 / 0 / 0
Регистрация: 11.04.2013
Сообщений: 7
12.04.2013, 13:54  [ТС]
нашел вот такой код для работы с вложением, файлы добавляет, но дело в том что я не могу его привязать к текущей записи (к той над которой в данный момент работает пользователь)

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
Private Sub Кнопка12_Click()
On Error GoTo Err_AddImage
 
Dim db As DAO.Database
Dim rsParent As DAO.Recordset2
Dim rsChild As DAO.Recordset2
'Надо что-то написать чтобы привязать действие к текущей записи
Set db = CurrentDb
Set rsParent = Me.Recordset
 
rsParent.Edit
 
Set rsChild = rsParent.Fields("AttachmentTest").Value
 
rsChild.AddNew
rsChild.Fields("FileData").LoadFromFile ("c:\Sunset.jpg")
 
rsChild.Update
rsParent.Update
 
Exit_AddImage:
 
Set rsChild = Nothing
Set rsParent = Nothing
Exit Sub
 
Err_AddImage:
 
If Err = 3820 Then
MsgBox ("File already part of the multi-valued field!")
Resume Next
 
Else
MsgBox "Some Other Error occured!", Err.Number, Err.Description
Resume Exit_AddImage
 
End If
 
End Sub
Помогите доработать код
0
Эксперт MS Access
 Аватар для alvk
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,380
12.04.2013, 15:37
Если вы целиком вставляете файлы в программу, то у вас настанет момент, когда придётся что-то решать с объёмом базы, ведь он ограничен 2 гигами. В настоящий момент sql сервер не поддерживает многозначные поля, поэтому я бы посоветовал создать поля OLE в отдельной таблице и перебросить вложения туда.
0
0 / 0 / 0
Регистрация: 11.04.2013
Сообщений: 7
12.04.2013, 15:58  [ТС]
Это действительно так, поэтому записи за год в дальнейшем будут переноситься в архив (отдельную бд) и прилинковываться к основной бд (2 гб должно хватить на 1 год)

Помогите с выше приведенным кодам, что нужно дописать чтобы привязать его к текущей записи!

Добавлено через 3 минуты
Цитата Сообщение от alvk Посмотреть сообщение
Если вы целиком вставляете файлы в программу, то у вас настанет момент, когда придётся что-то решать с объёмом базы, ведь он ограничен 2 гигами. В настоящий момент sql сервер не поддерживает многозначные поля, поэтому я бы посоветовал создать поля OLE в отдельной таблице и перебросить вложения туда.
В дальнейшем записи за год будут переноситься в архив (отдельную бд) 2Гб на год должно хватить.

Помогите с выше приведенным кодом, как сделать чтобы он добавлял вложение в текущую запись.
0
 Аватар для Андрэич
2842 / 774 / 41
Регистрация: 20.05.2012
Сообщений: 2,055
21.01.2017, 07:52
Предложенный Minob тег поиска дал приемлемый вариант сразу: http://www.access-freak.com/tu... Tutorial07 . Рекомендую.

Я с ними никогда не работал (и не буду наверное), т.к. не очень понимаю реальную структуру их устройства.
Многозначность поля - это скорее всего виртуальное (ненастоящее) представление их реального устройства.
Варианта 2-3 сразу приходят на ум.

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

Для создания индексов (то есть - дополн упорядочивания имеющихся записей) используются те же самые скрытые таблицы, само по себе удачное, удобное виртуальное решение, средство. Скрыты они от глаз и пользователей, и разработчиков, в том смысле, конечно, что их инженерами не представляется объектных методов, свойств для обращения и манипулирования этими служебными структурами)...

Второй вариант - это использование массивов - многозначных переменных в этой терминологии. В VBA, к примеру (начиная с ver 6.0), есть помимо этого и хорошие встроенные функции для работы с ними, в частности Split() и обратная ей Join(), Filter()...

Третьим вариантом можно попробовать работать с полем, пусть и многозначным, как с именованным потоком данных. В этом случае они должны содержать сами в себе также и описание своей структуры. Здесь уже я вам не подскажу.

Но оптимальный вариант - это привести структуру ваших таблиц к классическому нормализованному варианту:
https://duckduckgo.com/?q=нормализация+таблиц , пока не поздно...

Добавлено через 11 минут
Попалась неплохая, понятная статья по нормализации: http://orloff.am.tpu.ru/data_base/kr2/index3.htm

Добавлено через 24 минуты
Посмотрел на код, вспомнил.

В технологии ADO существуют инструменты, очень подходящие для подобной задачи. Среди них, как минимум, стоит сказать о
поддержке рекордсетами потоков (Stream, text stream), а также

работы с внешними объектами - то есть именованными порциями данных. Это, конечно же, файлы, точнее - их содержимое в первичном, не абстрагированном виде, в том числе вложения, а также потоки данных (например, составляющие материю текста, а также, видимо, и других видов электронных документов: графика, музык контент и т.д...)

Добавлено через 37 минут
Цитата Сообщение от georg18197 Посмотреть сообщение
выше приведенным кодом, как сделать чтобы он добавлял вложение в текущую запись
Вам объяснять на словах? Но то же самое написано и в статье. Сделайте для этого базу, составьте её структуру, определите директорию(и) внешнего хранения, распоряжения файлами. Это будет наглядно, и тогда сами увидите и поймёте алгоритм.

В приведённом в статье коде не может быть много непонятного, так как речь идёт по сути о двух способах распоряжения: взял из файловой системы компа, вернул обратно на баланс ОС\приложения Access:
Visual Basic
1
переменнаяРекордсета.ПолеРекордсета("ИмяПоля").LoadFromFile ("c:\папка\файл.jpg")
и обратно в комп (и буквально, по VBA'шному):
Visual Basic
1
rst.Fields("FileStore").SaveToFile ("c:\папка\файл.jpg")
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.01.2017, 07:52
Помогаю со студенческими работами здесь

Вложение файла в сообщение
Всем хай! Подскажите, пожалуйста, что необходимо добавить в php код, чтобы отправлялся вложенный файл?! Пожааааааааалуйста! Я уже...

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

Добавление текста из TextBox на одной форме в ComboBox на другой форме
Добрый вечер. У меня небольшая проблема. Я сделал кнопку "Настройки" что бы открывался User Form 2, на User Form 2 появляется...

3 стандартных кнопке на форме
Привет всем, как всем известно на форме находится 3 стандартных кнопки (свернуть, развернуть на весь экран и закрыть) подскажите как можно...

Вид поля "Вложение" в форме
Здравствуйте! У меня есть вопрос по поводу представления поле "вложения" на форме. Дело в том, что я хочу, --чтобы это был...


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

Или воспользуйтесь поиском по форуму:
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