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

Откуда:
Сообщений: 838
Здравствуйте!
Для диалога выбора каталога, я использую такой вариант:
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
Для того, чтобы выбрать папку, нужно в нее войти. Хотелось бы, чтобы можно было просто выделить папку. Возможно кто-нибудь подскажет другие диалоговые окна или как модифицировать приведенный код?
4 мар 05, 22:06    [1365436]     Ответить | Цитировать Сообщить модератору
 Re: Удобный диалог выбора каталога?  [new]
Alexander G
Member

Откуда: Чукчи мы, однако
Сообщений: 3270
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
5 мар 05, 00:15    [1365580]     Ответить | Цитировать Сообщить модератору
 Re: Удобный диалог выбора каталога?  [new]
ищ
Guest
"Для того, чтобы выбрать папку, нужно в нее войти"
неправда. у меня выбирает и без входа в нее
просто ставишь курсор.

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

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
5 мар 05, 10:07    [1365988]     Ответить | Цитировать Сообщить модератору
 Re: Удобный диалог выбора каталога?  [new]
Bagin
Member

Откуда:
Сообщений: 838
Alexander G
Спасибо, получилось. Только так и не понял, как можно инициализировать каталог, на котором он сразу бы открывался.
5 мар 05, 11:04    [1366189]     Ответить | Цитировать Сообщить модератору
 Re: Удобный диалог выбора каталога?  [new]
Bagin
Member

Откуда:
Сообщений: 838
ищ
"Для того, чтобы выбрать папку, нужно в нее войти"
неправда. у меня выбирает и без входа в нее
просто ставишь курсор.

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

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, "Начальный каталог"), то нельзя увидеть то, что находится выше. Доступ ко всему можно получить только в том случае, если "Начальный каталог" не существует.
5 мар 05, 11:21    [1366274]     Ответить | Цитировать Сообщить модератору
 Re: Удобный диалог выбора каталога?  [new]
Bagin
Member

Откуда:
Сообщений: 838
Bagin
ищ
"Для того, чтобы выбрать папку, нужно в нее войти"
неправда. у меня выбирает и без входа в нее
просто ставишь курсор.
..........
Я специально после Вашего сообщения проверил, необходимо в нее войти. У меня аксес2003, вин2000.
Прошу прощения, оказывается действительно как Вы и говорили, я спутал с открытием в указанном каталоге. Спасибо!
5 мар 05, 11:32    [1366327]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Удобный диалог выбора каталога?  [new]
Agilyera
Member

Откуда:
Сообщений: 44
Попробовал оба варианта поставить в код кнопки для выбора каталога, постоянно выходят ошибки. Прошу помощи
11 июл 06, 12:41    [2865518]     Ответить | Цитировать Сообщить модератору
 Re: Удобный диалог выбора каталога?  [new]
Alexander G
Member

Откуда: Чукчи мы, однако
Сообщений: 3270


К сообщению приложен файл (db1.rar - 10Kb) cкачать
11 июл 06, 14:48    [2866418]     Ответить | Цитировать Сообщить модератору
 Re: Удобный диалог выбора каталога?  [new]
Анатолий ( Киев )
Guest
В Access (начиная с 2000) работает и такой метод:
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".
11 июл 06, 16:35    [2867129]     Ответить | Цитировать Сообщить модератору
 Re: Открытие папки через форму в Access--e  [new]
Agilyera
Member

Откуда:
Сообщений: 44
11 июл 06, 17:58    [2867653]     Ответить | Цитировать Сообщить модератору
 Re: Удобный диалог выбора каталога?  [new]
Agilyera
Member

Откуда:
Сообщений: 44
Ребята, у меня с Аксесом не лады. Жить осталось 2 дня ))). VB не знаю совсем ....

agilmeister собака gmail.com

помогите пожалуйста
13 июл 06, 10:51    [2874917]     Ответить | Цитировать Сообщить модератору
 Re: Удобный диалог выбора каталога?  [new]
Alexander G
Member

Откуда: Чукчи мы, однако
Сообщений: 3270
И пример выложил... Чего еще надо... Тогда вам в форум Работа - за некоторое количество денежных знаков вам могут сделать все.
13 июл 06, 13:36    [2876264]     Ответить | Цитировать Сообщить модератору
 Re: Удобный диалог выбора каталога?  [new]
Agilyera
Member

Откуда:
Сообщений: 44
Прикол в том что я попытался сделать такой же файл с теми же модулями и кнопками и ничего не получилось.

Но за помощь спасибо
13 июл 06, 16:52    [2877772]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Удобный диалог выбора каталога?  [new]
frolson
Member

Откуда:
Сообщений: 1
Ребят, нужна помощь!
Есть форма, в которой отображается содержание нескольких таблиц, например:
препод | методичка | вид занятия

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


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

как это можно осуществить?
29 апр 08, 15:54    [5609497]     Ответить | Цитировать Сообщить модератору
 Re: Удобный диалог выбора каталога?  [new]
Анатолий ( Киев )
Guest
Есть такая API функция ShellExequte. Кроме всех прочих полезностей может открыть указанную папку.
29 апр 08, 16:43    [5609921]     Ответить | Цитировать Сообщить модератору
 Re: Удобный диалог выбора каталога?  [new]
Анатолий ( Киев )
Guest
Или так (проще):
Dim WSHShell As Object  
    Set WSHShell = CreateObject("WScript.Shell")
    WSHShell.Run """C:\My Documents""", 3   'Путь с пробелами должен быть в кавычках.
    Set WSHShell = Nothing
29 апр 08, 17:15    [5610210]     Ответить | Цитировать Сообщить модератору
 Re: Удобный диалог выбора каталога?  [new]
Alexey2006
Member

Откуда:
Сообщений: 35
Анатолий ( Киев )
В Access (начиная с 2000) работает и такой метод:
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".

Анатолий, спасибо за пример, а как сделать чтобы файлы были видны и их названия можно было бы редактировать.
20 янв 09, 18:34    [6712521]     Ответить | Цитировать Сообщить модератору
 Re: Удобный диалог выбора каталога?  [new]
Анатолий ( Киев )
Guest
Alexey2006, я же написал, что если в предпоследнем аргументе заменить 32 на 0, то получим диалог открытия файла, т.е. вместо ..., 32, True) указать ..., 0, True)
Добавлю, что ..., 0, False) - диалог сохранения файла.
Еще у меня получался мультивыбор и предосмотр картинок.
20 янв 09, 19:15    [6712618]     Ответить | Цитировать Сообщить модератору
 Re: Удобный диалог выбора каталога?  [new]
Alexey2006
Member

Откуда:
Сообщений: 35
спасибо все получилось!
21 янв 09, 08:48    [6713423]     Ответить | Цитировать Сообщить модератору
 Re: Удобный диалог выбора каталога?  [new]
vladK
Member

Откуда: Харьков
Сообщений: 819
Что бы топик можно было считать почти ФАК'ом по вызову диалога открытия папки, дополню.

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

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 (более полный и красивый "диалог")

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

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
21 янв 09, 12:11    [6714762]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Удобный диалог выбора каталога?  [new]
natalitvinenko
Member

Откуда: Донецк
Сообщений: 738
vladK
2. Вариант применимый только начиная с XP (более полный и красивый "диалог")
3. Очень простой вариант; требует уверенности что у пользователя стоит Excel


Оба варианта, к сожалению, выбирают файл, а не каталог.
15 мар 12, 10:39    [12251003]     Ответить | Цитировать Сообщить модератору
 Re: Удобный диалог выбора каталога?  [new]
natalitvinenko
Member

Откуда: Донецк
Сообщений: 738
ищ

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


Для полноты картины замечу, что данный способ работает и в ...Jscript (например, рисуем кнопочку и в разделе <script> пишем таковую функцию, которую потом и вешаем на кнопочку):
 function kliik()
 {
  var WSHShell = new ActiveXObject("Shell.application");
  var folder = WSHShell.browseforfolder(0, "Выбор папки", 0, "D:/Access/Рабочая/"); 
  if(folder!== 91)
  {
  alert(folder.Title);
  };
 }
15 мар 12, 10:50    [12251065]     Ответить | Цитировать Сообщить модератору
 Re: Удобный диалог выбора каталога?  [new]
natalitvinenko
Member

Откуда: Донецк
Сообщений: 738
vladK
Что бы топик можно было считать почти ФАК'ом по вызову диалога открытия папки, дополню.

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


Вариант для Jscript
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;
 } ;
}
15 мар 12, 13:20    [12252603]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Удобный диалог выбора каталога?  [new]
natalitvinenko
Member

Откуда: Донецк
Сообщений: 738
Подниму- ка эту тему, дабы не плодить другие. Win7, jscript. Открываю окошко вышеназваным методом, как часть другой программы (hta).
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) Есть ли более древние чтоли методы, которые бы были пригодны для ХР?
Спасибо
17 апр 19, 13:49    [21864950]     Ответить | Цитировать Сообщить модератору
 Re: Удобный диалог выбора каталога?  [new]
Joss
Member

Откуда: г. Минск
Сообщений: 4884
А попытаться приспособить вот это
'---------------------------------------------------------------------------------------
' 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 она отлично работала.
17 апр 19, 16:04    [21865223]     Ответить | Цитировать Сообщить модератору
 Re: Удобный диалог выбора каталога?  [new]
natalitvinenko
Member

Откуда: Донецк
Сообщений: 738
Joss, спасибо, но в ней все тот же метод BrowseForFolder, в него все упирается. У меня выше суженные вариант того же, но под jscript.
Кстати, забыла написать, какую ошибку выдает: "Не удается найти указанный файл". Я сначала даже решила, что они просто ткнули в файл, который в архиве, или на флешке, которая своеобразно прикручена, начала советовать перенести файл на диск...
18 апр 19, 09:24    [21865738]     Ответить | Цитировать Сообщить модератору
 Re: Удобный диалог выбора каталога?  [new]
Joss
Member

Откуда: г. Минск
Сообщений: 4884
Программа не работает под Windows XP? А Вы под Windows XP программу прогоняли? Если что, у меня дома стоит Windows XP и можно проверить программу.
18 апр 19, 09:35    [21865748]     Ответить | Цитировать Сообщить модератору
 Re: Удобный диалог выбора каталога?  [new]
Кривцов Анатолий
Member

Откуда:
Сообщений: 299
pppath=objFolder.Self.path

natalitvinenko, всплывает в моей памяти, что в предыдущих версиях винды у объекта FolderItem, возвращаемого св-вом Self, не было свойства Path. Было только Name и для получения полного пути надо было собирать в строку эти Name, перемещаясь вверх по родительским (св-во Parent) объектам.
18 апр 19, 11:54    [21865906]     Ответить | Цитировать Сообщить модератору
 Re: Удобный диалог выбора каталога?  [new]
natalitvinenko
Member

Откуда: Донецк
Сообщений: 738
Кривцов Анатолий, оно ж не на эту строчку показывало, в ошибках, а вот именно на BrowseForFolder. Написала программку, отдала на внедрение. Win10 запустили - все в порядке, у меня Win7 - все в порядке, запустили на WinXp- фиг. Вот сижу, думаю. Пока или надо там накатывать по инструкциям в инете все подряд, или найти другую библиотеку, другой способ. Вот, ищу.
18 апр 19, 12:08    [21865924]     Ответить | Цитировать Сообщить модератору
 Re: Удобный диалог выбора каталога?  [new]
natalitvinenko
Member

Откуда: Донецк
Сообщений: 738
Пробую так
var objDialog = new ActiveXObject("SAFRCFileDlg.FileOpen");
intResult = objDialog.OpenFileOpenDlg;
alert("Результат операции: " & CStr(intResult));
alert("Выбран файл: " & objDialog.FileName);


Пробую эдак
<!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".
18 апр 19, 12:12    [21865932]     Ответить | Цитировать Сообщить модератору
 Re: Удобный диалог выбора каталога?  [new]
zimkon
Member

Откуда: guest_rusimport
Сообщений: 107
natalitvinenko,
Примерчик Joss-a проверил у себя на WinXP только что. Всё работает отлично. А почему не хотите обратится на профильный подфорум по Java на этом же сайте? Это было бы логичнее, как мне кажется.
18 апр 19, 12:17    [21865943]     Ответить | Цитировать Сообщить модератору
 Re: Удобный диалог выбора каталога?  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 6140
natalitvinenko,
для операционки не поддерживаемой уже пять лет что-либо создавать,по-моему,есть не правильно.
(Сейчас даже Skype не работает под XP-так что стимул для перехода имеется)
18 апр 19, 12:20    [21865946]     Ответить | Цитировать Сообщить модератору
 Re: Удобный диалог выбора каталога?  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4295
zimkon
А почему не хотите обратится на профильный подфорум по Java на этом же сайте? Это было бы логичнее, как мне кажется.
мне тоже показалось логичным, но модераторы молчком зачистили мою реплику (оценочную) и оставили java на подфоруме базы данных Access, где она рядом не лежала... Картинка с другого сайта.
18 апр 19, 12:38    [21865966]     Ответить | Цитировать Сообщить модератору
 Re: Удобный диалог выбора каталога?  [new]
zimkon
Member

Откуда: guest_rusimport
Сообщений: 107
Панург
zimkon
А почему не хотите обратится на профильный подфорум по Java на этом же сайте? Это было бы логичнее, как мне кажется.
мне тоже показалось логичным, но модераторы молчком зачистили мою реплику (оценочную) и оставили java на подфоруме базы данных Access, где она рядом не лежала... Картинка с другого сайта.


Да, они просто тебя не поняли, также как и я:) Вот, теперь разъяснил, спасибо! Полностью с тобой солидарен.
18 апр 19, 12:52    [21865986]     Ответить | Цитировать Сообщить модератору
 Re: Удобный диалог выбора каталога?  [new]
Кривцов Анатолий
Member

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

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

ЗЫ. Боже, как давно это было...
18 апр 19, 13:08    [21866015]     Ответить | Цитировать Сообщить модератору
 Re: Удобный диалог выбора каталога?  [new]
mds_world
Member

Откуда: Ташкент
Сообщений: 27515
zimkon
Да, они просто тебя не поняли

Да, и я подумал, что случайное сообщение. Поэтому убрал. Но теперь уже восстанавливать не имеет смысла, когда есть развернутое объяснение
18 апр 19, 13:52    [21866108]     Ответить | Цитировать Сообщить модератору
 Re: Удобный диалог выбора каталога?  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4295
mds_world
zimkon
Да, они просто тебя не поняли

Да, и я подумал, что случайное сообщение. Поэтому убрал. Но теперь уже восстанавливать не имеет смысла, когда есть развернутое объяснение
да ладно, это был порыв души Картинка с другого сайта.
не матюгаться же...
18 апр 19, 13:55    [21866120]     Ответить | Цитировать Сообщить модератору
 Re: Удобный диалог выбора каталога?  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
zimkon
natalitvinenko,
Примерчик Joss-a проверил у себя на WinXP только что. Всё работает отлично. А почему не хотите обратится на профильный подфорум по Java на этом же сайте? Это было бы логичнее, как мне кажется.


java script?
18 апр 19, 14:19    [21866163]     Ответить | Цитировать Сообщить модератору
 Re: Удобный диалог выбора каталога?  [new]
zimkon
Member

Откуда: guest_rusimport
Сообщений: 107
Озверин
zimkon
natalitvinenko,
Примерчик Joss-a проверил у себя на WinXP только что. Всё работает отлично. А почему не хотите обратится на профильный подфорум по Java на этом же сайте? Это было бы логичнее, как мне кажется.


java script?

Да,не... Какой java script? Вот это 21865223
18 апр 19, 15:37    [21866303]     Ответить | Цитировать Сообщить модератору
 Re: Удобный диалог выбора каталога?  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
zimkon
Озверин
пропущено...


java script?

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


я к тому, что jscript, на котором пытались поднять пример joss`а - это не java, а, скорее, javascript и то, с оговорками.
18 апр 19, 15:43    [21866307]     Ответить | Цитировать Сообщить модератору
 Re: Удобный диалог выбора каталога?  [new]
natalitvinenko
Member

Откуда: Донецк
Сообщений: 738
zimkon, я на Жабаскрипте пишу, hta делаю. Там человек действительно пример привел не из той оперы.
18 апр 19, 15:47    [21866311]     Ответить | Цитировать Сообщить модератору
 Re: Удобный диалог выбора каталога?  [new]
natalitvinenko
Member

Откуда: Донецк
Сообщений: 738
sdku, не я выбираю. Тем более что задача пишется не под нее именно- она пишется в целом и вообще. Просто среди тех машин , которые в наличности, какое-то количество- XP. На машинах более современных версий, все работает. Проблема в том, что что-то надо делать и с машинами, которые древние. Предложение "а поставьте там шото посовременнее" оно обернется предложением "а купите новую машину":-) Тем более на таких машинках, как правило, живет еще куча задач до купы.
Извините, хлопцы, это жизнь:-(
18 апр 19, 15:51    [21866315]     Ответить | Цитировать Сообщить модератору
 Re: Удобный диалог выбора каталога?  [new]
natalitvinenko
Member

Откуда: Донецк
Сообщений: 738
Пока порекомендовала ребятам банально попытаться запустить от имени админа- может, оно тупо в это упирается. Если бы это была страничка, а не hta, то, возможно, проблема бы решалась снятием всех ограничений по ActiveX в настройках безопасности, занесением в доверенные и т.п. Попыталась даже сходить этим путем- ну так если мы открываем hta в Эксплорере, то она ж немедленно начинает выполняться. Ой...
18 апр 19, 15:54    [21866321]     Ответить | Цитировать Сообщить модератору
 Re: Удобный диалог выбора каталога?  [new]
natalitvinenko
Member

Откуда: Донецк
Сообщений: 738
zimkon, ой только сейчас заметила, где я. Оно просто выше уже было вперемешку, потому и начала писать сюда:-( Прошу прощения. Имеет смысл туда дублить?
18 апр 19, 15:59    [21866332]     Ответить | Цитировать Сообщить модератору
 Re: Удобный диалог выбора каталога?  [new]
zimkon
Member

Откуда: guest_rusimport
Сообщений: 107
Озверин
zimkon
пропущено...

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


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


Да, в принципе это по-барабану. У ТС явно "гранаты другой системы". Ей бы не сюда надо. Это как бы в поликлинике с простудой обращаться к проктологу. Теоретически тоже врач...
18 апр 19, 16:05    [21866343]     Ответить | Цитировать Сообщить модератору
 Re: Удобный диалог выбора каталога?  [new]
vmag
Member

Откуда: MP
Сообщений: 3203
natalitvinenko
zimkon, ой только сейчас заметила, где я.


..... да тут все кроме меня по встречке едут... Картинка с другого сайта.
18 апр 19, 16:07    [21866349]     Ответить | Цитировать Сообщить модератору
 Re: Удобный диалог выбора каталога?  [new]
natalitvinenko
Member

Откуда: Донецк
Сообщений: 738
Кривцов Анатолий, да вопрос уже даже не в том, что она вернет- я пока хочу, чтоб она хотя бы окошко показала.
Сброшу им вариант с нулем- вдруг прокатит.
18 апр 19, 16:08    [21866351]     Ответить | Цитировать Сообщить модератору
 Re: Удобный диалог выбора каталога?  [new]
natalitvinenko
Member

Откуда: Донецк
Сообщений: 738
vmag
natalitvinenko
zimkon, ой только сейчас заметила, где я.


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

Невиноватая я :-) :-(
Очумела уже над этой задачей. Хорошо, что не в кулинарный форум написала.
18 апр 19, 16:10    [21866354]     Ответить | Цитировать Сообщить модератору
 Re: Удобный диалог выбора каталога?  [new]
vmag
Member

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

да это нормально... кто много работает, иногда шарики за ролики заходят... иногда теряешься в пространстве...
18 апр 19, 16:13    [21866362]     Ответить | Цитировать Сообщить модератору
 Re: Удобный диалог выбора каталога?  [new]
vmag
Member

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

просто ваш метод вроде на ХР проверили по версии vba, работает, а в жабе не работает, попробуйте на это ХР поставить последнюю жабу оракле...
18 апр 19, 16:17    [21866366]     Ответить | Цитировать Сообщить модератору
 Re: Удобный диалог выбора каталога?  [new]
natalitvinenko
Member

Откуда: Донецк
Сообщений: 738
vmag
natalitvinenko,

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


Это вот такая жаба имеется в виду, я не путаю - https://www.oracle.com/technetwork/java/javase/downloads/index.html ?
19 апр 19, 14:42    [21867229]     Ответить | Цитировать Сообщить модератору
 Re: Удобный диалог выбора каталога?  [new]
vmag
Member

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

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

Ваша ссылка на библиотеки разработчика (JDK) и ide NetBeans...
20 апр 19, 12:36    [21867746]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2 3      [все]
Все форумы / Microsoft Access Ответить