Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2 3 4      [все]
 база данных со ссылками на файлы  [new]
Inna86
Member

Откуда:
Сообщений: 6
Всем привет! Надеюсь, вы сможете помочь девушке.
Хочу немного упорядочить мою работу с документами. До этого момента использовала иксель, но он в этом плане очень неудобен, когда много документов.
Потихоньку осваиваю аксесс. Стандартные таблицы, формы и запросы у меня не вызывают вопросов. А вот ВБА пока что совсем дебри.
Но надеюсь, что вы мне поможете.

Есть БД.
В папке с БД есть папка files (здесь все файлы, пдф, изображения, doc, xls и прочее).
Хотелось бы, чтобы я могла вызвать из формы диалоговое окно для выбора файлов.
После выбора файла он должен быть скопирован в папку files, а в таблицу ссылок записывается название файла.
Далее в своих таблицах в подстановочном поле я ссылаюсь на те документы, которые относятся к нужным записям.
В итоге в форме, где я буду просматривать соответствующие записи я буду видеть прикрепленные к записи документы.
И нажатие на ссылку должно открыть документ. При вызове документа нужно учитывать, что файлы находятся на флешке, а значит путь к БД меняется, то есть путь к БД всегда должен определяться программно, точный путь заранее неизвестен.

Мда. Сумбурно получилось. Но я не технарь, простите.
23 апр 14, 13:50    [15922513]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
гурД
Guest
Inna86,

вам это всё нужно объяснить, показать похожий пример или в вашем файле? )
23 апр 14, 13:57    [15922568]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
Inna86
Member

Откуда:
Сообщений: 6
вот пока пример того, что я хочу сделать. надеюсь он будет понятней, чем мое описание. свою начальную бд пока не стала трогать, а то запутаюсь.
Если можно, мне на примере.
Думаю, Вам придется долго мне объяснять, а так я посмотрю как сделано и хоть примерно пойму, как это делается. Все равно это изучать нужно, что я и собираюсь сделать. Думаю, за годик для своих нужд я смогу изучить vba. И очень надеюсь на помощь Вашего форума в этом. Постараюсь слишком много не просить. В конце концов, сама хочу понять как и что делается.
Сейчас хочется начать хотя бы с минимальных моих потребностей, чтобы работать было проще. А дальше по необходимости.

Спасибо, что отзвались.

К сообщению приложен файл (пример.zip - 88Kb) cкачать
23 апр 14, 14:23    [15922753]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4610
Inna86,

Немного сделал по другому...
Для каждого документа свой набор файлов (даже если это один и тот же файл). Файлы копируются в папку files, но не под оригинальным именем, а с новым - Document_DocID_FileID, где Document префикс, DocID - код записи документа по БД, FileID - код записи прикреплённого файла. Это сделано для того, что бы избежать конфликта имён. И так проще рулить файлами, ИМХО.

К сообщению приложен файл (Макет_файлы.zip - 29Kb) cкачать
24 апр 14, 06:50    [15926514]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4610
Inna86
...Далее в своих таблицах в подстановочном поле...
Выделенным не пользуйтесь, хотябы пока... Это часто вызывает недоразумения. В таблицы напрямую не рекомедуется смотреть, пользуйтесь формами, стало быть пусть будут просто данные в полях, без подстановок. ИМХО
24 апр 14, 06:56    [15926517]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
гурД
Guest
Inna86
вызвать из формы диалоговое окно для выбора файлов.
После выбора файла он должен быть скопирован в папку files, а в таблицу ссылок записывается название файла.

- Должна быть добавлена библитека Microsoft Office ... Library (Alt+F11 - Tools - References)
-
+
Private Sub Кнопка12_Click()

'    ПЕРЕМЕННЫЕ

    Dim strFileName As String 'полного пути к выбранному файлу
    Dim intResult As Integer  '
    
    Dim strIns As String 'текста запроса SQL на добавление (вставку)
    Dim fso As Object    'объекта FileSystemObject
    Dim f As Object      'объекта File, входящего в FileSystemObject
    
'    ВЫПОЛНЕНИЕ (FileDialog - объект, инициализируемый динамически, без переменной)

    With Application.FileDialog(msoFileDialogFilePicker)
    
        .AllowMultiSelect = False                       'только один файл
        .InitialFileName = "C:\Users\Андрей\Desktop"    'начальная директория поиска
'        .InitialFileName = CurrentProject.Path & "\files\"
        intResult = .Show
        If (intResult <> 0) Then
            strFileName = Trim(.SelectedItems.Item(1)) 'обрезаем пробелы с обеих сторон названия файла
'            текст запроса:
            strIns = "INSERT INTO FileNames (filenamesWithExtensions) VALUES ('" & strFileName & "');"
'            выполнение запроса из кода VBA:
            CurrentDb.Execute strIns
'            инициализация объекта FileSystemObject
            Set fso = CreateObject("Scripting.FileSystemObject")
            'инициализация его "под-объекта" File:
            Set f = fso.GetFile(strFileName)
'            метод Copy объекта File:
'            первый аргумент - целевой каталог
'            (св-во текущ каталог + папка + св-во объекта File, возвращающее только его имя из полного пути),
'            второй аргумент - не заменять файл, если уже существует:
            f.Copy CurrentProject.Path & "\files\" & f.Name, False
'            освобождение памяти от инициализированных объектов:
            Set fso = Nothing: Set f = Nothing
                
        End If
    End With

End Sub


К сообщению приложен файл (пример.rar - 48Kb) cкачать
24 апр 14, 07:55    [15926588]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
Inna86
Member

Откуда:
Сообщений: 6
Спасибо, мальчики.
Пища для размышлений большая. Вот сижу, разбираюсь. Даже что-то получается, но нужно несколько дней.

Единственное, уважаемый Панург, в Вашем варианте Вы предлагаете переименовывать файлы. Но суть как раз в том, что мои файлы для удобства поиска и работы с ними (удобство именно для меня) имеют название вида: НазваниеДокумента_НомераДокумента_ДатаДокумента_Налоговая. Разделители - нижнее подчеркивание. Отказываться от названий не хочу потому, что не всегда я буду пользоваться базой, иногда просто нужно найти нужный файл. То есть я хочу все свои файлы перевести в свою БД, чтобы в БД имею о них всю инфу, пометки, задачи и прочее, а в папке files я смогу их искать при необходимости.
Но эту задачу я попробую сама выполнить. Ваш код меня наставил на путь.
Я еще хочу, чтобы при копировании названия файла, его название также копировалось в другую таблицу, где бы в 4 столбца попадала бы информация, разделенная разделителями. Но тут я сама попробую что-то изобразить.

