powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Удобный диалог выбора каталога?
52 сообщений из 52, показаны все 3 страниц
Удобный диалог выбора каталога?
    #32947445
Bagin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте!
Для диалога выбора каталога, я использую такой вариант:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Private Sub btnDirForFlSelect_Click()
  Dim dr As FileDialog
  Set dr = Application.FileDialog(msoFileDialogFolderPicker)
  dr.Title = "Выбор каталога для новых отчетов"
  dr.ButtonName = "Выбрать"
  dr.AllowMultiSelect = False
  If dr.show = - 1  Then
      Me.DirForFl = dr.SelectedItems( 1 )
  End If
  Set dr = Nothing
End Sub
Для того, чтобы выбрать папку, нужно в нее войти. Хотелось бы, чтобы можно было просто выделить папку. Возможно кто-нибудь подскажет другие диалоговые окна или как модифицировать приведенный код?
...
Рейтинг: 0 / 0
Удобный диалог выбора каталога?
    #32947520
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
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.
Private Type BROWSEINFO
  hOwner As Long
  pidlRoot As Long
  pszDisplayName As String
  lpszTitle As String
  ulFlags As Long
  lpfn As Long
  lParam As Long
  iImage As Long
End Type

Private Const BIF_RETURNONLYFSDIRS = &H1
Public Const OFN_EXPLORER = &H80000 '  new look commdlg
Public Const OFN_NOCHANGEDIR = &H8

Private Declare Function SHBrowseForFolder Lib "shell32.dll" Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long
Private Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long

Public Function BrowseFolder(szDialogTitle As String) As String
 Dim x As Long, bi As BROWSEINFO, dwIList As Long
 Dim szPath As String, wPos As Integer

 With bi
  .hOwner = hWndAccessApp
  .lpszTitle = szDialogTitle
  .ulFlags = BIF_RETURNONLYFSDIRS
 End With

 dwIList = SHBrowseForFolder(bi)
 szPath = Space$( 512 )
 x = SHGetPathFromIDList(ByVal dwIList, ByVal szPath)

 If x Then
  wPos = InStr(szPath, Chr( 0 ))
  BrowseFolder = Left$(szPath, wPos -  1 )
 Else
  BrowseFolder = ""
 End If
End Function
...
Рейтинг: 0 / 0
Удобный диалог выбора каталога?
    #32947752
ищ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
"Для того, чтобы выбрать папку, нужно в нее войти"
неправда. у меня выбирает и без входа в нее
просто ставишь курсор.

могу дать еще простой вариант

