78 / 78 / 1
Регистрация: 22.08.2010
Сообщений: 212
1

Как вызвать окно для выбора папки где лежит файл?

25.10.2010, 23:23. Показов 8396. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!
делаю функцию АВТО_РЕФРЕШ_ЛИНК
для автоматической прелинковки связанных таблиц
хочу предусмотреть выбор пользователя т.е. когда база лежит например не в той же папке или вообще на серваке.
суть вопроса:
как вызвать окно где можно выбрать только папку (как в инстоляторах) т.е. файлы выбираться не должны, другими словами указать путь к базам (их у меня в проекте сейчас 4, а потом станет еще больше - это для тех кто захочет предложить пользоваться "Диспетчером связных таблиц" - это вариант не для меня!!!).
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.10.2010, 23:23
Ответы с готовыми решениями:

Как можно вызвать стандартное окно для выбора папок?
Из С++ нужно вызвать стандартное окно для выбора папок. Что-то типа GetOpenFileName, только для...

Как открыть диалоговое окно в текущем каталоге (где сам этот файл лежит)?
Есть xls файл. По нажатии на кнопку выскакивает окошечко, которому сотоветсвует код: With...

Как открыть окно для выбора папки?
Можно ли из программы открыть окно с содержимым определённой папки? Нужно обычное окно папки, а не...

Как вызвать окно выбора директории
Доброго времени суток. Возник вопрос: Как вызвать окно выбора директории? Полазил, посмотрел,...

15
452 / 214 / 5
Регистрация: 16.05.2010
Сообщений: 420
26.10.2010, 09:57 2
Смотрите в этой теме Защита разделенных баз 6 пост
1
78 / 78 / 1
Регистрация: 22.08.2010
Сообщений: 212
26.10.2010, 21:15  [ТС] 3
Цитата Сообщение от HOUSE MD Посмотреть сообщение
Смотрите в этой теме Защита разделенных баз 6 пост
Не подойдет! у меня не 1 база, а уже сейчас 4, а потом их станет около 12 (одних только справочников 7 MDB файлов должно быть) я пробовал сделать в Вашем варианте дополнительные лики на другую базу, как и ожидал только "ругается", а второй файл не линкует!

к тому же такой вариант будет требовать, переписывать процедуру при необходимости прилинковки новой базы!
Хотя некоторые изложенные идеи и реализации возьму на вооружение!

И суть вопроса не указать файл, а указать папку где все файлы лежат, а остальное это дело мастера прилинковки!
0
1180 / 631 / 39
Регистрация: 30.05.2010
Сообщений: 715
26.10.2010, 21:43 4
Здравствуйте WiLex.
"..как вызвать окно где можно выбрать только папку..?" - возможно Вас устроит "инструмент" с применением API.
но даже если не устроит, другого я не предложу.

Евгений.
Вложения
Тип файла: rar selFolder.rar (910 байт, 156 просмотров)
1
452 / 214 / 5
Регистрация: 16.05.2010
Сообщений: 420
06.12.2010, 17:51 5
Доброго времени суток !
Решил продолжить в этой ветке. В прилагаемой базе реализована "автолинковка" и вызов окна для поиска нужной базы для подключения таблиц.

PPS. У меня: W7 (лицензионный) + Access 2003 (корпоративка).
Вложения
Тип файла: rar AutoLinkNew.rar (40.3 Кб, 108 просмотров)
0
1904 / 781 / 31
Регистрация: 11.02.2010
Сообщений: 1,567
06.12.2010, 23:28 6
Цитата Сообщение от WiLex Посмотреть сообщение
как вызвать окно где можно выбрать только папку
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Public Sub GtFldr()
    Dim dlg As Office.FileDialog
    Dim fso As Object
    Dim pFolder As Object
    Set dlg = Application.FileDialog(msoFileDialogFolderPicker)
    If dlg.Show Then
        Set fso = CreateObject("Scripting.FileSystemObject")
        Set pFolder = fso.GetFolder(dlg.SelectedItems(1&))
            MsgBox pFolder.Name
    End If
End Sub
0
1 / 1 / 0
Регистрация: 23.12.2010
Сообщений: 5
24.12.2010, 12:46 7
а не подскажете, что нужно изменить в Вашем коде, если у меня 3 базы данных: с формами одна и две с таблицами. Т.е. каждая таблица в отдельном mdb файле. Заранее благодарю!

