powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / база данных со ссылками на файлы
98 сообщений из 98, показаны все 4 страниц
база данных со ссылками на файлы
    #38623008
Inna86
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет! Надеюсь, вы сможете помочь девушке.
Хочу немного упорядочить мою работу с документами. До этого момента использовала иксель, но он в этом плане очень неудобен, когда много документов.
Потихоньку осваиваю аксесс. Стандартные таблицы, формы и запросы у меня не вызывают вопросов. А вот ВБА пока что совсем дебри.
Но надеюсь, что вы мне поможете.

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

Мда. Сумбурно получилось. Но я не технарь, простите.
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #38623023
Фотография гурД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Inna86,

вам это всё нужно объяснить, показать похожий пример или в вашем файле? )
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #38623066
Inna86
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот пока пример того, что я хочу сделать. надеюсь он будет понятней, чем мое описание. свою начальную бд пока не стала трогать, а то запутаюсь.
Если можно, мне на примере.
Думаю, Вам придется долго мне объяснять, а так я посмотрю как сделано и хоть примерно пойму, как это делается. Все равно это изучать нужно, что я и собираюсь сделать. Думаю, за годик для своих нужд я смогу изучить vba. И очень надеюсь на помощь Вашего форума в этом. Постараюсь слишком много не просить. В конце концов, сама хочу понять как и что делается.
Сейчас хочется начать хотя бы с минимальных моих потребностей, чтобы работать было проще. А дальше по необходимости.

Спасибо, что отзвались.
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #38623912
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Inna86,

Немного сделал по другому...
Для каждого документа свой набор файлов (даже если это один и тот же файл). Файлы копируются в папку files , но не под оригинальным именем, а с новым - Document_DocID_FileID , где Document префикс, DocID - код записи документа по БД, FileID - код записи прикреплённого файла. Это сделано для того, что бы избежать конфликта имён. И так проще рулить файлами, ИМХО.
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #38623913
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Inna86...Далее в своих таблицах в подстановочном поле ...Выделенным не пользуйтесь, хотябы пока... Это часто вызывает недоразумения. В таблицы напрямую не рекомедуется смотреть, пользуйтесь формами, стало быть пусть будут просто данные в полях, без подстановок. ИМХО
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #38623928
Фотография гурД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Inna86вызвать из формы диалоговое окно для выбора файлов.
После выбора файла он должен быть скопирован в папку files, а в таблицу ссылок записывается название файла.

- Должна быть добавлена библитека Microsoft Office ... Library (Alt+F11 - Tools - References)
-
Код: vbnet
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.
40.
41.
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

...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #38624394
Inna86
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, мальчики.
Пища для размышлений большая. Вот сижу, разбираюсь. Даже что-то получается, но нужно несколько дней.

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

Спасибо большое за помощь Панургу и ГурДу. Дальше мне надо самой поразбираться. Так как раз БД я делаю сама, то и должна понимать, что и как там вообще происходит.
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #38624506
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Inna86,

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

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

мое видение задачи
таблицаструктуратаб1ид1-название задачи-описание задачитаб2ид2-ид1-ссылки на оригиналы прикрепляемых файловтаб2стаблица свободных(не прикрепленных) файлов, возможно эту функцию можно перенести на таб2 с флажком+динамический поиск
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #38625176
Inna86
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, ПЕНСИОНЕРКА. Надо обдумать.

Подскажите пожалуйста еще одну вещь. Я тут пробую разные варианты, которые мне могли бы подойти.
Один из них - это открывать файл таким образом (команду увидела в коде Панурга и вот сижу изучаю, как ее еще можно использовать):
Application.FollowHyperlink CurrentProject.Path & "select tblFolder.FolderName where ID=1" & Me.AttachedFiles.value
пробовала по-разному, не получается. пытаюсь читать книжку, пока каша.
FolderName - это поле в таблице tblFolder, где находится наименование папки.
Me.AttachedFiles.value - это по идее должно быть название файла из поля, которое в данный момент в ленточной форме активно.
Голова кругом. Нужна ли мне вообще эта база данных? или по старинке все делать. Сегодня только и сижу, что VBA изучаю
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #38625252
Inna86
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемый Панург, поняла, что долго я буду мучаться. Ваш вариант прям уже и использовать можно. Но не могли бы Вы сделать, чтобы имена файлов не переименовывались и чтобы я могла сразу выбрать несколько файлов, которые бы подряд вставились бы в таблицу?

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