Dim WSHShell, folder
On Error Resume Next
Set WSHShell = CreateObject("Shell.application")
Set folder = WSHShell.browseforfolder(0, "Выбор папки", 0, "D:\Access\Рабочая\")
If Not Err.Number = 91 Then MsgBox folder.Title
Set WSHShell = Nothing
...
Рейтинг: 0 / 0
Удобный диалог выбора каталога?
    #32947861
Bagin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander GСпасибо, получилось. Только так и не понял, как можно инициализировать каталог, на котором он сразу бы открывался.
...
Рейтинг: 0 / 0
Удобный диалог выбора каталога?
    #32947913
Bagin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ищ"Для того, чтобы выбрать папку, нужно в нее войти"
неправда. у меня выбирает и без входа в нее
просто ставишь курсор.

могу дать еще простой вариант

Dim WSHShell, folder
On Error Resume Next
Set WSHShell = CreateObject("Shell.application")
Set folder = WSHShell.browseforfolder(0, "Выбор папки", 0, "D:\Access\Рабочая\")
If Not Err.Number = 91 Then MsgBox folder.Title
Set WSHShell = NothingЯ специально после Вашего сообщения проверил, необходимо в нее войти. У меня аксес2003, вин2000.
А за вариант спасибо, с помощью folder.Dir можно вернуть выбранный каталог,
но та же проблема, не могу задать начальный каталог, если его задать, например: WSHShell.browseforfolder(0, "Выбор папки", 0, "Начальный каталог"), то нельзя увидеть то, что находится выше. Доступ ко всему можно получить только в том случае, если "Начальный каталог" не существует.
...
Рейтинг: 0 / 0
Удобный диалог выбора каталога?
    #32947938
Bagin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bagin ищ"Для того, чтобы выбрать папку, нужно в нее войти"
неправда. у меня выбирает и без входа в нее
просто ставишь курсор.
..........Я специально после Вашего сообщения проверил, необходимо в нее войти. У меня аксес2003, вин2000.
Прошу прощения, оказывается действительно как Вы и говорили, я спутал с открытием в указанном каталоге. Спасибо!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Удобный диалог выбора каталога?
    #33844666
Agilyera
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробовал оба варианта поставить в код кнопки для выбора каталога, постоянно выходят ошибки. Прошу помощи
...
Рейтинг: 0 / 0
Удобный диалог выбора каталога?
    #33845192
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Удобный диалог выбора каталога?
    #33845639
В Access (начиная с 2000) работает и такой метод:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Public Function SelectFolderDialogOffice(Optional strInitialDir As String, _
    Optional strTitle As String = "Выбор папки", _
    Optional ByVal strButtonName As String, _
    Optional ByVal hWnd As Long) As String
Dim ret As Long, strFile As String
    
    WizHook.Key =  51488399 
 
 If hWnd =  0  Then hWnd = Application.hWndAccessApp
    strFile = String( 255 , Chr( 0 ))
    
    ret = WizHook.GetFileName(hWnd, "", strTitle, strButtonName, _
        strFile, strInitialDir, "*.*",  0 ,  0 ,  32 , True)
        
' Проверим, не произошел ли возврат в результате нажатия клавиши Esc (-302)
 If ret <> - 302  Then
    SelectFolderDialogOffice = strFile
 End If
End Function
Здесь вам и панель покрасивше, и стартовая папка, и надпись на кнопке вместо "OK". С другой комбинацией аргументов это может быть диалог открытия или сохранения файла (например 0 вместо 32).
Подробнее можно найти на этом сайте. Ищите "WizHook".
...
Рейтинг: 0 / 0
Удобный диалог выбора каталога?
    #33845974
Agilyera
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Удобный диалог выбора каталога?
    #33850087
Agilyera
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ребята, у меня с Аксесом не лады. Жить осталось 2 дня ))). VB не знаю совсем ....

agilmeister собака gmail.com

помогите пожалуйста
...
Рейтинг: 0 / 0
Удобный диалог выбора каталога?
    #33850855
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И пример выложил... Чего еще надо... Тогда вам в форум Работа - за некоторое количество денежных знаков вам могут сделать все.
...
Рейтинг: 0 / 0
Удобный диалог выбора каталога?
    #33851794
Agilyera
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прикол в том что я попытался сделать такой же файл с теми же модулями и кнопками и ничего не получилось.

Но за помощь спасибо
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Удобный диалог выбора каталога?
    #35286308
frolson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ребят, нужна помощь!
Есть форма, в которой отображается содержание нескольких таблиц, например:
препод | методичка | вид занятия

При этом на машине есть папки где хранятся методички отсортированые по видам занятия, например:
C:\лабораторные
C:\контрольные
C:\практические

Создал таблицу где хранятся эти пути к папкам, и эта таблица связана с таблицей "вид занятия" по коду. Необходимо сделать так, чтоб при нажатии на кнопку в форме открывалась папка соответствующая виду занятия, который указан в той строчке где находится курсор, например если курсор находится на строчке:
Иванов | анализ систем | лабораторные
то при нажатии на кнопку должна открыться папка - C:\лабораторные

как это можно осуществить?
...
Рейтинг: 0 / 0
Удобный диалог выбора каталога?
    #35286550
Есть такая API функция ShellExequte. Кроме всех прочих полезностей может открыть указанную папку.
...
Рейтинг: 0 / 0
Удобный диалог выбора каталога?
    #35286707
Или так (проще):
Код: plaintext
1.
2.
3.
Dim WSHShell As Object  
    Set WSHShell = CreateObject("WScript.Shell")
    WSHShell.Run """C:\My Documents""",  3    'Путь с пробелами должен быть в кавычках.
    Set WSHShell = Nothing