Спасибо большое за помощь Панургу и ГурДу. Дальше мне надо самой поразбираться. Так как раз БД я делаю сама, то и должна понимать, что и как там вообще происходит.
24 апр 14, 12:39    [15928326]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
ПЕНСИОНЕРКА
Member

Откуда: Владимирская обл
Сообщений: 4633
Inna86,

автор
После выбора файла он должен быть скопирован в папку files


эта фраза меня весьма смутила
у вас может появиться несколько версий одного файла

мое видение задачи
таблицаструктура
таб1ид1-название задачи-описание задачи
таб2ид2-ид1-ссылки на оригиналы прикрепляемых файлов
таб2стаблица свободных(не прикрепленных) файлов, возможно эту функцию можно перенести на таб2 с флажком
+динамический поиск
24 апр 14, 13:25    [15928756]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
Inna86
Member

Откуда:
Сообщений: 6
Спасибо, ПЕНСИОНЕРКА. Надо обдумать.

Подскажите пожалуйста еще одну вещь. Я тут пробую разные варианты, которые мне могли бы подойти.
Один из них - это открывать файл таким образом (команду увидела в коде Панурга и вот сижу изучаю, как ее еще можно использовать):
Application.FollowHyperlink CurrentProject.Path & "select tblFolder.FolderName where ID=1" & Me.AttachedFiles.value
пробовала по-разному, не получается. пытаюсь читать книжку, пока каша.
FolderName - это поле в таблице tblFolder, где находится наименование папки.
Me.AttachedFiles.value - это по идее должно быть название файла из поля, которое в данный момент в ленточной форме активно.
Голова кругом. Нужна ли мне вообще эта база данных? или по старинке все делать. Сегодня только и сижу, что VBA изучаю
24 апр 14, 22:12    [15932306]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
Inna86
Member

Откуда:
Сообщений: 6
Уважаемый Панург, поняла, что долго я буду мучаться. Ваш вариант прям уже и использовать можно. Но не могли бы Вы сделать, чтобы имена файлов не переименовывались и чтобы я могла сразу выбрать несколько файлов, которые бы подряд вставились бы в таблицу?

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

Извините, если я достала. У самой уже каша в голове. Я то знаю, чего хочу, то не знаю. Если бы у меня была такая возможность, как я написала, я бы хотя бы уже пользовалась бд, а не этим икселем. А дальше уже спокойно бы начала изучать VBA.
25 апр 14, 00:07    [15932730]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
П-Л
Guest
ТС, я настоятельно рекомендую вам полностью поменять свою концепцию. Чтобы было удобно искать файлы делать это можно/нужно исключительно через вашу оболочку. Средства аксеса по представленю файлов в иерархическом виде, в виде таблицы есть. У меня в аналогичной задачке по мере набора имени файла в табличной форме автоматически позиционируется запись, содержащая вводимый образец. При нажатии на фильтр в списке остаются только файлы со строковым образцом в имени. Гораздо быстрее и эффективнее, чем файловый менеджер. Если нужна наглядност представления файлов по рубрикам, то используйте тривью. Причем таких параллельный рубрикаторов может быт больше одного, т.е. файл может быть в нескольких ветках дерева одновременно.

Ну и еще один шаг - отказаться от хранения файлов в файловой структуре, переложить их в оле поля таблиц БД. У такого решения есть и плюсы и минусы, не буду категорически советовать сделать именно так.
25 апр 14, 08:44    [15933167]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
ПЕНСИОНЕРКА
Member

Откуда: Владимирская обл
Сообщений: 4633
П-Л,

автор
отказаться от хранения файлов в файловой структуре, переложить их в оле поля таблиц БД


это видимо сильно зависит от
--количества прицепляемых файлов
--их размера
--дорабатываются ли они после прицепления
25 апр 14, 10:41    [15933766]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
П-Л
Guest
У меня крутилось на MS SQL (соответсвено adp) решение. Количество файлов - тысячи (десятки тысяч). Файлы, хранящиеся в оле полях, запускаются в "родной" программе одним кликом.
Помимо "готовых" вложенных файлов было много генерируемых по шаблонам.
В качестве дополнительной опции вордовские и эксельные файлы после обновления в базе автоматически обновляли свой файловый "первоисточник" из которого были загружены. Т.е. при работе через оболочку собсно "файловые файлы" всегда были аптудейт.
Еще одна мощная и крайне полезная фишка для генерируемых файлов - гибкая настройка путей и правил формирования имен файлов при их формировании. Т.е. при формировании договора можно было разложить их по папкам, соответсвующим типам договоров, далее - по подпапкам по имени контрагента. А можно сформировать имя вида <Тип договора>_<Имя контрагента>_договор.doc все в одной папке.
25 апр 14, 10:54    [15933883]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
ПЕНСИОНЕРКА
Member

Откуда: Владимирская обл
Сообщений: 4633
автор
Хочу немного упорядочить мою работу с документами.
...............
Есть БД.
В папке с БД есть папка files (здесь все файлы, пдф, изображения, doc, xls и прочее).
..
И нажатие на ссылку должно открыть документ.
При вызове документа нужно учитывать, что файлы находятся на флешке,
а значит путь к БД меняется, то есть путь к БД всегда должен определяться программно,
точный путь заранее неизвестен.


П-Л
У меня крутилось на MS SQL (соответсвено adp) решение.

.


вопрос человека, привыкшего работать в конфигурации,
принимаемой в организации на довольно длительное время в качестве стандарта

соответствуют ли конфигурации этих двух систем
25 апр 14, 11:35    [15934233]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4610
Inna86,

Переделал слегка по твои пожелания... Надеюсь всё будет понятно.

А фото где в профиле? Без него в следующий раз помогать не буду!

К сообщению приложен файл (Макет_файлы2.zip - 47Kb) cкачать
25 апр 14, 15:30    [15936296]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
Inna86
Member