Извините, если я достала. У самой уже каша в голове. Я то знаю, чего хочу, то не знаю. Если бы у меня была такая возможность, как я написала, я бы хотя бы уже пользовалась бд, а не этим икселем. А дальше уже спокойно бы начала изучать VBA.
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #38625361
П-Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТС, я настоятельно рекомендую вам полностью поменять свою концепцию. Чтобы было удобно искать файлы делать это можно/нужно исключительно через вашу оболочку. Средства аксеса по представленю файлов в иерархическом виде, в виде таблицы есть. У меня в аналогичной задачке по мере набора имени файла в табличной форме автоматически позиционируется запись, содержащая вводимый образец. При нажатии на фильтр в списке остаются только файлы со строковым образцом в имени. Гораздо быстрее и эффективнее, чем файловый менеджер. Если нужна наглядност представления файлов по рубрикам, то используйте тривью. Причем таких параллельный рубрикаторов может быт больше одного, т.е. файл может быть в нескольких ветках дерева одновременно.

Ну и еще один шаг - отказаться от хранения файлов в файловой структуре, переложить их в оле поля таблиц БД. У такого решения есть и плюсы и минусы, не буду категорически советовать сделать именно так.
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #38625486
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
П-Л,

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

это видимо сильно зависит от
--количества прицепляемых файлов
--их размера
--дорабатываются ли они после прицепления
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #38625499
П-Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня крутилось на MS SQL (соответсвено adp) решение. Количество файлов - тысячи (десятки тысяч). Файлы, хранящиеся в оле полях, запускаются в "родной" программе одним кликом.
Помимо "готовых" вложенных файлов было много генерируемых по шаблонам.
В качестве дополнительной опции вордовские и эксельные файлы после обновления в базе автоматически обновляли свой файловый "первоисточник" из которого были загружены. Т.е. при работе через оболочку собсно "файловые файлы" всегда были аптудейт.
Еще одна мощная и крайне полезная фишка для генерируемых файлов - гибкая настройка путей и правил формирования имен файлов при их формировании. Т.е. при формировании договора можно было разложить их по папкам, соответсвующим типам договоров, далее - по подпапкам по имени контрагента. А можно сформировать имя вида <Тип договора>_<Имя контрагента>_договор.doc все в одной папке.
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #38625543
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторХочу немного упорядочить мою работу с документами.
...............
Есть БД.
В папке с БД есть папка files (здесь все файлы, пдф, изображения, doc, xls и прочее).
..
И нажатие на ссылку должно открыть документ.
При вызове документа нужно учитывать, что файлы находятся на флешке,
а значит путь к БД меняется, то есть путь к БД всегда должен определяться программно,
точный путь заранее неизвестен.


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

.

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

соответствуют ли конфигурации этих двух систем
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #38625879
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Inna86,

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

А фото где в профиле? Без него в следующий раз помогать не буду!
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #38625959
Inna86
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Теперь фото есть. Месячной давности. Теперь помогать будешь?

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

Спасибо большое
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #38625988
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Inna86Теперь фото есть. Месячной давности.Замечательное фото.
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #38626354
Фотография гурД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Инна, наоборот, спрашивайте, что не ясно, не стесняйтесь. Насколько я знаю, здесь только будут рады помочь
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #38626355
полином
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
просто для порядка :)
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #38626365
Фотография гурД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Inna86 чтобы я могла сразу выбрать несколько файлов, которые бы подряд вставились бы в таблицу
То есть, чтобы в окне диалога выбора файлов можно было бы выбирать сразу несколько (.allowmultiselect=true)?