...
Рейтинг: 0 / 0
Удобный диалог выбора каталога?
    #35767925
Alexey2006
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Анатолий ( Киев )В Access (начиная с 2000) работает и такой метод:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Public Function SelectFolderDialogOffice(Optional strInitialDir As String, _
    Optional strTitle As String = "Выбор папки", _
    Optional ByVal strButtonName As String, _
    Optional ByVal hWnd As Long) As String
Dim ret As Long, strFile As String
    
    WizHook.Key =  51488399 
 
 If hWnd =  0  Then hWnd = Application.hWndAccessApp
    strFile = String( 255 , Chr( 0 ))
    
    ret = WizHook.GetFileName(hWnd, "", strTitle, strButtonName, _
        strFile, strInitialDir, "*.*",  0 ,  0 ,  32 , True)
        
' Проверим, не произошел ли возврат в результате нажатия клавиши Esc (-302)
 If ret <> - 302  Then
    SelectFolderDialogOffice = strFile
 End If
End Function
Здесь вам и панель покрасивше, и стартовая папка, и надпись на кнопке вместо "OK". С другой комбинацией аргументов это может быть диалог открытия или сохранения файла (например 0 вместо 32).
Подробнее можно найти на этом сайте. Ищите "WizHook".
Анатолий, спасибо за пример, а как сделать чтобы файлы были видны и их названия можно было бы редактировать.
...
Рейтинг: 0 / 0
Удобный диалог выбора каталога?
    #35767987
Alexey2006, я же написал, что если в предпоследнем аргументе заменить 32 на 0, то получим диалог открытия файла, т.е. вместо ..., 32, True) указать ..., 0, True)
Добавлю, что ..., 0, False) - диалог сохранения файла.
Еще у меня получался мультивыбор и предосмотр картинок.
...
Рейтинг: 0 / 0
Удобный диалог выбора каталога?
    #35768484
Alexey2006
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо все получилось!
...
Рейтинг: 0 / 0
Удобный диалог выбора каталога?
    #35769025
vladK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что бы топик можно было считать почти ФАК'ом по вызову диалога открытия папки, дополню.

1. Более полное описание (от Script Guys) варианта с Shell.Application