Откуда:
Сообщений: 6
Теперь фото есть. Месячной давности. Теперь помогать будешь?

Но я и сама постараюсь не задавать слишком много вопросов.

Спасибо большое
25 апр 14, 16:12    [15936705]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4610
Inna86
Теперь фото есть. Месячной давности.
Замечательное фото.
25 апр 14, 16:25    [15936799]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
гурД
Guest
Инна, наоборот, спрашивайте, что не ясно, не стесняйтесь. Насколько я знаю, здесь только будут рады помочь
26 апр 14, 00:07    [15938961]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
полином
Guest
просто для порядка :)

К сообщению приложен файл. Размер - 87Kb
26 апр 14, 00:13    [15938983]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
гурД
Guest
Inna86
чтобы я могла сразу выбрать несколько файлов, которые бы подряд вставились бы в таблицу

То есть, чтобы в окне диалога выбора файлов можно было бы выбирать сразу несколько (.allowmultiselect=true)?

Ищите книги по VBA, удобно читать, например, в транспорте. Среди прочих у меня есть такая:
Кузьменко В.Г. VBA 2003. Самоучитель. - Москва, ООО "Бином-Пресс", 2010.
Такие книги вполне реально, думаю, купить не только в магазине, но и на развале или в букинисте...
26 апр 14, 00:52    [15939088]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
Инна (в гостях, чтобы быстрее)
Guest
Вот читаю. Вопросов нет, точнее их слишком много. Рано задавать, а то получится урок какой-то.
Я пока первоначально сделала, что хотела стандартными средствами, загрузку с Вашей помощью, а далее нужно смотреть, изучать и думать, надо мне это все вообще или нет.
27 апр 14, 14:22    [15942392]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: база данных со ссылками на файлы  [new]
Финист
Member

Откуда:
Сообщений: 87
Апп...
Панург
Inna86,

Немного сделал по другому...
Для каждого документа свой набор файлов (даже если это один и тот же файл). Файлы копируются в папку files, но не под оригинальным именем, а с новым - Document_DocID_FileID, где Document префикс, DocID - код записи документа по БД, FileID - код записи прикреплённого файла. Это сделано для того, что бы избежать конфликта имён. И так проще рулить файлами, ИМХО.


Очень класный код. Я плохо в этом разбираюсь, но постараюсь адаптировать для своей базы.
Но вопрос в другом. Можно ли как то сделать, что бы в таблицу вставлялись гиперссылки на новые изображения? Смысл в том, что бы кликабельные ссылки на эти изображения вставлялись в запрос. Или может другие способы есть?
Был бы очень признателен за ответ.
19 июл 17, 06:07    [20656032]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
Финист
Member

Откуда:
Сообщений: 87
Панург
Inna86,

Немного сделал по другому...
Для каждого документа свой набор файлов (даже если это один и тот же файл). Файлы копируются в папку files, но не под оригинальным именем, а с новым - Document_DocID_FileID, где Document префикс, DocID - код записи документа по БД, FileID - код записи прикреплённого файла. Это сделано для того, что бы избежать конфликта имён. И так проще рулить файлами, ИМХО.


Подскажите пож., как сделать в данном примере:
1. Что бы нофый файл сохранялся под именем Text_DocID_FileID? где Text - значение текстового поля записи документа по БД.
2. Что бы в форме отображались не старые наименованя файлов, а новые.
25 июл 17, 20:55    [20674696]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4610
Финист,

К сообщению приложен файл (Макет_файлы_01.zip - 30Kb) cкачать
26 июл 17, 11:29    [20675794]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
Финист
Member

Откуда:
Сообщений: 87
Панург,

Большое спасибо! Всё работает!
28 июл 17, 00:30    [20681240]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
Лапух
Member

Откуда: Стойбище № 7
Сообщений: 1016
Панург,
Фига себе.
Зыканско!!!
Беру на вооружение.
28 июл 17, 08:03    [20681397]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
Финист
Member

Откуда:
Сообщений: 87
А у меня ещё вопрос, если можно...
Можно ли как то сделать, что бы работало при разделении базы, а папка Files создавалась в папке с таблицами?
5 авг 17, 09:01    [20702395]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
Вакшуль Сергей
Member

Откуда: Харьков
Сообщений: 393
Панург, здравствуйте,

Насчет ограничения CheckWord, которое вы накладываете. Интересно. Не знал, что так можно.
Сначала, подумал, а как же ограничение будет работать, если таблица tblDocuments выступит в качестве присоединенной. Оказалось, что если в тот файл accdb/mdb, куда присоединена таблица tblDocuments, добавить в стандартный модуль функцию CheckWord, то ограничение начнет работать! Причем логику уже можно подсунуть другую :)
Но если работать с таблицей tblDocuments без среды Access, то ведь ограничение работать не будет?

А почему просто не наложить это ограничение в конструкторе используя ValidationRule поля таблицы?
5 авг 17, 14:31    [20702604]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4610
Вакшуль Сергей
Панург, здравствуйте...
Не заметил сообщение. Здравствуйте.

Вакшуль Сергей
...А почему просто не наложить это ограничение в конструкторе используя ValidationRule поля таблицы?
Да как-то в голову пришло первым, хотя можно и ValidationRule, и просто условие создать в ограничении... Возможно на тот момент у меня сначала была другая идея, которая трансформировалась в этот вариант.
Вакшуль Сергей
...Но если работать с таблицей tblDocuments без среды Access, то ведь ограничение работать не будет?...
Скорее всего не будет, не проверял.
14 авг 17, 11:21    [20721231]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
Финист
Member

Откуда:
Сообщений: 87
Вопрос по разделению базы с данным кодом актуален, да же очень...
27 авг 17, 16:20    [20752101]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
13-й квартал
Guest
Вакшуль Сергей
Панург, здравствуйте,

Насчет ограничения CheckWord, которое вы накладываете. Интересно. Не знал, что так можно.
Сначала, подумал, а как же ограничение будет работать, если таблица tblDocuments выступит в качестве присоединенной. Оказалось, что если в тот файл accdb/mdb, куда присоединена таблица tblDocuments, добавить в стандартный модуль функцию CheckWord, то ограничение начнет работать! Причем логику уже можно подсунуть другую :)
Но если работать с таблицей tblDocuments без среды Access, то ведь ограничение работать не будет?