Ищите книги по VBA, удобно читать, например, в транспорте. Среди прочих у меня есть такая:
Кузьменко В.Г. VBA 2003. Самоучитель. - Москва, ООО "Бином-Пресс", 2010.
Такие книги вполне реально, думаю, купить не только в магазине, но и на развале или в букинисте...
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #38626994
Вот читаю. Вопросов нет, точнее их слишком много. Рано задавать, а то получится урок какой-то.
Я пока первоначально сделала, что хотела стандартными средствами, загрузку с Вашей помощью, а далее нужно смотреть, изучать и думать, надо мне это все вообще или нет.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
база данных со ссылками на файлы
    #39491272
Финист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Апп...
ПанургInna86,

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

Очень класный код. Я плохо в этом разбираюсь, но постараюсь адаптировать для своей базы.
Но вопрос в другом. Можно ли как то сделать, что бы в таблицу вставлялись гиперссылки на новые изображения? Смысл в том, что бы кликабельные ссылки на эти изображения вставлялись в запрос. Или может другие способы есть?
Был бы очень признателен за ответ.
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39494883
Финист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ПанургInna86,

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

Подскажите пож., как сделать в данном примере:
1. Что бы нофый файл сохранялся под именем Text_DocID_FileID? где Text - значение текстового поля записи документа по БД.
2. Что бы в форме отображались не старые наименованя файлов, а новые.
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39495119
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Финист,
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39496373
Финист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург,

Большое спасибо! Всё работает!
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39496411
Фотография Лапух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Панург,
Фига себе.
Зыканско!!!
Беру на вооружение.
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39500601
Финист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А у меня ещё вопрос, если можно...
Можно ли как то сделать, что бы работало при разделении базы, а папка Files создавалась в папке с таблицами?
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39500644
Вакшуль Сергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Панург, здравствуйте,

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

А почему просто не наложить это ограничение в конструкторе используя ValidationRule поля таблицы?
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39504848
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вакшуль СергейПанург, здравствуйте...Не заметил сообщение. Здравствуйте.

Вакшуль Сергей...А почему просто не наложить это ограничение в конструкторе используя ValidationRule поля таблицы?Да как-то в голову пришло первым, хотя можно и ValidationRule , и просто условие создать в ограничении... Возможно на тот момент у меня сначала была другая идея, которая трансформировалась в этот вариант.
Вакшуль Сергей...Но если работать с таблицей tblDocuments без среды Access, то ведь ограничение работать не будет?...Скорее всего не будет, не проверял.
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39511230
Финист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос по разделению базы с данным кодом актуален, да же очень...
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39511471
Вакшуль СергейПанург, здравствуйте,

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

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

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

Без среды работать не будет.
спекуляция, но обоснованная спекуляция: для выполнения запросов с функциями VBA движок Jet вызывает Jet Expression Services, который должен быть правильно инициализирован на проект VBA в среде выполнения (передан хендл VBA-проекта как минимум). Это то, что MS решил оставить при себе и не документировать публично. Поле для reverse engineering, короче.
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39520759
Финист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите почему в разделённой базе код не работает - файлы не копируются в папку files
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39520827
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Финист, всё работает. Поставь ограничение на таблицу в файл-сервере. Функция CheckWord должна быть в обоих частях, хотя после установки, в части являющейся файл-сервером функцию CheckWord можно и убрать. Но будут ошибки если там вводить данные в таблицу. Главное чтобы была доступна функция с таким именем, а что она делает дело десятое.
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39520851
Финист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург,
Прошу прощения, я не спец в Accsess. Какое ограничение установить на таблицу? Что то в свойствах?
CheckWord. Скопировать модуль в файл-сервер?
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39520862
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Финистя не спец в Accsessну раз взялся за гуж, то литературку нужно почитывать (падоброму)...

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