Код: plaintext
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.
Const WINDOW_HANDLE =  0 
Const OPTIONS =  0 

Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.BrowseForFolder _
    (WINDOW_HANDLE, "Select a folder:", OPTIONS, "C:\") 

If objFolder Is Nothing Then
    Wscript.Quit
End If

Set objFolderItem = objFolder.Self
objPath = objFolderItem.Path

Wscript.Echo objPath

We begin by defining a pair of constants: WINDOW_HANDLE and OPTIONS. The WINDOW_HANDLE constant represents a numeric ID that needs to be assigned to the dialog box we’re going to display; for scripts this value should always be  0 . Setting OPTIONS to  0  means we’re going to display a very simple dialog box, one that limits users to selecting from a list of folders. Alternatively, we could have set OPTIONS to &H10&. In that case our dialog box would include a text area where users could type a folder path.

At other times, however, you’d like to give users the opportunity to select any folder located anywhere on the file system. Is that possible?
Const MY_COMPUTER = &H11&
Const WINDOW_HANDLE =  0 
Const OPTIONS =  0 

Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(MY_COMPUTER)
Set objFolderItem = objFolder.Self
strPath = objFolderItem.Path

Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.BrowseForFolder _
    (WINDOW_HANDLE, "Select a folder:", OPTIONS, strPath) 
      
If objFolder Is Nothing Then
    Wscript.Quit
End If

Set objFolderItem = objFolder.Self
objPath = objFolderItem.Path

Wscript.Echo objPath

2. Вариант применимый только начиная с XP (более полный и красивый "диалог")

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Set objDialog = CreateObject("UserAccounts.CommonDialog")

objDialog.Filter = "All Files|*.*"
objDialog.InitialDir = "C:\"
intResult = objDialog.ShowOpen
 
If intResult =  0  Then
    Wscript.Quit
Else
    Wscript.Echo objDialog.FileName
End If

3. Очень простой вариант; требует уверенности что у пользователя стоит Excel

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Public Sub g()
Dim aas As Object, path_db As String
Set aas = CreateObject("excel.application")
path_db = aas.GetOpenFilename("База данных (*.mdb), *.mdb")
Set aas = Nothing
MsgBox path_db
End Sub
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Удобный диалог выбора каталога?
    #37706083
Фотография natalitvinenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vladK2. Вариант применимый только начиная с XP (более полный и красивый "диалог")
3. Очень простой вариант; требует уверенности что у пользователя стоит Excel


Оба варианта, к сожалению, выбирают файл, а не каталог.
...
Рейтинг: 0 / 0
Удобный диалог выбора каталога?
    #37706096
Фотография natalitvinenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ищ
могу дать еще простой вариант


Для полноты картины замечу, что данный способ работает и в ...Jscript (например, рисуем кнопочку и в разделе <script> пишем таковую функцию, которую потом и вешаем на кнопочку):
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
 function kliik()
 {
  var WSHShell = new ActiveXObject("Shell.application");
  var folder = WSHShell.browseforfolder(0, "Выбор папки", 0, "D:/Access/Рабочая/"); 
  if(folder!== 91)
  {
  alert(folder.Title);
  };
 }
...
Рейтинг: 0 / 0
Удобный диалог выбора каталога?
    #37706474
Фотография natalitvinenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vladKЧто бы топик можно было считать почти ФАК'ом по вызову диалога открытия папки, дополню.

1. Более полное описание (от Script Guys) варианта с Shell.Application


Вариант для Jscript
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
function kliik()
 {
var MY_COMPUTER = 0;//"&H11&";
var WINDOW_HANDLE = 0;
var OPTIONS = 0;

var objShell = new ActiveXObject("Shell.application");
var objFolder = objShell.Namespace(MY_COMPUTER);
var objFolderItem = objFolder.Self;
strPath = objFolderItem.Path;

var objShell = new ActiveXObject("Shell.application");
var objFolder = objShell.BrowseForFolder(WINDOW_HANDLE, "Select a folder:", OPTIONS, strPath); 
      
if(objFolder!==null)
{
var objFolderItem = objFolder.Self;
objPath = objFolderItem.Path;
alert(objPath);
dirdir.value = objPath;
 } ;
}
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Удобный диалог выбора каталога?
    #39802779
Фотография natalitvinenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подниму- ка эту тему, дабы не плодить другие. Win7, jscript. Открываю окошко вышеназваным методом, как часть другой программы (hta).
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
var fso=new ActiveXObject("Scripting.FileSystemObject");
var objShell = new ActiveXObject("shell.application");
        var ssfWINDOWS = 36;
        var objFolder;
        
        objFolder = objShell.BrowseForFolder(0, "Example", 16384);
        if (objFolder != null)
        {
            pppath=objFolder.Self.path;
        Ex_ex = fso.GetExtensionName(pppath);
	pppath_GetFileName=fso.GetBaseName(pppath);
        }
	else
	{
		alert("Никакой файл не выбран! Я закрываюсь, пробуйте еще раз:-)");
        self.close();
	};


И все у меня хорошо и замечательно. Но программа пошла в народ. В народе она успешно работает на Win10, но не хочет работать на winXP. Спрос у Гугли приводит к списку советов вида "обновите все"- браузет, пакеты и т.п. В связи с чем есть вопросы:
1) Что минимального надо сделать, чтобы заработало на XP& Или там только долгие и упорные танцы?
2) Есть ли более древние чтоли методы, которые бы были пригодны для ХР?
Спасибо
...
Рейтинг: 0 / 0
Удобный диалог выбора каталога?
    #39802917
Фотография Joss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А попытаться приспособить вот это
Код: 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.
'---------------------------------------------------------------------------------------
' Procedure : fnGetFolder
' DateTime  : 17.08.2006 16:12
' Author    : Joss
' Purpose   : выбор папки
'---------------------------------------------------------------------------------------
'
Public Function fnGetFolder() As String

    Dim WSHShell As Object, objFolder As Object
    Dim P1, P2
' Я не знаю всех значений параметров Р1 и Р2
' Опытным путем установлено следующее
' P1=0 - отображаются Рабочий стол, Мой компьютер, Сеть и "Корзина"
' P1=1 - "Корзина" не отображается
' P1=2 - "Корзина" отображается, в "Моем компьютере" выводится "Панель Управления"
' P2 определяет верхний уровень отображения. Его можно задать как строку символов
' Пример - "C:\". Или числом. Проверено для ХР
' Р2=0 - Рабочий стол                        P2=10 - Корзина
' P2=1 - Интернет Explorer (недопустимо)     P2=11 - Главное меню
' P2=2 - Программы                           Р2=12 - Рабочий стол
' P2=3 - Панель управления (недопустимо)     Р2=13 - Моя музыка
' P2=4 - Принтеры и факсы (недопустимо)      Р2=14 - Мои видеозаписи
' P2=5 - Мои Документы                       Р2=15 - Рабочий стол
' P2=6 - Избранное                           Р2=16 - Рабочий стол
' P2=7 - Автозагрузка                        Р2=17 - Мой Компьютер
' P2=8 - недавние Документы                  Р2=18 - Сетевой окружение
' P2=9 - SendTo                              Р2=19 - NetHood
' Р2=20 - Fonts                              Р2=21 - Templates
' остальные можете вычислить сами. Или найти в документации

   On Error GoTo fnGetFolder_Error
    
    P1 = 1
    P2 = 0

    Set WSHShell = CreateObject("Shell.application")
    Set objFolder = WSHShell.BrowseForFolder(0, "Выбор папки", P1, P2)
    fnGetFolder = objFolder.self.Path
    Set WSHShell = Nothing
    Set objFolder = Nothing
    
   On Error GoTo 0
Exit_fnGetFolder:
   Exit Function

fnGetFolder_Error:
   
   Set WSHShell = Nothing
   Set objFolder = Nothing
   Select Case Err.Number
       Case 91
           fnGetFolder = ""
           Resume Exit_fnGetFolder
       Case Else
           MsgBox "Ошибка " & Err.Number & " (" & Err.Description & ") в процедуре fnGetFolder"
           Resume Exit_fnGetFolder
   End Select

End Function

Под Win XP она отлично работала.
...
Рейтинг: 0 / 0
Удобный диалог выбора каталога?
    #39803151
Фотография natalitvinenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Joss, спасибо, но в ней все тот же метод BrowseForFolder, в него все упирается. У меня выше суженные вариант того же, но под jscript.
Кстати, забыла написать, какую ошибку выдает: "Не удается найти указанный файл". Я сначала даже решила, что они просто ткнули в файл, который в архиве, или на флешке, которая своеобразно прикручена, начала советовать перенести файл на диск...
...
Рейтинг: 0 / 0
Удобный диалог выбора каталога?
    #39803157
Фотография Joss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программа не работает под Windows XP? А Вы под Windows XP программу прогоняли? Если что, у меня дома стоит Windows XP и можно проверить программу.
...
Рейтинг: 0 / 0
Удобный диалог выбора каталога?
    #39803246
Код: vbnet
1.
pppath=objFolder.Self.path


natalitvinenko, всплывает в моей памяти, что в предыдущих версиях винды у объекта FolderItem, возвращаемого св-вом Self, не было свойства Path . Было только Name и для получения полного пути надо было собирать в строку эти Name, перемещаясь вверх по родительским (св-во Parent) объектам.
...
Рейтинг: 0 / 0
Удобный диалог выбора каталога?
    #39803254
Фотография natalitvinenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кривцов Анатолий, оно ж не на эту строчку показывало, в ошибках, а вот именно на BrowseForFolder. Написала программку, отдала на внедрение. Win10 запустили - все в порядке, у меня Win7 - все в порядке, запустили на WinXp- фиг. Вот сижу, думаю. Пока или надо там накатывать по инструкциям в инете все подряд, или найти другую библиотеку, другой способ. Вот, ищу.
...
Рейтинг: 0 / 0
Удобный диалог выбора каталога?
    #39803256
Фотография natalitvinenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пробую так
Код: javascript
1.
2.
3.
4.
var objDialog = new ActiveXObject("SAFRCFileDlg.FileOpen");
intResult = objDialog.OpenFileOpenDlg;
alert("Результат операции: " & CStr(intResult));
alert("Выбран файл: " & objDialog.FileName);



Пробую эдак
Код: javascript
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.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
<!DOCTYPE HTML>
<html>
<HEAD>
  <TITLE>Преобразование файла Excel в файл dbf</TITLE>
  <HTA:APPLICATION ID="oMyApp" 
    APPLICATIONNAME="NattaExcelDBF" 
    SINGLEINSTANCE="yes">
 </HEAD>
 <body>
</body>
<script language="JScript">


 var sFiles, nFiles;
 var aFiles = GetFileList();

   if ( (nFiles = aFiles.length) == 0 )
     sFiles = 'Список выбранных файлов пуст!';
   else
   {
     sFiles = 'Список выбранных файлов:\n\n';
     for (var i = 0; i < nFiles; i++) 
       sFiles += '  ' + (i + 1) + '.  ' + aFiles[i] + '\n';
   }

   alert(sFiles);
self.close();
   ///return(nFiles);



function GetFileList()
{
 var aFiles;
 
  try
  {
    var oFileDlg = new ActiveXObject("MSComDlg.CommonDialog");
    alert("1");
    with ( oFileDlg )
    {
      // const int cdlcdlOFNHideReadOnly  = 4       (0x4);       Делает невидимым переключатель Read Only.
      // const int cdlOFNNoChangeDir      = 8       (0x8);       Вынуждает диалоговое окно устанавливать текущий каталог в тот, который был при предыдущем открытии.
      // const int cdlOFNAllowMultiselect = 512     (0x200);     Пользователь может выбрать более чем один файл. (multiple selections).
      // const int cdlOFNFileMustExist    = 4096    (0x1000);    Определяет, что можно вводить имена только существующих файлов. User can enter only names of existing files.
      // const int cdlOFNExplorer         = 524288  (0x80000);   Определяет внешний вид окна выбора.
      // const int cdlOFNLongNames        = 2097152 (0x200000);  Позволяет пользователю использовать длинные имена файлов Long filenames enable.
      Flags = 4 + 8 + 512 + 4096 + 524288 + 2097152;
      CancelError = false;
      MaxFileSize = 8192;
      filename = "";
      InitDir = "";
      DialogTitle = 'Выбор файлов: Удерживая Ctrl отметьте требуемые файлы.'
      Filter = "Все файлы|*.*|MS Word файлы|*.doc|MS Excel файлы|*.xls|Текстовые файлы|*.txt";
      FilterIndex = 1;
      ShowOpen();
      alert("2");
      if ( filename.length > 0 )
      {
        aFiles = filename.split("\0");
        if ( aFiles.length > 1 )
        {
         var nFiles = aFiles.length - 1;
         var sPath  = aFiles[0];
        
           if ( sPath.charAt(sPath.length-1) != "\\" )
             sPath += "\\";

           for(var nCnt = 0; nCnt < nFiles; nCnt++)
            aFiles[nCnt] = sPath + aFiles[nCnt + 1];
            
          aFiles.length = nFiles;
        }
      }  
     }
  }
  catch(e)
  {
alert("Фигушки!")
  }
  
  if ( aFiles == null ) {return( new Array() );};
   
  return( aFiles );
}

////}
</script>
</html>


Все дохнет на командах "new ActiveXObject".
...
Рейтинг: 0 / 0
Удобный диалог выбора каталога?
    #39803262