Добавлено через 14 часов 21 минуту
или как вообще реализовать данную задачу?
0
1 / 1 / 0
Регистрация: 23.12.2010
Сообщений: 5
24.12.2010, 19:51 8
Итак! Нашел на просторах инета и выкладываю! Это работает, если у вас любое количество mdb файлов!!!! И ведь работает!)))
Вложения
Тип файла: zip JStreetAccessRelinker.zip (40.7 Кб, 142 просмотров)
1
78 / 78 / 1
Регистрация: 22.08.2010
Сообщений: 212
13.03.2011, 16:39  [ТС] 9
Всем доброго времени суток!
Смотрел развитие темы и кое-что "нарисовал" сам не без Вашей помощи.
Выкладываю свою версию автолинка баз данных, не зависящий от типов линкуемых баз. (сори, но сейчас только для версии Access 2007)

Поясняю суть архива:
Там 5 баз
1. mediator.accdb - база где мы настраиваем что, где храниться. (т.е. какие базы содержат, какие таблицы, как они называются и дополнительная инфа)
2. RunMe.accdb - база которая содержит ВАШ проект с прилинкованными табличками и необходимым модулем АВТОМАТИЧЕСКОЙ ЛИНКОВКИ ТАБЛИЦ.
3. База данных1.accdb >
4. База данных2.accdb > Тестовые базы (для наглядности)
5. База данных3.accdb >

ПОЛЕЗНОСТИ ПРИМЕРОВ:
mediator.accdb:
1. форма добавления новой базы см. кнопочку "папки" - код на событие кнопка_клик - вызов окна выбора папки
2. Реализация интерфейса с несколькими не связанными подчиненными формами. Если посмотрите соответствующую таблицу tblMenu, то возможно реализовать вариант со связанными формами по полям MasterField, и ChildrenField
3. Запрос на сохранение если запись изменилась (форма Ввода новой базы)
RunMe.accdb:
1. Автолинковка
2. Верификация прилинкованных таблиц. (т.е. проверка какие таблицы надо перелинковывать, а какие нет)
Вложения
Тип файла: rar AvtoLink_BaseAndVerifConnection.rar (270.3 Кб, 94 просмотров)
0
9280 / 7177 / 466
Регистрация: 15.12.2010
Сообщений: 38,742
13.03.2011, 22:08 10
WiLex,
А как разобраться что делать?
Запускаю mediator.accdb там всякие пути прописаны, выбираю путь, в который распакован архив, для таблиц базаданных1,2,3.
Затем открываю файл RunMe.accdb при загрузке запускается запрос на обновление-
Пишет будет обновлено количество записей и вылетает ошибка Run-time Error
0
78 / 78 / 1
Регистрация: 22.08.2010
Сообщений: 212
15.03.2011, 21:12  [ТС] 11
[QUOTE=gfadsa111;1447252]

выложил версию без ошибок и возможностей их вызвать, т.е. все под контролем системы.
Там действительно было несколько ошибок которые можно было вызвать своими действиями. ИСПРАВЛЕНО!

Не забываем указать пути в mediator.accdb
База данных1.accdb и База данных2.accdb в папке DBase, База данных3.accdb соответственно в паке DBaseQR или как вы их там переименуете.
Виталий.
Вложения
Тип файла: rar Project.rar (353.2 Кб, 63 просмотров)
0
9280 / 7177 / 466
Регистрация: 15.12.2010
Сообщений: 38,742
15.03.2011, 21:50 12
Опять ошибка, никакой разницы не заметил, не то видно делаю.
а что означает?
RunMe.accdb - база которая содержит ВАШ проект с прилинкованными табличками и необходимым модулем АВТОМАТИЧЕСКОЙ ЛИНКОВКИ ТАБЛИЦ.
Что с этой базой, ее вообще не запускать?
0
78 / 78 / 1
Регистрация: 22.08.2010
Сообщений: 212
15.03.2011, 21:58  [ТС] 13
Цитата Сообщение от gfadsa111 Посмотреть сообщение
Опять ошибка, никакой разницы не заметил, не то видно делаю.
а что означает?
Что с этой базой, ее вообще не запускать?
mediator.accdb - база где мы настраиваем что, где храниться.