Как правильно заметил Вакшуль Сергей, можно условие прописать в конструкторе поля таблицы (см. рис.)
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39521179
Финист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург,
Я стараюсь, пытаюсь, читаю, только у меня ещё третий класс, а задачки пытаюсь решить для 10-го.
Вобщем попробовал и вставить модуль в файл-сервер, и поставить уловие на значение, только так как показано у Вас на скане, у меня на абсолютно любое значение ругается. Поэтому я сделал так: Not Like '*[*|\:/""<>?]*'
Та же ошибка. В момент прикрепления файла вылазит MsgBox "Ooopps!... Не смогли прикрепить файл!". И как мне кажется это вообще не связано с проверкой на запрещённые символы.
Я вот думаю, если у Вас работает, то возможно у меня проблема в самом Accsess или настройках... может версия...? у меня 2010.
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39521454
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ФинистВобщем попробовал и вставить модуль в файл-сервер, и поставить уловие на значение, только так как показано у Вас на скане, у меня на абсолютно любое значение ругается. Поэтому я сделал так: Not Like '*[*|\:/""<>?]*' В данном варианте модуль не нужен вообще. Ошибка - убери знак равно в условии ( тут моя ошибка )
ФинистВ момент прикрепления файла вылазит MsgBox "Ooopps!... Не смогли прикрепить файл!". И как мне кажется это вообще не связано с проверкой на запрещённые символы.Тебе правильно кажется. Там убрать или поменять значение константы dbOpenTable нужно - таблица прилинкована.
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39522472
Финист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург,
Ещё вопрос, если можно. Как сделать, что бы прикрепляемые файлы сохранялись в папке с таблицами, а не с клиентской частью. Заменить CurrentProject.Path на что то? На что?
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39522554
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Финист, находи какую-нибудь прилинкованную таблицу, узнавай у неё путь до файл-сервера и в путь. .
Как это сделать ищи по форуму...
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39522944
Финист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург,
Найти путь? CurrentDb.TableDefs("Табл").Connect. Так? Только всё равно не получается, если я просто вместо CurrentProject.Path.
Упс. Не смогли прикрепить файл.
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39523007
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ФинистНайти путь? CurrentDb.TableDefs("Табл").Connect. Так?А ты смотрел, что там в строке?
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39523501
Финист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Простите, но это уже высший пилотаж. Хорошо, если у меня получится адаптировать к своей базе. Пока сижу с букварём, перевожу что там к чему...
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39524521
saliiyut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
!!!
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39524577
Финист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Адаптировать получилось. Стала вылазить ошибка в другой части кода, но я с ней разобрался. Так что всё замечательно.
Большое спасибо за помощь!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
база данных со ссылками на файлы
    #39744366
Сергей Ком
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург, очень полезная программа. Только вот не могу понять почему она со связанными таблицами не работает.
Было бы очень хорошо. Суть: база с таблицами болтается на сервере, а пользователи работают по связанным с ней таблицам.
У меня есть свой рабочий проект. Но он немного не такой. Вот хотелось бы разобраться.
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39744438
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Комочень полезная программаКакая?
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39745100
Сергей Ком
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург, О которой тут идет речь (пусть будет называться процедура)))
Просто у меня не получается заставить ее работать на связанных таблицах.
Вот пытають разобраться.
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39745122
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей КомПанург, О которой тут идет речь (пусть будет называться процедура)))
Просто у меня не получается заставить ее работать на связанных таблицах.
Вот пытають разобраться.можно сослаться конкретней? Тут много чего есть и я не очень понимаю про что идёт речь.
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39745160
Сергей Ком
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург, спасибо за внимание. Я вроде уже разобрался.
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39891657
RusGor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург, день добрый!
Спасибо за ваш труд, прошу проверить на сколько правильно исправил под свои задачи. Возможно можно проще написать или как то логичнее.

Что исправил:
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;"
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39892018
RusGor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург,
Видимо так правильно
.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)
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39892131
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RusGor
Зачем его выбирать для вывода в форме, если есть имя файла?
Для начала нужно прочитать весь тред и посмотреть для кого делался пример. Тут всё есть.
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39892183
RusGor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург, доброе утро!
Как можно установить path на onedrive? Чтобы файлы хранить в onedrive for business.
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39892186
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RusGor, про последний офис не скажу (но думаю что нет), все другие просто так напрямую не поддерживают подобного функционала. ИМХО
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39920164
RusGor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург, день добрый!
Подскажите, что подправить? Если таблицы находятся в базе Mysql и прилинкованы к Access.
По этой статье пытался www.firststeps.ru/vba/vbahelp/daohelp/r.php?73

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