А почему просто не наложить это ограничение в конструкторе используя ValidationRule поля таблицы?

ЧистА для справки: Злоумышленник.

В конструкторе таблицы такой ValidationRule (с функцией VBA) не наложишь, конструктор не позволит. Только выполнением запроса.

Без среды работать не будет.
+ спекуляция
, но обоснованная спекуляция: для выполнения запросов с функциями VBA движок Jet вызывает Jet Expression Services, который должен быть правильно инициализирован на проект VBA в среде выполнения (передан хендл VBA-проекта как минимум). Это то, что MS решил оставить при себе и не документировать публично. Поле для reverse engineering, короче.
28 авг 17, 11:07    [20753032]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
Финист
Member

Откуда:
Сообщений: 87
Подскажите почему в разделённой базе код не работает - файлы не копируются в папку files

К сообщению приложен файл (Вар4.zip - 95Kb) cкачать
13 сен 17, 21:42    [20794028]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4610
Финист, всё работает. Поставь ограничение на таблицу в файл-сервере. Функция CheckWord должна быть в обоих частях, хотя после установки, в части являющейся файл-сервером функцию CheckWord можно и убрать. Но будут ошибки если там вводить данные в таблицу. Главное чтобы была доступна функция с таким именем, а что она делает дело десятое.
14 сен 17, 04:29    [20794310]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
Финист
Member

Откуда:
Сообщений: 87
Панург,
Прошу прощения, я не спец в Accsess. Какое ограничение установить на таблицу? Что то в свойствах?
CheckWord. Скопировать модуль в файл-сервер?
14 сен 17, 07:38    [20794375]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4610
Финист
я не спец в Accsess
ну раз взялся за гуж, то литературку нужно почитывать (падоброму)...

Финист
Какое ограничение установить на таблицу?
Ты же делаешь по моему примеру? Так? так вот, процедура ADD_CONSTRAINT устанавливает ограничение (CONSTRAINT CHECK) возможных значений, которые могут быть введены в столбец или столбцы таблицы Series. Проверка осуществляется при помощи функции CheckWord. Вот она должна быть в обоих частях твоего приложения. Устанавливается ограничение из файла выполняющего роль файл-сервера (Сервер.accdb), далее в принципе оттуда можно всё (код) удалить.

Как правильно заметил Вакшуль Сергей, можно условие прописать в конструкторе поля таблицы (см. рис.)

К сообщению приложен файл. Размер - 88Kb
14 сен 17, 08:34    [20794437]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
Финист
Member

Откуда:
Сообщений: 87
Панург,
Я стараюсь, пытаюсь, читаю, только у меня ещё третий класс, а задачки пытаюсь решить для 10-го.
Вобщем попробовал и вставить модуль в файл-сервер, и поставить уловие на значение, только так как показано у Вас на скане, у меня на абсолютно любое значение ругается. Поэтому я сделал так: Not Like '*[*|\:/""<>?]*'
Та же ошибка. В момент прикрепления файла вылазит MsgBox "Ooopps!... Не смогли прикрепить файл!". И как мне кажется это вообще не связано с проверкой на запрещённые символы.
Я вот думаю, если у Вас работает, то возможно у меня проблема в самом Accsess или настройках... может версия...? у меня 2010.
14 сен 17, 14:59    [20796087]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4610
Финист
Вобщем попробовал и вставить модуль в файл-сервер, и поставить уловие на значение, только так как показано у Вас на скане, у меня на абсолютно любое значение ругается. Поэтому я сделал так: Not Like '*[*|\:/""<>?]*'
В данном варианте модуль не нужен вообще. Ошибка - убери знак равно в условии (тут моя ошибка)
Финист
В момент прикрепления файла вылазит MsgBox "Ooopps!... Не смогли прикрепить файл!". И как мне кажется это вообще не связано с проверкой на запрещённые символы.
Тебе правильно кажется. Там убрать или поменять значение константы dbOpenTable нужно - таблица прилинкована.
15 сен 17, 04:36    [20797587]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
Финист
Member

Откуда:
Сообщений: 87
Панург,
Ещё вопрос, если можно. Как сделать, что бы прикрепляемые файлы сохранялись в папке с таблицами, а не с клиентской частью. Заменить CurrentProject.Path на что то? На что?
17 сен 17, 19:55    [20801873]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4610
Финист, находи какую-нибудь прилинкованную таблицу, узнавай у неё путь до файл-сервера и в путь. .
Как это сделать ищи по форуму...
18 сен 17, 04:07    [20802291]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
Финист
Member

Откуда:
Сообщений: 87
Панург,
Найти путь? CurrentDb.TableDefs("Табл").Connect. Так? Только всё равно не получается, если я просто вместо CurrentProject.Path.
Упс. Не смогли прикрепить файл.
18 сен 17, 20:14    [20804532]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4610
Финист
Найти путь? CurrentDb.TableDefs("Табл").Connect. Так?
А ты смотрел, что там в строке?

К сообщению приложен файл (07.zip - 99Kb) cкачать
19 сен 17, 07:17    [20804871]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
Финист
Member

Откуда:
Сообщений: 87
Простите, но это уже высший пилотаж. Хорошо, если у меня получится адаптировать к своей базе. Пока сижу с букварём, перевожу что там к чему...
19 сен 17, 21:43    [20807398]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
saliiyut
Member

Откуда: Москва
Сообщений: 1
!!!
21 сен 17, 20:00    [20813571]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
Финист
Member

Откуда:
Сообщений: 87
Адаптировать получилось. Стала вылазить ошибка в другой части кода, но я с ней разобрался. Так что всё замечательно.
Большое спасибо за помощь!
22 сен 17, 06:30    [20814280]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: база данных со ссылками на файлы  [new]
Сергей Ком
Member

Откуда:
Сообщений: 3
Панург, очень полезная программа. Только вот не могу понять почему она со связанными таблицами не работает.
Было бы очень хорошо. Суть: база с таблицами болтается на сервере, а пользователи работают по связанным с ней таблицам.
У меня есть свой рабочий проект. Но он немного не такой. Вот хотелось бы разобраться.
7 дек 18, 15:43    [21757178]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4610
Сергей Ком
очень полезная программа
Какая?
7 дек 18, 16:37    [21757297]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
Сергей Ком
Member

Откуда:
Сообщений: 3
Панург, О которой тут идет речь (пусть будет называться процедура)))
Просто у меня не получается заставить ее работать на связанных таблицах.
Вот пытають разобраться.
10 дек 18, 08:27    [21758773]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4610
Сергей Ком
Панург, О которой тут идет речь (пусть будет называться процедура)))
Просто у меня не получается заставить ее работать на связанных таблицах.
Вот пытають разобраться.
можно сослаться конкретней? Тут много чего есть и я не очень понимаю про что идёт речь.
10 дек 18, 09:37    [21758803]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
Сергей Ком
Member

Откуда:
Сообщений: 3
Панург, спасибо за внимание. Я вроде уже разобрался.
10 дек 18, 10:39    [21758854]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
RusGor
Member

Откуда:
Сообщений: 27
Панург, день добрый!
Спасибо за ваш труд, прошу проверить на сколько правильно исправил под свои задачи. Возможно можно проще написать или как то логичнее.

Что исправил:
1) Новая запись в таблице tblAttachedFiles, написал как ниже, чтобы не создавать еще один столбец и в поле FileName таблицы tblAttachedFiles записывалось конечное название файла

.AddNew
.Fields(1) = Me.DocID
.Fields(2) = Mid(strFileName, InStrRev(strFileName, "\") + 1)
.Fields(2) = (Me.Text_ + "_") & CStr(.Fields(1)) & "_" & CStr(.Fields(0)) & Mid(.Fields(2), InStrRev(.Fields(2), "."))
.Update
.Bookmark = .LastModified
strFileNameNew = CurrentProject.Path & "\Files\" & .Fields(2)

Может можно проще написать

2) в запросе Form_Current() убрал "tblDocuments.Text_" Зачем его выбирать для вывода в форме, если есть имя файла?

.RowSource = "SELECT tblAttachedFiles.FileID, tblAttachedFiles.FileName, tblAttachedFiles.DocID " & _
"FROM tblDocuments RIGHT JOIN tblAttachedFiles ON tblDocuments.DocID = tblAttachedFiles.DocID " & _
"WHERE tblAttachedFiles.DocID=" & CStr(Me.DocID) & " AND Not tblAttachedFiles.IsRemote;"

К сообщению приложен файл (Test.zip - 86Kb) cкачать
20 ноя 19, 14:05    [22020629]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
RusGor
Member

Откуда:
Сообщений: 27
Панург,
Видимо так правильно
.AddNew
.Fields(1) = Me.DocID
.Fields(2) = (Me.Text_ + "_") & CStr(.Fields(1)) & "_" & CStr(.Fields(0)) & Mid(strFileName, InStrRev(strFileName, "."))
.Update
.Bookmark = .LastModified
strFileNameNew = CurrentProject.Path & "\Files\" & .Fields(2)
20 ноя 19, 19:40    [22021237]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4610
RusGor
Зачем его выбирать для вывода в форме, если есть имя файла?
Для начала нужно прочитать весь тред и посмотреть для кого делался пример. Тут всё есть.
21 ноя 19, 04:45    [22021402]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
RusGor
Member

Откуда:
Сообщений: 27
Панург, доброе утро!
Как можно установить path на onedrive? Чтобы файлы хранить в onedrive for business.
21 ноя 19, 09:32    [22021482]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4610
RusGor, про последний офис не скажу (но думаю что нет), все другие просто так напрямую не поддерживают подобного функционала. ИМХО
21 ноя 19, 09:37    [22021489]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
RusGor
Member

Откуда:
Сообщений: 27
Панург, день добрый!
Подскажите, что подправить? Если таблицы находятся в базе Mysql и прилинкованы к Access.
По этой статье пытался www.firststeps.ru/vba/vbahelp/daohelp/r.php?73

Пишет не удалось добавить файл,..
29 янв 20, 19:16    [22068987]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4610
RusGor
Панург, день добрый!
Подскажите, что подправить? Если таблицы находятся в базе Mysql и прилинкованы к Access.
По этой статье пытался www.firststeps.ru/vba/vbahelp/daohelp/r.php?73

Пишет не удалось добавить файл,..
Ничего не понял, но очень интересно ©
30 янв 20, 07:26    [22069192]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
RusGor
Member

Откуда:
Сообщений: 27
Панург, доброе утро! Постараюсь объяснить:
1) Таблицы расположены на Mysql
2) Таблицы подключены по DAO к Accsess через ODBC драйвер, по данной статье http://msa.polarcom.ru/st/s0000241.htm
3) Делал по вашему примеру, см.вложение. Изменил таблицу tblAttachedFiles (переписал так, чтобы новое имя файла записывалось в столбец FileName не знаю на сколько верно сделал, но работает. Столбец FileNameNew удалил)
4) Но не работает если таблицы расположены на сервере Mysql, через форму FrmDocs нажимаем добавить файл и выдает сообщение "Ooopps!...не смогли добавить файл!" данные в таблицу не tblAttachedFiles не записывает.

Если правильно понимаю, проблемы Set rst = CurrentDb.OpenRecordset("tblAttachedFiles", dbOpenTable) или путь не верно указан к таблице на сервере Mysql

К сообщению приложен файл (Макет_файлы_01.zip - 46Kb) cкачать
30 янв 20, 10:56    [22069326]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
court
Member

Откуда:
Сообщений: 1930
RusGor
Set rst = CurrentDb.OpenRecordset("tblAttachedFiles", dbOpenTable)
этот тип рекордсета только для "родных" Акс-таблиц
30 янв 20, 11:11    [22069339]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
RusGor
Member

Откуда:
Сообщений: 27
court, здравствуйте!
Читал об этом тут, http://www.firststeps.ru/vba/vbahelp/daohelp/r.php?73
Но что не выходит каменный цветок
30 янв 20, 11:15    [22069346]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
court
Member

Откуда:
Сообщений: 1930
RusGor
court, здравствуйте!
Читал об этом тут, http://www.firststeps.ru/vba/vbahelp/daohelp/r.php?73
Но что не выходит каменный цветок


автор
dbOpenTable - Открытие табличного объекта Recordset (только в рабочей области ядра Microsoft Jet).
dbOpenDynamic - Открытие объекта Recordset динамического типа, аналогичного динамическому указателю ODBC (только в рабочей области ODBCDirect)
dbOpenDynaset - Открытие объекта Recordset типа динамического набора записей, аналогичного указателю ключевого набора записей ODBC
dbOpenSnapshot - Открытие объекта Recordset типа статического набора записей, аналогичного указателю статического набора записей ODBC
dbOpenForwardOnly - Открытие объекта Recordset типа статического набора записей с последовательным доступом

после этого "не выходит" ??

поменяй dbOpenTable на dbOpenSnapshot , например, для начала
30 янв 20, 11:22    [22069357]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4610
RusGor, а если вручную прицепить таблицы, открыть требуемую таблицу и внести изменения?
30 янв 20, 11:26    [22069365]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4610
RusGor
через форму FrmDocs нажимаем добавить файл и выдает сообщение "Ooopps!...

в коде добавь
Private Sub cmdFileAdd_Click()
...
                    If Err Then
                        Debug.Print Err.Number; Err.Description
                        Err.Clear
...
В окно Immediate будет выведено осмысленное сообщение номера и описание ошибки.

Сообщение было отредактировано: 30 янв 20, 11:34
30 янв 20, 11:34    [22069370]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
RusGor
Member

Откуда:
Сообщений: 27
court
RusGor
court, здравствуйте!
Читал об этом тут, http://www.firststeps.ru/vba/vbahelp/daohelp/r.php?73
Но что не выходит каменный цветок


автор
dbOpenTable - Открытие табличного объекта Recordset (только в рабочей области ядра Microsoft Jet).
dbOpenDynamic - Открытие объекта Recordset динамического типа, аналогичного динамическому указателю ODBC (только в рабочей области ODBCDirect)
dbOpenDynaset - Открытие объекта Recordset типа динамического набора записей, аналогичного указателю ключевого набора записей ODBC
dbOpenSnapshot - Открытие объекта Recordset типа статического набора записей, аналогичного указателю статического набора записей ODBC
dbOpenForwardOnly - Открытие объекта Recordset типа статического набора записей с последовательным доступом

после этого "не выходит" ??

поменяй dbOpenTable на dbOpenSnapshot , например, для начала

Это все испробовано
30 янв 20, 11:44    [22069382]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
RusGor
Member

Откуда:
Сообщений: 27
Панург, день добрый!
код ошибки
75 Path/File access error
30 янв 20, 11:45    [22069384]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
RusGor
Member

Откуда:
Сообщений: 27
RusGor,
Может сначала нужно установить соединение OpenConnection
30 янв 20, 12:04    [22069410]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4610
RusGor
Может сначала нужно установить соединение OpenConnection

Может сначала попробовать?
Панург
RusGor, а если вручную прицепить таблицы, открыть требуемую таблицу и внести изменения?

Да и заремь
'On Error Resume Next
30 янв 20, 12:28    [22069441]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
RusGor
Member

Откуда:
Сообщений: 27
Панург
RusGor, а если вручную прицепить таблицы, открыть требуемую таблицу и внести изменения?

Извините, можно подробнее. Не понимаю
30 янв 20, 12:41    [22069461]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4610
RusGor
Извините, можно подробнее. Не понимаю
блин...ну почитай хотя бы это -> Доступ к БД mySQL из Microsoft Access
30 янв 20, 12:48    [22069476]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
RusGor
Member

Откуда:
Сообщений: 27
Панург,
Написали бы через DSN, то сразу бы понял.
Сделал, такая же ошибка
30 янв 20, 13:02    [22069491]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
RusGor
Member

Откуда:
Сообщений: 27
Панург,

добавил в ручную, имя файла в таблицу, чтобы в форме отобразился путь к файлу и имя файла. Попробовал еще добавить файл
выдал уже такую ошибку
3251 Операция не поддерживается для объектов этого типа
30 янв 20, 13:13    [22069502]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4610
RusGor,
Панург
Да и заремь
'On Error Resume Next
это сделал? Выполнение кода остановится на ошибке.
30 янв 20, 14:02    [22069546]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
RusGor
Member

Откуда:
Сообщений: 27
Панург,

Да сделал
30 янв 20, 14:23    [22069563]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4610
RusGor
Да сделал
так на чём остановилось?
30 янв 20, 14:26    [22069565]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
RusGor
Member

Откуда:
Сообщений: 27
Панург,

Если в ручную добавить имя файла в таблицу то останавливается на .AddNew (с ошибкой 3251 Операция не поддерживается для объектов этого типа)

Если нажимаешь удалить, выскакивает диалоговое окно (Ошибка 2147217904, Отсутствует значение для одного или нескольких требуемых параметров)

Если таблицы пустые и добавляешь файл .AddNew
30 янв 20, 14:37    [22069576]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4610
RusGor, ты просто таблицу открыть и добавить или удалить запись можешь? Без форм и кода.

Сообщение было отредактировано: 30 янв 20, 14:46
30 янв 20, 14:46    [22069586]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
RusGor
Member

Откуда:
Сообщений: 27
Панург,
Да могу, все без проблем
30 янв 20, 14:55    [22069595]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
RusGor
Member

Откуда:
Сообщений: 27
Панург,
Если изменить на dbOpenTable, то ругается на эту строчку
Set rst = CurrentDb.OpenRecordset("tblAttachedFiles", dbOpenTable)
30 янв 20, 15:16    [22069616]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4610
RusGor
Если изменить на dbOpenTable, то ругается на эту строчку
Set rst = CurrentDb.OpenRecordset("tblAttachedFiles", dbOpenTable)
Мне кажется выше тебе написали что там должно быть
30 янв 20, 15:31    [22069641]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
RusGor
Member

Откуда:
Сообщений: 27
Панург,

Да видел, исправил на dbOpenSnapshot

Так на всякий случай
30 янв 20, 15:33    [22069642]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
RusGor
Member

Откуда:
Сообщений: 27
Панург,
Что еще может быть, есть идеи?
30 янв 20, 18:17    [22069782]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4610
RusGor
Что еще может быть, есть идеи?
Код свой покажи, тот что вызывает ошибку. Полностью процедуру (или чего там у тебя).
31 янв 20, 04:29    [22070087]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
RusGor
Member