zimkon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
natalitvinenko,
Примерчик Joss-a проверил у себя на WinXP только что. Всё работает отлично. А почему не хотите обратится на профильный подфорум по Java на этом же сайте? Это было бы логичнее, как мне кажется.
...
Рейтинг: 0 / 0
Удобный диалог выбора каталога?
    #39803263
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
natalitvinenko,
для операционки не поддерживаемой уже пять лет что-либо создавать,по-моему,есть не правильно.
(Сейчас даже Skype не работает под XP-так что стимул для перехода имеется)
...
Рейтинг: 0 / 0
Удобный диалог выбора каталога?
    #39803274
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zimkonА почему не хотите обратится на профильный подфорум по Java на этом же сайте? Это было бы логичнее, как мне кажется.мне тоже показалось логичным, но модераторы молчком зачистили мою реплику (оценочную) и оставили java на подфоруме базы данных Access, где она рядом не лежала...
...
Рейтинг: 0 / 0
Удобный диалог выбора каталога?
    #39803281
zimkon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ПанургzimkonА почему не хотите обратится на профильный подфорум по Java на этом же сайте? Это было бы логичнее, как мне кажется.мне тоже показалось логичным, но модераторы молчком зачистили мою реплику (оценочную) и оставили java на подфоруме базы данных Access, где она рядом не лежала...


Да, они просто тебя не поняли, также как и я:) Вот, теперь разъяснил, спасибо! Полностью с тобой солидарен.
...
Рейтинг: 0 / 0
Удобный диалог выбора каталога?
    #39803299
natalitvinenkoоно ж не на эту строчку показывало, в ошибках, а вот именно на BrowseForFolder. Я тут еще вспомнил...
1. В Win95 и WinXP в диалоге выбора папки не было кнопки "Новая папка".
У вас вызов BrowseForFolder(0, "Example", 16384), где опции = 16384. Возможно там какая-то опция, недоступная в XP. Попробуйте указать 0.
2. В отсутствии св-ва Path я засомневался, а вот св-во Self точно отсутствовало.
Для получения пути использовалась такая конструкция (VBA):
Код: vbnet
1.
sResult = oFolder.ParentFolder.ParseName(oFolder.Title).Path


Это если Path был, а иначе - Name и вверх по объектам. Там еще фигня была с папкой верхнего уровня (нет родителя), надо было танцевать с бубном вокруг Title.

ЗЫ. Боже, как давно это было...
...
Рейтинг: 0 / 0
Удобный диалог выбора каталога?
    #39803344
Фотография mds_world
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zimkonДа, они просто тебя не поняли
Да, и я подумал, что случайное сообщение. Поэтому убрал. Но теперь уже восстанавливать не имеет смысла, когда есть развернутое объяснение
...
Рейтинг: 0 / 0
Удобный диалог выбора каталога?
    #39803349
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mds_worldzimkonДа, они просто тебя не поняли
Да, и я подумал, что случайное сообщение. Поэтому убрал. Но теперь уже восстанавливать не имеет смысла, когда есть развернутое объяснениеда ладно, это был порыв души

не матюгаться же...
...
Рейтинг: 0 / 0
Удобный диалог выбора каталога?
    #39803370
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zimkonnatalitvinenko,
Примерчик Joss-a проверил у себя на WinXP только что. Всё работает отлично. А почему не хотите обратится на профильный подфорум по Java на этом же сайте? Это было бы логичнее, как мне кажется.

java script?
...
Рейтинг: 0 / 0
Удобный диалог выбора каталога?
    #39803445
zimkon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Озверинzimkonnatalitvinenko,
Примерчик Joss-a проверил у себя на WinXP только что. Всё работает отлично. А почему не хотите обратится на профильный подфорум по Java на этом же сайте? Это было бы логичнее, как мне кажется.

java script?
Да,не... Какой java script? Вот это 21865223
...
Рейтинг: 0 / 0
Удобный диалог выбора каталога?
    #39803448
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zimkonОзверинпропущено...


java script?
Да,не... Какой java script? Вот это 21865223