Пишет не удалось добавить файл,..
Ничего не понял, но очень интересно ©
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39920360
RusGor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург, доброе утро! Постараюсь объяснить:
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
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39920368
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RusGor
Set rst = CurrentDb.OpenRecordset("tblAttachedFiles", dbOpenTable)
этот тип рекордсета только для "родных" Акс-таблиц
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39920373
RusGor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
court, здравствуйте!
Читал об этом тут, http://www.firststeps.ru/vba/vbahelp/daohelp/r.php?73
Но что не выходит каменный цветок
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39920380
Фотография 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 , например, для начала
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39920388
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RusGor, а если вручную прицепить таблицы, открыть требуемую таблицу и внести изменения?
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39920392
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RusGor
через форму FrmDocs нажимаем добавить файл и выдает сообщение "Ooopps!...

в коде добавь
Код: vbnet
1.
2.
3.
4.
5.
6.
Private Sub cmdFileAdd_Click()
...
                    If Err Then
                        Debug.Print Err.Number; Err.Description
                        Err.Clear
...

В окно Immediate будет выведено осмысленное сообщение номера и описание ошибки.
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39920400
RusGor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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 , например, для начала
Это все испробовано
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39920402
RusGor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург, день добрый!
код ошибки
75 Path/File access error
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39920420
RusGor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
RusGor,
Может сначала нужно установить соединение OpenConnection
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39920439
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RusGor
Может сначала нужно установить соединение OpenConnection

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

Да и заремь
Код: vbnet
1.
'On Error Resume Next
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39920448
RusGor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург
RusGor, а если вручную прицепить таблицы, открыть требуемую таблицу и внести изменения?

Извините, можно подробнее. Не понимаю
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39920455
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RusGor
Извините, можно подробнее. Не понимаю
блин...ну почитай хотя бы это -> Доступ к БД mySQL из Microsoft Access
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39920466
RusGor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург,
Написали бы через DSN, то сразу бы понял.
Сделал, такая же ошибка
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39920470
RusGor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург,

добавил в ручную, имя файла в таблицу, чтобы в форме отобразился путь к файлу и имя файла. Попробовал еще добавить файл
выдал уже такую ошибку
3251 Операция не поддерживается для объектов этого типа
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39920492
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RusGor,
Панург
Да и заремь
Код: vbnet
1.
'On Error Resume Next

это сделал? Выполнение кода остановится на ошибке.
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39920499
RusGor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург,

Да сделал
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39920501
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RusGor
Да сделал
так на чём остановилось?
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39920508
RusGor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург,

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

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

Если таблицы пустые и добавляешь файл .AddNew
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39920515
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RusGor, ты просто таблицу открыть и добавить или удалить запись можешь? Без форм и кода.
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39920519
RusGor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург,
Да могу, все без проблем
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39920531
RusGor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург,
Если изменить на dbOpenTable, то ругается на эту строчку
Set rst = CurrentDb.OpenRecordset("tblAttachedFiles", dbOpenTable)
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39920545
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RusGor
Если изменить на dbOpenTable, то ругается на эту строчку
Set rst = CurrentDb.OpenRecordset("tblAttachedFiles", dbOpenTable)
Мне кажется выше тебе написали что там должно быть
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39920546
RusGor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург,

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