Откуда:
Сообщений: 27
Панург, день добрый!
Private Sub cmdFileAdd_Click()
Dim dlgOpenFile As Object 'FileDialog
Dim strFileName As String, strFileNameNew As String
Dim rst As DAO.Recordset

'On Error Resume Next
strFileName = CurrentProject.Path & "\Files\"
    If Len(Dir$(strFileName, vbDirectory)) = 0 Then MkDir strFileName
Set dlgOpenFile = Application.FileDialog(1&) 'msoFileDialogOpen
    With dlgOpenFile
        .InitialFileName = CurrentProject.Path
        .AllowMultiSelect = False
        .Title = "Укажите прикрепляемый файл"
            If .Show = -1 Then
                strFileName = .SelectedItems(1)
                Set rst = CurrentDb.OpenRecordset("tblattachedfiles", dbOpenSnapshot)
                    With rst
                        .AddNew
                        .Fields(1) = Me.DocID
                        .Fields(2) = Mid(strFileName, InStrRev(strFileName, "\") + 1)
                        .Fields(3) = (Me.Text_ + "_") & CStr(.Fields(1)) & "_" & CStr(.Fields(0)) & Mid(.Fields(2), InStrRev(.Fields(2), "."))
                        .Update
                        .Bookmark = .LastModified
                        strFileNameNew = CurrentProject.Path & "\Files\" & .Fields(3)
                    End With
                FileCopy strFileName, strFileNameNew
                    If Err Then
                        Err.Clear
                        rst.Delete
                        MsgBox "Ooopps!..." & vbNewLine & "Не смогли прикрепить файл!", vbCritical
                    Else
                            With Me.lstFileName
                                .Requery
                                .Value = rst.Fields(0)
                            End With
                        lstFileName_Click
                    End If
                rst.Close
            Else
                MsgBox "А что отказались?", vbInformation
            End If
    End With
Set rst = Nothing
Set dlgOpenFile = Nothing
End Sub


К сообщению приложен файл. Размер - 12Kb
2 фев 20, 17:38    [22071171]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4610
RusGor, вроде ничего криминального не вижу. Протестировать мне не на чем, т.к. нет сервера MySQL.
Давай попробуем протестировать получение набора данных на другой технологии - ADO. Таким способом можно получить характеристики набора данных. Заведи новую БД Access (подключи таблицы) или создай в текущей новый модуль, подключи библиотеку доступа к данным ADO, добавь код. Код взят у Гетца&Ко
+
Public Sub TestRecordsets()
    Dim rst As ADODB.Recordset
    
    Set rst = New ADODB.Recordset
    
    rst.Open "tblattachedfiles", CurrentProject.Connection, adOpenKeyset, adLockOptimistic, adCmdTableDirect
    Debug.Print "======================="
    RecordsetSupport rst
    rst.Close
    Set rst = Nothing
End Sub

Private Sub RecordsetSupport(rst As ADODB.Recordset)
    If rst.Supports(adAddNew) Then
        Debug.Print "Supports AddNew"
    Else
        Debug.Print "Doesn't support AddNew"
    End If
    If rst.Supports(adApproxPosition) Then
        Debug.Print "Supports AbsolutePosition"
    Else
        Debug.Print "Doesn't support AbsolutePosition"
    End If
    If rst.Supports(adBookmark) Then
        Debug.Print "Supports bookmarks"
    Else
        Debug.Print "Doesn't support bookmarks"
    End If
    If rst.Supports(adDelete) Then
        Debug.Print "Supports Delete"
    Else
        Debug.Print "Doesn't support Delete"
    End If
    If rst.Supports(adFind) Then
        Debug.Print "Supports Find"
    Else
        Debug.Print "Doesn't support Find"
    End If
    If rst.Supports(adHoldRecords) Then
        Debug.Print "Supports move without save"
    Else
        Debug.Print "Doesn't support move without save"
    End If
    If rst.Supports(adIndex) Then
        Debug.Print "Supports Index"
    Else
        Debug.Print "Doesn't support Index"
    End If
    If rst.Supports(adMovePrevious) Then
        Debug.Print "Supports MovePrevious"
    Else
        Debug.Print "Doesn't support MovePrevious"
    End If
    If rst.Supports(adResync) Then
        Debug.Print "Supports Resync"
    Else
        Debug.Print "Doesn't support Resync"
    End If
    If rst.Supports(adSeek) Then
        Debug.Print "Supports Seek"
    Else
        Debug.Print "Doesn't support Seek"
    End If
    If rst.Supports(adUpdate) Then
        Debug.Print "Supports Update"
    Else
        Debug.Print "Doesn't support Update"
    End If
    If rst.Supports(adUpdateBatch) Then
        Debug.Print "Supports UpdateBatch"
    Else
        Debug.Print "Doesn't support UpdateBatch"
    End If
End Sub

Запускаем TestRecordsets и смотрим результат в окне Immediate.

Сообщение было отредактировано: 3 фев 20, 04:45
3 фев 20, 04:44    [22071387]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
vmag
Member

Откуда: MP
Сообщений: 3456
RusGor,

Вроде и нельзя сказать, что не показал код ошибки, но и толку с такого показа маловато...
Нужно было еще нажать Debug, тогда бы было ясно на какой строке падает, тогда бы возможно и сам понял причину...
3 фев 20, 11:40    [22071573]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
RusGor
Member

Откуда:
Сообщений: 27
Панург, доброе утро!

Вот что выдает.

=======================
Supports AddNew
Doesn't support AbsolutePosition
Supports bookmarks
Supports Delete
Supports Find
Supports move without save
Doesn't support Index
Supports MovePrevious
Doesn't support Resync
Doesn't support Seek
Supports Update
Supports UpdateBatch
3 фев 20, 11:54    [22071584]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
RusGor
Member

Откуда:
Сообщений: 27
vmag
RusGor,

Нужно было еще нажать Debug.

Выше писал что ругается на .AddNew

Вот тут .Fields(3) = (Me.Text_ + "_") & CStr(.Fields(1)) & "_" & CStr(.Fields(0)) & Mid(.Fields(2), InStrRev(.Fields(2), "."))

Тут пишет что текущая запись отсутствует CStr(.Fields(1)) и тут CStr(.Fields(0))

.LastModified -операция не поддерживается для объектов данного типа
3 фев 20, 12:01    [22071600]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
RusGor
Member

Откуда:
Сообщений: 27
Панург,

В этом может причина?
https://docs.microsoft.com/ru-ru/office/client-developer/access/desktop-database-reference/recordset-absoluteposition-property-dao
3 фев 20, 12:06    [22071604]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4610
RusGor
=======================
Supports AddNew
Doesn't support AbsolutePosition
Supports bookmarks
Supports Delete
Supports Find
Supports move without save
Doesn't support Index
Supports MovePrevious
Doesn't support Resync
Doesn't support Seek
Supports Update
Supports UpdateBatch
добавление данных источник поддерживает...
3 фев 20, 12:37    [22071624]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4610
RusGor
В этом может причина?
это к чему?
3 фев 20, 12:37    [22071626]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
RusGor
Member

Откуда:
Сообщений: 27
Панург,
Все взрыв мозга...
3 фев 20, 12:48    [22071640]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
RusGor
Member

Откуда:
Сообщений: 27
Панург
это к чему?
к этому AbsolutePosition
3 фев 20, 12:50    [22071642]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4610
RusGor
Set rst = CurrentDb.OpenRecordset("tblattachedfiles", dbOpenDynaset)
попробуй так переписать...


RusGor
.Fields(3) = (Me.Text_ + "_") & CStr(.Fields(1)) & "_" & CStr(.Fields(0)) & Mid(.Fields(2), InStrRev(.Fields(2), "."))
тут возможно будет ошибка (проблема при работе MySQL, см. ссылку ниже). Попробуй переписать на ADO.

vmag,у тебя же проблемы вылазили с MySQL DAO + ODBC + MySql получение ключа-счетчика в момент создания записи Как решилось?

Сообщение было отредактировано: 3 фев 20, 12:58
3 фев 20, 12:53    [22071646]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4610
RusGor
к этому AbsolutePosition
А что не так с этим свойством?
3 фев 20, 12:54    [22071648]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
RusGor
Member

Откуда:
Сообщений: 27
Панург,

RusGor
.Fields(0)


Именно тут. Выдает NULL
3 фев 20, 13:30    [22071704]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
RusGor
Member

Откуда:
Сообщений: 27
Панург,

Не обращайте внимание.
3 фев 20, 13:31    [22071709]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
vmag
Member

Откуда: MP
Сообщений: 3456
Панург
vmag,у тебя же проблемы вылазили с MySQL DAO + ODBC + MySql получение ключа-счетчика в момент создания записи Как решилось?

Для DAO:
- запрос с сортировкой по ключу (чтоб последний был всегда последним)
- после добавления Requery + MoveLast
Все остальное не работает...
3 фев 20, 13:41    [22071721]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
RusGor
Member

Откуда:
Сообщений: 27
Панург и vmag, здравствуйте!
Спасибо, что направили на путь истинный.
Панург
Set rst = CurrentDb.OpenRecordset("tblattachedfiles", dbOpenDynaset)


RusGor
.Fields(0) 
Индекс (на.. он мне нужен) только для уникальности имени файла.

vmag
- после добавления Requery + MoveLast


Вот итог: не знаю на сколько верно, но работает. Может подскажите что исправить,.?
Private Sub cmdFileAdd_Click()
Dim dlgOpenFile As Object 'FileDialog
Dim strFileName As String, strFileNameNew As String
Dim rst As DAO.Recordset

On Error Resume Next
strFileName = CurrentProject.Path & "\Files\"
    If Len(Dir$(strFileName, vbDirectory)) = 0 Then MkDir strFileName
Set dlgOpenFile = Application.FileDialog(1&) 'msoFileDialogOpen
    With dlgOpenFile
        .InitialFileName = CurrentProject.Path
        .AllowMultiSelect = False
        .Title = "Укажите прикрепляемый файл"
            If .Show = -1 Then
                strFileName = .SelectedItems(1)
                Set rst = CurrentDb.OpenRecordset("tblattachedfiles", dbOpenDynaset)
                    With rst
                        .AddNew
                        .Fields(1) = Me.DocID
                        .Fields(2) = (Me.Text_ + "_") & Format(Now(), "dd.mm.yyyy.hh.nn.ss") & Mid(strFileName, InStrRev(strFileName, "."))
                        .Fields(3) = 0
                        .Update
                        .Bookmark = .LastModified
                        .Requery
                        .MoveLast
                        strFileNameNew = CurrentProject.Path & "\Files\" & .Fields(2)
                    End With
                FileCopy strFileName, strFileNameNew
                    If Err Then
                        'Debug.Print Err.Number; Err.Description
                        Err.Clear
                        rst.Delete
                        MsgBox "Ooopps!..." & vbNewLine & "Не смогли прикрепить файл!", vbCritical
                    Else
                            With Me.lstFileName
                                .Requery
                                .Value = rst.Fields(0)
                            End With
                        lstFileName_Click
                    End If
                rst.Close
            Else
                MsgBox "А что отказались?", vbInformation
            End If
    End With
Set rst = Nothing
Set dlgOpenFile = Nothing
End Sub


Сообщение было отредактировано: 4 фев 20, 23:52
4 фев 20, 23:52    [22073215]     Ответить | Цитировать Сообщить модератору
 Re: база данных со ссылками на файлы  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4610
RusGor
Set rst = CurrentDb.OpenRecordset("tblattachedfiles", dbOpenDynaset)
Тут скорее всего нужен запрос с явной сортировкой по ключу, иначе ничто не гарантирует что новая запись будет последней в коде ниже. Да и вообще нужно подумать над этим набором - зачем тащить всю таблицу?...
RusGor
                        .Requery
                        .MoveLast



RusGor
.Bookmark = .LastModified
Это лишнее в данном случае, ИМХО.


RusGor
                FileCopy strFileName, strFileNameNew
                    If Err Then
                        Err.Clear
                        rst.Delete
                        MsgBox "Ooopps!..." & vbNewLine & "Не смогли прикрепить файл!", vbCritical
Эту часть для данного случая я бы протестировал дополнительно. Тормознул бы код выше на точке останова и открыл бы файл на редактирования другой программой.

Сообщение было отредактировано: 5 фев 20, 04:09
5 фев 20, 04:06    [22073308]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2 3 4      [все]
Все форумы / Microsoft Access Ответить