я к тому, что jscript, на котором пытались поднять пример joss`а - это не java, а, скорее, javascript и то, с оговорками.
...
Рейтинг: 0 / 0
Удобный диалог выбора каталога?
    #39803452
Фотография natalitvinenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zimkon, я на Жабаскрипте пишу, hta делаю. Там человек действительно пример привел не из той оперы.
...
Рейтинг: 0 / 0
Удобный диалог выбора каталога?
    #39803456
Фотография natalitvinenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdku, не я выбираю. Тем более что задача пишется не под нее именно- она пишется в целом и вообще. Просто среди тех машин , которые в наличности, какое-то количество- XP. На машинах более современных версий, все работает. Проблема в том, что что-то надо делать и с машинами, которые древние. Предложение "а поставьте там шото посовременнее" оно обернется предложением "а купите новую машину":-) Тем более на таких машинках, как правило, живет еще куча задач до купы.
Извините, хлопцы, это жизнь:-(
...
Рейтинг: 0 / 0
Удобный диалог выбора каталога?
    #39803460
Фотография natalitvinenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пока порекомендовала ребятам банально попытаться запустить от имени админа- может, оно тупо в это упирается. Если бы это была страничка, а не hta, то, возможно, проблема бы решалась снятием всех ограничений по ActiveX в настройках безопасности, занесением в доверенные и т.п. Попыталась даже сходить этим путем- ну так если мы открываем hta в Эксплорере, то она ж немедленно начинает выполняться. Ой...
...
Рейтинг: 0 / 0
Удобный диалог выбора каталога?
    #39803469
Фотография natalitvinenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zimkon, ой только сейчас заметила, где я. Оно просто выше уже было вперемешку, потому и начала писать сюда:-( Прошу прощения. Имеет смысл туда дублить?
...
Рейтинг: 0 / 0
Удобный диалог выбора каталога?
    #39803476
zimkon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Озверинzimkonпропущено...

Да,не... Какой java script? Вот это 21865223

я к тому, что jscript, на котором пытались поднять пример joss`а - это не java, а, скорее, javascript и то, с оговорками.

Да, в принципе это по-барабану. У ТС явно "гранаты другой системы". Ей бы не сюда надо. Это как бы в поликлинике с простудой обращаться к проктологу. Теоретически тоже врач...
...
Рейтинг: 0 / 0
Удобный диалог выбора каталога?
    #39803481
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
natalitvinenkozimkon, ой только сейчас заметила, где я.

..... да тут все кроме меня по встречке едут...
...
Рейтинг: 0 / 0
Удобный диалог выбора каталога?
    #39803483
Фотография natalitvinenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кривцов Анатолий, да вопрос уже даже не в том, что она вернет- я пока хочу, чтоб она хотя бы окошко показала.
Сброшу им вариант с нулем- вдруг прокатит.
...
Рейтинг: 0 / 0
Удобный диалог выбора каталога?
    #39803486
Фотография natalitvinenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmagnatalitvinenkozimkon, ой только сейчас заметила, где я.

..... да тут все кроме меня по встречке едут...

Невиноватая я :-) :-(
Очумела уже над этой задачей. Хорошо, что не в кулинарный форум написала.
...
Рейтинг: 0 / 0
Удобный диалог выбора каталога?
    #39803490
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
natalitvinenko,

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

просто ваш метод вроде на ХР проверили по версии vba, работает, а в жабе не работает, попробуйте на это ХР поставить последнюю жабу оракле...
...
Рейтинг: 0 / 0
Удобный диалог выбора каталога?
    #39803972
Фотография natalitvinenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmagnatalitvinenko,

просто ваш метод вроде на ХР проверили по версии vba, работает, а в жабе не работает, попробуйте на это ХР поставить последнюю жабу оракле...

Это вот такая жаба имеется в виду, я не путаю - https://www.oracle.com/technetwork/java/javase/downloads/index.html ?
...
Рейтинг: 0 / 0
Удобный диалог выбора каталога?
    #39804227
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
natalitvinenko,

https://www.java.com/ru/

Ваша ссылка на библиотеки разработчика (JDK) и ide NetBeans...
...
Рейтинг: 0 / 0
52 сообщений из 52, показаны все 3 страниц
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Удобный диалог выбора каталога?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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