Так на всякий случай
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39920642
RusGor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург,
Что еще может быть, есть идеи?
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39920866
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RusGor
Что еще может быть, есть идеи?
Код свой покажи, тот что вызывает ошибку. Полностью процедуру (или чего там у тебя).
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39921487
RusGor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург, день добрый!
Код: vbnet
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.
40.
41.
42.
43.
44.
45.
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
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39921588
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RusGor, вроде ничего криминального не вижу. Протестировать мне не на чем, т.к. нет сервера MySQL.
Давай попробуем протестировать получение набора данных на другой технологии - ADO. Таким способом можно получить характеристики набора данных. Заведи новую БД Access (подключи таблицы) или создай в текущей новый модуль, подключи библиотеку доступа к данным ADO, добавь код. Код взят у Гетца&Ко
Код: vbnet
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.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
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 .
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39921703
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RusGor,

Вроде и нельзя сказать, что не показал код ошибки, но и толку с такого показа маловато...
Нужно было еще нажать Debug, тогда бы было ясно на какой строке падает, тогда бы возможно и сам понял причину...
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39921710
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
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39921716
RusGor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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 -операция не поддерживается для объектов данного типа
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39921720
RusGor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39921734
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
добавление данных источник поддерживает...
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39921736
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RusGor
В этом может причина?
это к чему?
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39921748
RusGor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург,
Все взрыв мозга...
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39921750
RusGor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург
это к чему?
к этому AbsolutePosition
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39921754
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RusGor
Код: vbnet
1.
Set rst = CurrentDb.OpenRecordset("tblattachedfiles", dbOpenDynaset)

попробуй так переписать...


RusGor
Код: vbnet
1.
.Fields(3) = (Me.Text_ + "_") & CStr(.Fields(1)) & "_" & CStr(.Fields(0)) & Mid(.Fields(2), InStrRev(.Fields(2), "."))

тут возможно будет ошибка (проблема при работе MySQL, см. ссылку ниже). Попробуй переписать на ADO.

vmag,у тебя же проблемы вылазили с MySQL DAO + ODBC + MySql получение ключа-счетчика в момент создания записи Как решилось?
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39921756
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RusGor
к этому AbsolutePosition
А что не так с этим свойством?
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39921783
RusGor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург,

RusGor
Код: vbnet
1.
.Fields(0)



Именно тут. Выдает NULL
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39921787
RusGor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург,

Не обращайте внимание.
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39921796
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Панург
vmag,у тебя же проблемы вылазили с MySQL DAO + ODBC + MySql получение ключа-счетчика в момент создания записи Как решилось?

Для DAO:
- запрос с сортировкой по ключу (чтоб последний был всегда последним)
- после добавления Requery + MoveLast
Все остальное не работает...
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39922547
RusGor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург и vmag, здравствуйте!
Спасибо, что направили на путь истинный.
Панург
Код: vbnet
1.
Set rst = CurrentDb.OpenRecordset("tblattachedfiles", dbOpenDynaset)



RusGor
Код: vbnet
1.
.Fields(0) 

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

vmag
Код: vbnet
1.
- после добавления Requery + MoveLast



Вот итог: не знаю на сколько верно, но работает. Может подскажите что исправить,.?
Код: vbnet
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.
40.
41.
42.
43.
44.
45.
46.
47.
48.
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
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39922571
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RusGor
Код: vbnet
1.
Set rst = CurrentDb.OpenRecordset("tblattachedfiles", dbOpenDynaset)

Тут скорее всего нужен запрос с явной сортировкой по ключу, иначе ничто не гарантирует что новая запись будет последней в коде ниже. Да и вообще нужно подумать над этим набором - зачем тащить всю таблицу?...
RusGor
Код: vbnet
1.
2.
                        .Requery
                        .MoveLast




RusGor
Код: vbnet
1.
.Bookmark = .LastModified

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


RusGor
Код: vbnet
1.
2.
3.
4.
5.
                FileCopy strFileName, strFileNameNew
                    If Err Then
                        Err.Clear
                        rst.Delete
                        MsgBox "Ooopps!..." & vbNewLine & "Не смогли прикрепить файл!", vbCritical

Эту часть для данного случая я бы протестировал дополнительно. Тормознул бы код выше на точке останова и открыл бы файл на редактирования другой программой.
...
Рейтинг: 0 / 0
98 сообщений из 98, показаны все 4 страниц
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / база данных со ссылками на файлы
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]