RunMe.accdb - база которая содержит ВАШ проект с прилинкованными табличками и необходимым модулем АВТОМАТИЧЕСКОЙ ЛИНКОВКИ ТАБЛИЦ

если Вы смотрите мой пример то с МОИМИ ПРИЛИНКОВАНЫМИ ТАБЛИЧКАМИ, т.е. RunMe - это пользовательский интерфейс Ваше базы данных и именно в нем Вы должны создавать свои формы, добавлять свои прилинкованные талички, стандартным импортом, после чего настроить mediator и пользоваться.

mediator - это интерфейс для АДМИНОВ, чтобы Юзеры Вам не понастраивали чего-то там.

кстати на каком ОФИСЕ тестируете?
да и какая там ошибка?
0
9280 / 7177 / 466
Регистрация: 15.12.2010
Сообщений: 38,742
15.03.2011, 22:25 14
офис подходящий 2010,
Только я не пойму что запускать.
В mediator путь указвается, допустим там ваши таблицы.
А при открыти RunMe если выполнять или не выполнять запрос на обновление вылазит ошибка.

А ошибки разные возникают
Если нет нажать- run time error 2501
Прервано выполнение макрокоманды OpenQuery.
Жму клавишу Debug выделяет желтым строчку
DoCmd.OpenQuery "qryUpdateNeedConnDB", acViewNormal, acEdit

Если обновить -
run time error 2105
Невозможно перейти к указанной записи
Строчка выделяется- DoCmd.GoToRecord , , acNext
1
78 / 78 / 1
Регистрация: 22.08.2010
Сообщений: 212
15.03.2011, 22:54  [ТС] 15
Цитата Сообщение от gfadsa111 Посмотреть сообщение
офис подходящий 2010,
Только я не пойму что запускать.
В mediator путь указвается, допустим там ваши таблицы.
А при открыти RunMe если выполнять или не выполнять запрос на обновление вылазит ошибка.
есть там небольшая разница на то они 2007 и 2010

Цитата Сообщение от gfadsa111 Посмотреть сообщение
А ошибки разные возникают
Если нет нажать- run time error 2501
Прервано выполнение макрокоманды OpenQuery.
Жму клавишу Debug выделяет желтым строчку
DoCmd.OpenQuery "qryUpdateNeedConnDB", acViewNormal, acEdit

Если обновить -
run time error 2105
Невозможно перейти к указанной записи
Строчка выделяется- DoCmd.GoToRecord , , acNext
Тут все понятно у Вас в настройках Access стоит параметр переспрашивать выполнение запросов на обновление.
У меня эта опция отключена и на работе и дома поэтому такой ошибки не было, спасибо, что сказали надо будет исправить, а то случаи бывают разные.!
Выход:
1. Отключить эту опцию в ручную
или
2 дописать такой код DoCmd.SetWarnings False
в событие "таймер" формы frmLoading, сразу после Dim strCountFields

дописать код это конечно-же лучший вариант!!!
0
9280 / 7177 / 466
Регистрация: 15.12.2010
Сообщений: 38,742
16.03.2011, 10:41 16
Теперь обновление не выскакивает, зато сразу выдается ошибка:
run-time error '2105'
Невозможен переход к указанной записи.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.03.2011, 10:41
Помогаю со студенческими работами здесь

Диалоговое окно для выбора папки
Необходимо диалоговое окно для выбора не файла, а папки Добавлено через 9 минут Нашёл:...

Как вызвать окно выбора базы данных mdb
Есть часть вот такого кода: OleDbConnection con = new OleDbConnection(); ...

Добавить окно выбора папки вместо окна где надо задать папку, выести результат на экран, а затем в текстовый документ
option explicit dim folderpath folderpath = "g" dim objfolder dim colfiles dim objfile dim...

Диалоговое окно для выбора папок с указанием папки
Подскажите, как указать папку при открытии диалогового? вариант (strFolderPath =...

Как в access 2000 вызвать стандартное окно выбора файлов?
Здрасте всем) В аксессе 2000 нужно вызвать окно, в котором можно выбрать один файл с определенным...

Диалоговое окно выбора как папки так и файлов
Можно ли обыграть ситуацию с диалоговыми окнами: Application.FileDialog(msoFileDialogFilePicker) -...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru