powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / WizHook - перевод "документации"
102 сообщений из 102, показаны все 5 страниц
WizHook - перевод "документации"
    #32556839
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Было тут упоминание про визхук. Посмотрел, и зачем-то решил «накидать» обнаруженных «переводов».
Модераторам. Буде решите, что оффтоп – удалите, но завтра, сегодня всего не накидаю – уж удалять – так всю свалку.

Здесь собраны сведения о применении объекта WizHook в Access, полученные из
http://www.accessvba.com/showthread.php?s=&threadid=2715
и
http://www.mvp-access.com/juanmafan

оба автора ссылаются на http://www.skrol29.com как на первоисточник кода инициализации функций WizHook и применения функций по работе с макросами.

Поскольку испанским я не владею, для понимания, там, где не хватало «видения кода», пользовался веб-переводчиком. Любопытно, что по субъективным впечатлениям, babelfish.altavista.com гораздо лучше переводит с испанского языка на английский, чем translate.ru с испанского на русский. Хотя это, наверно, психология. Данный текст по существу является попыткой «просто перевода» лишь с небольшими дополнениями по отношению к исходной информации (в отдельных местах), найденной по вышеупомянутым ссылкам . Часть функций не описана или их назначение не вполне очевидно из описания. Было бы хорошо, если бы в этом потоке появились дополнения и замечания.

Список и проверки (где были) приводятся для А2002.

Поскольку «дока» получится длинноватая для простыни – построю небольшую лестницу. Если «это» не будет удалено, то, может - кто чего добавит.
Начнем вот с этого


Ключ инициализации (некоторые функции работают без него) :
Код: plaintext
WizHook.Key =  51488399 

для некоторых функций он не требуется - у меня не всегда аккуратно помечено - где требуется, где нет. Если он и требуется, то, похоже 1 раз на время запуска сеанса. И, похоже, сброс проекта VBA (потеря переменных уровня модуля) не требует переинициализации WizHook.
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32556848
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wzAccessUserDataDir()
Возвращает каталог, определяющий местоположение вспомогательных «пользовательских» файлов Акцесс. (вспомогательных файлов, используемых визардами)
У Juan M. Afán de Ribera вызов приводится как

Код: plaintext
1.
2.
3.
4.
5.
Sub wzAccessUserDataDir()
    
    WizHook.Key =  51488399 
    Debug.Print WizHook.AccessUserDataDir
    
End Sub

В действительности (кажется) не требует ключа инициализации.
Возврат типа
C:\Documents and Settings\UserName\Application Data\Microsoft\Access\
В этом каталоге обнаружены файлы Acwzusr.mdt и Acwzusrt.mdt, Второй с таблицами результатов работы upsizing визарда, первый с таблицами масок ввода и прочей информацией, полезной для визардов проектирования объектов акцесс. По крайней мере первая пересоздается при отсутствии. Найдена рекомендация Microsoft
( http://support.microsoft.com/default.aspx?scid=kb;en-us;298984) переименовывать Acwzusr.mdt при обнаружения проблем в работе мастера создания маски ввода.

AccessWizFilePath
Возвращает полный путь к запрошенному файлу надстройки.

Код: plaintext
WizHook.AccessWizFilePath("Acwzmain.mde")
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32556849
Фотография Темный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VictoshaМодераторам. Буде решите, что оффтоп – удалите, но завтра, сегодня всего не накидаю – уж удалять – так всю свалку.

Почему это вдруг оффтоп??? Не...
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32556850
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AdpUIDPwd(pbstrUID As String, pbstrPwd As String) As Boolean)
Нет данных
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32556855
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AnalyzeQuery(Workspace As Workspace, Database As Database, Query As String, Results As String) As Long (требует ключ)

(похожая ??? функция AnalyzeTable)
Функция производит анализ производительности запроса.
Results представляет собой строку, разделенную на подстроки символом Chr(1) и заканчивается результат анализа Chr(2)
В случае, если анализатору запросов сказать нечего, возвращает пустую строку. Содержательный возврат зависит от результата анализа и выглядит приблизительно следующим образом.
-первая подстрока – код, определяющий «тип возврата»
- вторая - полный путь к базе данных
Далее идет результат анализа. Для случая запроса с join-ом между таблицами с неустановленными связями, когда анализатор выдает совет «Таблица Tabl: установите связь с таблицей Tabl2 » получен возврат следующего содержания
R ‘ Recomendation
L:\Victosha\UNotes\VizBase2002.mdb ‘Путь к базе
1 | ? тип связи между таблицами в запросе ?
M |
Table1 ‘ сторона 1
FieldName1
M ‘ сторона M
Table2
FieldName2


Пример обращения

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Sub AnalizeQuery()
  Dim resultString As String
  Dim resultLong As Long
  Dim tArr
   'WizHook.Key = 51488399
 
  resultLong = WizHook.AnalyzeQuery(DBEngine( 0 ), DBEngine( 0 )( 0 ), "ЖурналУчета", resultString)
  tArr = Split(resultString, Chr( 1 ))
  If Len(resultString) >  0  Then
    For resultLong =  0  To UBound(tArr)
      Debug.Print tArr(resultLong)
    Next
  End If
End Sub
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32556857
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AnalyzeTable(Workspace As Workspace, Database As Database, Table As String, ReturnDebugInfo As Boolean, Results As String) As Long (требует ключ)
Назначение не очевидно и возврат не так хорошо вычитывается как в случае предыдущей функции.
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32556859
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ArgsOfActid(Actid As Long) As Long (требуется ключ)

Возвращает количество аргументов для указанного ActionID – идентификатора действия (макрокомадны). Полезна при работе с макросами. Ниже следующий пример показывает ее в паре с WizHook.NameFromActid (далее отдельно рассматриваться не будет) см. также OpenScript

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Sub wzNameAndArgsOfActid()
   Dim wzActid As Integer
   Dim NombreAccion As String
    
    WizHook.Key =  51488399 
     ' в "первоисточниках" цикл от 1 до 62
 
    For wzActid =  1  To  65 
        NombreAccion = WizHook.NameFromActid(wzActid)
        If NombreAccion <> "" Then
            Debug.Print "ИД действия"; wzActid; "Действие: "; NombreAccion
            Debug.Print "- к-во аргументов: "; _
                WizHook.ArgsOfActid(wzActid)
        End If
    Next

End Sub
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32556862
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BracketString(String As String, flags As Long) As Boolean (требуется ключ)

Добавляет прямоугольные скобки [] к строке, пытаясь сформировать допустимое (для последующего Eval) имя. Использует в качестве «разделителей» символы «!» и «.»

Flags:
0 – Не добавлять []
1 – заключить в скобки только неверные части имени
2 – заключить в скобки все подстроки
Возвращаемое значение:
True – В строке ВОЗВРАТА содержится недопустимое имя
False – Строка возврата не содержит недопустимых имен

Пример вызова

Код: 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.
Sub wzBracketString()
Dim wzStr0 As String
Dim wzStr1 As String
Dim wzStr2 As String

    
    WizHook.Key =  51488399 
    
    wzStr0 = "Forms!Имя формы с пробелами.Text1"
    wzStr1 = "Forms!Имя формы с пробелами.Text1"
    wzStr2 = "Forms!Имя формы с пробелами.Text1"
            
    Debug.Print WizHook.BracketString(wzStr0,  0 ), wzStr0
    Debug.Print WizHook.BracketString(wzStr1,  1 ), wzStr1
    Debug.Print WizHook.BracketString(wzStr2,  2 ), wzStr2
    
    Debug.Print
    
    wzStr0 = "Forms!ИмяФормыБезПробелов.Text1"
    wzStr1 = "Forms!ИмяФормыБезПробелов.Text1"
    wzStr2 = "Forms!ИмяФормыБезПробелов.Text1"
    
    Debug.Print WizHook.BracketString(wzStr0,  0 ), wzStr0
    Debug.Print WizHook.BracketString(wzStr1,  1 ), wzStr1
    Debug.Print WizHook.BracketString(wzStr2,  2 ), wzStr2
    
End Sub
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32556864
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WizHook.CloseCurrentDatabase (требует ключ)

Эквивалентна Application.CloseCurrentDatabase
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32556868
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CreateDataPageControl(DpName As String, CtlName As String, Type As Long, Section As String, SectionType As Long, AppletCode As String, x As Long, y As Long, dx As Long, dy As Long)

? что-то про страницы доступа к данным.
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32556870
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WizHook.CurrentLangID() As Long

Возвращает идентификатор текущего языка
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32556874
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WizHook.DbcVbProject
Возвращает объект VBProject.. Не требует ссылки на библиотеку расширений VBA

Код: plaintext
1.
2.
3.
4.
5.
Sub getVBEProject()
  Dim tObj
  WizHook.Key =  51488399 
  Set tObj = WizHook.DbcVbProject
  
End Sub
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32556879
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EmbedFileOnDataPage ? что-то про страницы доступа к данным.
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32556881
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EnglishPictToLocal(In As String, Out As String) As Boolean

Преобразует английские имена «стандартных» форматов к локальным

Код: 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.
Sub wzEnglishPictToLocal()
Dim wzIn( 16 ) As String
Dim wzOut As String
Dim i As Integer

    WizHook.Key =  51488399 
    
    sIn( 0 ) = "General Date"
    sIn( 1 ) = "Long Date"
    sIn( 2 ) = "Medium Date"
    sIn( 3 ) = "Short Date"
    sIn( 4 ) = "Long Time"
    sIn( 5 ) = "Medium Time"
    sIn( 6 ) = "Short Time"
    sIn( 7 ) = "General Number"
    sIn( 8 ) = "Currency"
    sIn( 9 ) = "Euro"
    sIn( 10 ) = "Fixed"
    sIn( 11 ) = "Standard"
    sIn( 12 ) = "Percent"
    sIn( 13 ) = "Scientific"
    sIn( 14 ) = "True/False"
    sIn( 15 ) = "Yes/No"
    sIn( 16 ) = "On/Off"
    
    For i =  0  To  16 
        WizHook.EnglishPictToLocal sIn(i), sOut
        Debug.Print sIn(i) & ": " & sOut
    Next
        
End Sub
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32556883
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FGetMSDE ?
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32556884
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FileExists(File As String) As Boolean (требует ключ)

Проверяет существование указанного файла в файловой системе
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32556887
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Function FirstDbcDataObject(Name As String, ObjType As AcObjectType, Attribs As Long) As Boolean

Заполняет Name первым именем объекта типа таблица или запрос, возвращая в ObjType тип этого объекта. 0 – таблица, 1 – запрос.
Attribs – атрибут для поиска.
Пример вызова

Код: 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.
Sub wzFirstDbcDataObject()
Dim wzName As String
Dim wzObjType As Long
Dim wzAttribs As Long

Const wzNormal =  0 
Const wzHidden =  8 
Const wzLinked =  2097152 

    WizHook.Key =  51488399 

    WizHook.FirstDbcDataObject wzName, wzObjType, _
                               wzAttribs
    Debug.Print "Имя: " & wzName
    Debug.Print "Тип: " & iif(wzObjType =  0 , "Таблица", _
                               "Запрос")
    
    Debug.Print "Атрибуты:",
    If (wzAttribs And wzNormal) = wzNormal Then
        Debug.Print "Обычный",
    End If
    If (wzAttribs And wzHidden) = wzHidden Then
        Debug.Print "Скрытый",
    End If
    If (wzAttribs And wzLinked) = wzLinked Then
        Debug.Print "Звязанный объект"
    End If
    
End Sub
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32556892
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FIsFEWch ?
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32556893
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FullPath(RelativePath As String, FullPath As String) As Integer (требует ключ)

Возвращает абсолютный путь на основе полученной строки относительного пути и сведений о текущем каталоге Access.
Пример использования

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Sub wzFullPath()
Dim wzRelativePath As String
Dim wzFPath As String

    WizHook.Key =  51488399 
    
    wzRelativePath = "NewFolder/file.ext"
    WizHook.FullPath wzRelativePath, wzFPath
    Debug.Print wzFPath
    
End Sub
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32556897
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WizHook.GetColumns(bStrBase as string) as string

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

Код: plaintext
1.
2.
3.
4.
Sub wzCol()
  Dim sRet  As String
  WizHook.Key =  51488399 
  sRet = WizHook.GetColumns("vec_hist")
End Sub
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32556899
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Function GetCurrentView(bstrTableName As String) As Long
Member of Access.WizHook ?
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32556903
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GetFileName(hwndOwner As Long, AppName As String, DlgTitle As String, OpenTitle As String, File As String, InitialDir As String, Filter As String, FilterIndex As Long, View As Long, flags As Long, fOpen As Boolean) As Long (требует ключ)

Диалог открытия/сохранения файлов.
fOpen=True – откыть
fOpen=False – сохранить
flags – в паре с View определяет вид отображения элементов в диалоге.

View = 0 и flags = 0
Вид: Список
View = 0 и flags = 64
Вид: Детальный
View = 1 и flags = 64
Вид: «Устаревший вид» ? – yt ghjdthtyj
View = 2 и flags = 64
Вид: «Свойства»
дополнительно:
View = 0 и flags = 32
Просмотри выбор только каталогов
' View = 0 y flags = 12
мультиселект – позволяет выбрать несколько файлов

Код: 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.
41.
Sub wzGetFileName()
Dim wzhwndOwner As Long
Dim wzAppName As String
Dim wzDlgTitle As String
Dim wzOpenTitle As String
Dim wzFile As String
Dim wzInitialDir As String
Dim wzFilter As String
Dim wzFilterIndex As Long
Dim wzView As Long
Dim wzflags As Long
Dim wzfOpen As Boolean
Dim ret As Long
    
    WizHook.Key =  51488399 
    
    wzhwndOwner =  0 &
    wzAppName = ""
    wzDlgTitle = "Cuadro de diбlogo con WizHook"
    wzOpenTitle = "Abrir con Wz"
    wzFile = String( 255 , Chr( 0 ))
    wzInitialDir = ""
    wzFilter = "Archivos grбficos " _
    & "(*.wmf;*.emf;*.dib;*.bmp;*.ico;" _
    & "*.pcx;*.pcx;*.jpg;*.gif;*.png)"
    wzFilterIndex =  1 
    wzView =  1 
    wzflags =  64 
    wzfOpen = True

    ret = WizHook.GetFileName(wzhwndOwner, _
        wzAppName, wzDlgTitle, wzOpenTitle, wzFile, _
        wzInitialDir, wzFilter, wzFilterIndex, _
        wzView, wzflags, wzfOpen)
        
 ' Проверим, не произошел ли возврат в результате нажатия клавиши Esc (-302)
 
    If ret <> - 302  Then
        MsgBox "Выбран файл: " & wzFile
    End If

End Sub



GetFileName2(hwndOwner As Long, AppName As String, DlgTitle As String, OpenTitle As String, File As String, InitialDir As String, Filter As String, FilterIndex As Long, View As Long, flags As Long, fOpen As Boolean, fFileSystem) As Long
Судя по всему, дополнена параметром выбора только элементов файловой системы.

Работа не проверена.
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32556905
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GetFileOdso(bstrExt As String, bstrFilename As String) As Long

Работа не проверена, судя по всему, возвращает по полученному имени файла источника данных офис - *.ods содержащуюся в нем строку подключения. При подаче неверного имени файла открывает диалог поиска файла-источника данных. Требуется уточнение
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32556906
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GetInfoForColumns(bstrBase As String) As String

Похоже на информацию о типах данных полей таблицы. Значения мной не расшифровывались.
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32556911
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GetScriptString(HScr As Long, ScriptColumn As Long, Value As String) As Boolean

Метод возвращает значения для различных столбцов макроса. Возвращает истину , если выполнился успешно

Аргументы
HScr – Long – идентификатор (манипулятор) макроса
ScriptColumn – Long – столбец макроса. 0 – Имя макроса, 1 – комментарий, 2 – Условие, 3 - 12 аргументы
Value – значение, содержащееся в запрошенном столбце.

Рибера указывает, что образцом для нижеприведенного кода послужили V-tools 2000-2002 c http://www.skrol29.com

Код: 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.
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.
 ' API для закрытия макроса в памяти
 
Private Declare Sub fCloseHscr _
            Lib "msaccess.exe" _
            Alias "#20" _
            (ByVal HScr As Long)
            
 ' API для перехода к строке макроса
 
Private Declare Function fNextHscr _
            Lib "msaccess.exe" _
            Alias "#22" _
            (ByVal HScr As Long, _
            ByVal fSkipBlank As Long, _
            pfEndOfScript As Long) As Long
            
 ' API для получения действия, соответствующего строке макроса
 
Private Declare Function ActidOfHscr _
            Lib "msaccess.exe" _
            Alias "#29" _
            (ByVal HScr As Long) As Long

Sub wzGetScriptString()
Dim hMacro As Long
Dim wzScript As String
Dim wzLabel As String
Dim wzOpenMode As Long
Dim wzExtra As Long
Dim wzVersion As Long
Dim mAction As Variant
Dim mLabel As String
Dim mComment As String
Dim mCondition As String
Dim mArgument As String
Dim EndOfScript As Long

     ' Имя макроса
 
    wzScript = "Пример макроса"
     ' способ чтения
 
    wzOpenMode =  0 
    
    WizHook.Key =  51488399 
     ' Читаем макрос
 
    hMacro = WizHook.OpenScript(wzScript, _
        wzLabel, wzOpenMode, wzExtra, wzVersion)
     ' Позиционируемся для работы в обратном порядке
 
    fNextHscr hMacro,  0 &, EndOfScript
     ' Значение для действия
 
    mAction = ActidOfHscr(hMacro)
     ' передаем значение по цепочке
 
    mAction = WizHook.NameFromActid(mAction)
     ' значение столбца Имя макроса
 
    WizHook.GetScriptString hMacro,  0 &, mLabel
     ' значение столбца Комментария
 
    WizHook.GetScriptString hMacro,  1 &, mComment
     ' значение столбца условия
 
    WizHook.GetScriptString hMacro,  2 &, mCondition
     ' значение первого аргумента для действия
 
    WizHook.GetScriptString hMacro,  3 &, mArgument
    
    Debug.Print "Имя макроса:", mLabel
    Debug.Print "Условие:", mCondition
    Debug.Print "Действие:", mAction
    Debug.Print "Комментарий:", mComment
    Debug.Print "1-ый аргумент:", mArgument

End Sub
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32556915
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GetWizGlob(lWhich As Long) ?

PS

на сегодня все - пошел спать
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32557263
Фотография Serge Gavrilov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хорошее дело, я тоже пытался составить документацию по WizHook, но запала не хватило. И информации в инете нашел меньше. Надо бы это все систематизировать и в FAQ вынести.
Victosha может совершите подвиг?
Еще бы отдельный документ по полезным скрытым функциям, таким как

Application.AppLoadString(id As Long)
(может не самый удачный пример, но я это использую)

и функциям самого Access, таким как

Declare Function MSAU_OfficeGetFileName Lib "msaccess.exe" Alias "#56" ( _
gfni As WLIB_OFFICEGETFILENAMEINFO, ByVal fOpen As Integer) As Long

Declare Sub CloseHscr Lib "msaccess.exe" Alias "#20" ( _
ByVal hScr As Long)

Declare Function FNextHscr Lib "msaccess.exe" Alias "#22" ( _
ByVal hScr As Long, _
ByVal fSkipBlank As Long, _
pfEndOfScript As Long) As Long

Declare Function ActidOfHscr Lib "msaccess.exe" Alias "#29" ( _
ByVal hScr As Long) As Long

Declare Function CargsOfActid Lib "msaccess.exe" Alias "#30" ( _
ByVal actid As Long) As Long

Declare Function IdsArgNameOfActidIarg Lib "msaccess.exe" Alias "#33" ( _
ByVal actid As Long, _
ByVal iArg As Long) As Long

(привел некоторые из тех, которые использовал,
полный список можно просмотреть в Dependecy Walker)

Из функций WizHook еще обратил бы внимание на такие, как (навскидку):

'сортировка массива
Sub SortStringArray(Array() As String)

'проверка на наличие процедуры с заданным именем
Function GlobalProcExists(Name As String) As Boolean

'пароль на VBA
Function SetVbaPassword(bstrDbName As String, bstrConnect As String, bstrPasswd As String) As Boolean

авторВ действительности (кажется) не требует ключа инициализации.
Увы, требуется.
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32559781
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Sergey Gavrilov

авторApplication.AppLoadString(id As Long)
(может не самый удачный пример, но я это использую

вот и показал бы - как :))
...

по поводу использования нумерованных точек входа.
я их не пользую, практически никогда, по двум причинам.

1) (главная) - безграмотен и ленив
2) никто не обещал совместимости при смене версий. Возникает "привязанный" код. То, что вниз не пойдет - не важно. Важно, что знак вопроса всегда с перемещением "вверх". Кроме того, лично я придерживаюсь в общем случае ложной мысли, что VBA код Акцесса - это, с одной стороны кандидат на перенос в VBS, с другой - в VB. В обоих случаях я косо смотрю на нумерованные точки входа именно в Акцесс-ные функции.

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

Тем не менее почти все упомянутые функции либо окажеутся рассмотренными "естественным путем", либо имеют эквиваленты в визхуке.


ЗЫ
заодно приношу извинения за задержки
второй день "болею" - здоровье потихоньку подводить начинает. не радость...
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32559783
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GlobalProcExists
Возвращает истину, если запрошенная процедура или функция существует в базе данных. Рибера делает специальную оговорку, что вызов не работает с процедурами и функциями того же модуля, из которого производится вызов GlobalProcExists. В Акцесс 2002 я этого не могу подтвердить. У меня «все работает».

Код: plaintext
1.
2.
3.
4.
5.
Sub wzGlobalProcExists()

    WizHook.Key =  51488399 
    Debug.Print WizHook.GlobalProcExists("wzEnglishPictToLocal")
    Debug.Print WizHook.GlobalProcExists("wzGlobalProcExists")
End Sub
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32559785
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WizHook.HideDates ?
У меня вернула истину. Что сие значит и как управлять – не знаю.
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32559787
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IsMatchToDbcConnectString(bstrConnectionString As String) As Boolean

Возвращает истину или ложь, в зависимости от того, является ли полученная строка правильной строкой подключения к текущей базе данных.
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32559788
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Function IsValidIdent(Identifier As String) As Boolean
Проверяет полученную строку, на допустимость ее содержимого как имени переменной.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Sub wzIsValidIdent()

    WizHook.Key =  51488399 
    
    
    Debug.Print WizHook.IsValidIdent("нормальная_переменная")
    Debug.Print WizHook.IsValidIdent("_нормальная_переменная")
    Debug.Print WizHook.IsValidIdent("нормальная переменная")    
    
End Sub
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32559789
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KeyboardLangID
Возвращает идентификатор «языка клавиатуры».
ИМХО – скорее идентификатор языка системы.
У меня 1049 – вне зависимости от текущей раскладки
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32559791
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sub KnownWizLeaks(fStart As Boolean)
Похоже, натурально подчищает (освобождает) память. В режиме отладки эффект выглядит следующим образом – очистка наступает сразу при нажатии F8 с целью исполнения процедуры. Далее – при прохождении отладчиком по коду «дополнений» не происходит. Объясняю это тем, что при нажатии F8 происходит не только компиляция, но и «тестовое выполнение» процедуры. Не ясно – «чей» сборщик мусора при этом запускается. Назначение fStart - ?

Код: plaintext
1.
2.
3.
4.
Sub wizLeaksTest()
  WizHook.Key =  51488399 
  WizHook.KnownWizLeaks True
  
End Sub
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32559792
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sub LoadImexSpecSolution(bstrFilename As String) -?
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32559793
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LocalFont
Похоже, возвращает фонт, установленный в базе данных по умолчанию для нового контрола.
Обычно – Tahoma.

Код: plaintext
1.
2.
3.
4.
5.
Sub wzLocalFont()

    WizHook.Key =  51488399 
    Debug.Print WizHook.LocalFont
    
End Sub
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32559794
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Function NameFromActid(Actid As Long) As String

Actid – идентификатор действия.
Возвращает пустую строку или имя действия.
Смотри примеры для ArgsOfActid и GetScriptString
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32559797
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Function ObjTypOfRecordSource(RecordSource As String) As Integer Возвращает «тип источника данных», относясь к полученной строке как к «строке источника данных».

Возврат
0 – текст, представляющий собой SQL-выражение (запрос).
1 – таблица
2 – запрос (сохраненный в бд)
-1 – тип объекта не определен.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Sub wzObjTypOfRecordSource()
    Dim tipo As Integer

    WizHook.Key =  51488399 
    
    Debug.Print WizHook.ObjTypOfRecordSource _
                       ("SELECT * FROM Tabla1")
    Debug.Print WizHook.ObjTypOfRecordSource("Tabla1")
    Debug.Print WizHook.ObjTypOfRecordSource("Consulta1")

End Sub
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32559799
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Function OfficeAddInDir() As String

Выдает каталог расположения «дополнений» (AddIns) офис

Код: plaintext
1.
2.
3.
4.
5.
Sub wzOfficeAddInDir()

    WizHook.Key =  51488399 
    Debug.Print WizHook.OfficeAddInDir
    
End Sub
Результат вида
C:\Documents and Settings\CurrentUserName\Application Data\Microsoft\AddIns\
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32559801
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Function OpenPictureFile(File As String, Cancelled As Boolean) As Boolean

Открывает предварительно конфигурированный для работы с «картинками» диалог типа OpenFile.
Смысл диалога – Insert Picture.
При выходе из диалога нажатием на кнопку cancel или клавишей Esc – параметр Cancelled принимает значение True.
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32559805
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Function OpenScript(Script As String, Label As String, OpenMode As Long, _
Extra As Long, Version As Long) As Long

Открывает макрос на чтение или запись. Возвращает целое, представляющее собой идентификатор макроса.
Параметры
Script – Имя макроса, который необходимо открыть.
Label – при расширенном виде конструктора макросов (включены столбцы «имя макроса» и «условие») должно быть имя из столбца «Имя макроса»
OpenMode – режим открытия макроса 0 – на чтение, 2 – на запись. Если макроса с указанным именем не существует, создает новый с таким именемю Если существует – блокирует существующий и создает новый пустой.
Extra - ?
Version – Версия макроса.

Дополнительной к данной функции является
Код: plaintext
1.
2.
Private Declare Sub fCloseHscr _
            Lib "msaccess.exe" _
            Alias "#20" (ByVal HScr As Long)
За расширенными примерами применения Рибера отсылает к исходному тексту V-tools.


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Sub wzOpenScript()
Dim hMacro As Long
Dim wzScript As String
Dim wzLabel As String
Dim wzOpenMode As Long
Dim wzExtra As Long
Dim wzVersion As Long

    wzScript = "Clientes"
    wzOpenMode =  0 

    WizHook.Key =  51488399 
    hMacro = WizHook.OpenScript(wzScript, _
        wzLabel, wzOpenMode, wzExtra, wzVersion)
        
    fCloseHscr hMacro
    
End Sub
Пример от JasonM:

Код: 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.
41.
42.
43.
44.
45.
46.
Private Declare Function api_Macro_NextRow Lib "msaccess.exe" Alias "#22" _
    (ByVal hMacro As Long, ByVal lSkipBlank As Long, lEndOfMacro As Long) As Long
Private Declare Function api_Macro_GetActID Lib "msaccess.exe" Alias "#29" (ByVal hMacro As Long) As Long

Public Function DisplayMacro(sMacroName As String)
    Dim sLabel As String
    Dim lOpenMode As Long
    Dim lExtra As Long
    Dim lVersion As Long
    Dim lHmacro As Long
    Dim lScriptColumn As Long
    Dim sValue( 12 ) As String
    Dim lActNum As Long
    Dim lActID As Long
    Dim lMacroRow As Long
    Dim bEndOfMacro As Boolean
    
    lOpenMode =  0 &
    lHmacro = WizHook.OpenScript(sMacroName, sLabel, lOpenMode, lExtra, lVersion)
    
    If (lHmacro) Then
        Debug.Print "Hscr: " & lHmacro &  "Macro Name: " & sMacroName
        Debug.Print "Label: " & sLabel &  "Open Mode: " & lOpenMode
        Debug.Print "lExtra: " & lExtra &  "lVersion: " & lVersion
    Else
        Debug.Print "Failed to get handle"
        Exit Function
    End If
    
    lMacroRow =  0 
    Do While Not (bEndOfMacro)
        Call api_Macro_NextRow(lHmacro, False, False)
        lActID = api_Macro_GetActID(lHmacro)
        
        If (lActID <> - 1 ) Then
            Debug.Print "Row: " & lMacroRow & vbTab & "Action: " & WizHook.NameFromActid(lActID)
            For lScriptColumn =  0  To  12 
                Call WizHook.GetScriptString(lHmacro, lScriptColumn, sValue(lScriptColumn))
                Debug.Print "ScriptColumn: " & lScriptColumn & vbTab & "Value: " & sValue(lScriptColumn)
            Next lScriptColumn
            lMacroRow = lMacroRow +  1 
        Else
            bEndOfMacro = True
        End If
    Loop
    
End Function
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32559807
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sub ReportLeaksToFile(fRptToFile As Boolean, bstrFileOut As String) ?
Как разумно с ней обратиться – не сообразил.
В том смысле, что результата в виде файла не получил.
Это безусловно не означает, что у меня «чистый» код, не приводящий к memory leak.
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32559808
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sub SaveObject(bstrName As String, objtyp As Integer)

Наверно, ее или то, что под ней вызывает DOCMD.Close с параметрами сохранения.
Работа не проверена.
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32559813
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Function SaveScriptString(HScr As Long, ScriptColumn As Long, _
Value As String) As Boolean


Метод записи значения в макрос. Возвращает истину, если завершен успешно.
Дежурная отсылка к V-Tools.

Параметры

Hscr – идентификатор макроса.
ScriptColumn – столбец макроса; 0 – столбец имени, 1 – комментарий,
2 – условие, 3-12 аргументы.
Value – значение для записи в макрос.

Код: 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.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
 'API of Access 
 
 ' Для закрытия макроса
 
 Private Declare Sub fCloseHscr _ Lib "msaccess.exe" _
 20  Alias "#" _ (ByVal HScr Ace Long)

 ' для перехода к следующей строке макроса
 
Private Declare 
Function fNextHscr _ Lib "msaccess.exe" _  22  Alias "#" _ (ByVal HScr 
Ace Long, _ ByVal fSkipBlank Ace Long, _ pfEndOfScript Ace Long) Ace 
Long

 ' для записи значения действия в макрос
 
 Private Declare Function fSaveActidHscr _ Lib 
"msaccess.exe" _  25  Alias "#" _ (ByVal HScr Ace Long, _ ByVal actid 
Ace Long) Ace Long Sub wzSaveScriptString() Dim hMacro Ace Long Dim 
wzScript Ace String Dim wzLabel Ace String Dim wzOpenMode Ace Long Dim
wzExtra Ace Long Dim wzVersion Ace Long Dim EndOfScript Ace Long

     ' имя макроса
 
    wzScript = 
"Macro of example"
     ' собираемся открывать на запись
 
    wzOpenMode =  2 & 
    WizHook.Key =  51488399 
     ' открываем на запись
 
    hMacro = 
WizHook.OpenScript(wzScript, _ wzLabel, wzOpenMode, wzExtra, 
wzVersion) If hMacro <>  0  Then
         ' позиционируемся на конец
 
        fNextHscr hMacro,  0 &, EndOfScript
         ' записываем действие  ("MsgBox")
 
        fSaveActidHscr  hMacro,  22 &
         ' оформим столбец "Имя макроса"
 
        WizHook.SaveScriptString _ hMacro,  0 &, 
"Example of label"
         ' оформим столбец комментариев
 
        WizHook.SaveScriptString _ hMacro, 
 1 &, "Example of commentary"
         ' оформим столбец условий
 
        WizHook.SaveScriptString _ 
hMacro,  2 &, "..."
         ' пишем строку в столбец аргументов. Ее будет отображать MSGBOX 
 
WizHook.SaveScriptString _ 
hMacro,  3 &, "Example of creation of" _ & "macro and writing of values"
End If
      
     ' закрываем макрос. После этого изменения станут доступны
 
    fCloseHscr hMacro End 
Sub
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32559814
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sub SetDpBlockKeyInput(fBlockKeys As Boolean) ?
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32559815
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Function SetVbaPassword(bstrDbName As String, bstrConnect As String, _
bstrPasswd As String) As Boolean


JasonM говорит, что не сумел заставить заработать этот метод. Рибера уточняет, что метод не работает на текущей базе данных.
Устанавливает пароль на VBA проекте. Возвращает истину, если завершился успешно.
Параметры
bstrName – полный путь к базе.
bstrConnect – похоже, не используется при правильном bstrName. Может оказаться необходимым при ранее установленном пароле на mdb.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Sub wzSetVbaPassword() 
  Dim wzDBName as String 
  Dim wzConnect as String
  Dim wzPasswd ase String 

  WizHook.Key =  51488399  
  wzDBName = "c:\base_datos.mdb" 
  wzConnect = "" wzPasswd = "password" 

  Debug.Print WizHook.SetVbaPassword(_ wzDBName, wzConnect, wzPasswd) 
End Sub
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32559816
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sub SetWizGlob(lWhich As Long, vValue) ?
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32559820
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sub SortStringArray(Array() As String)
Метод сортирует одномерный массив строк в алфавитном порядке.
Проваливается при получении неинициализированного массива.
Всегда доступен (не требует ключа)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Public Function WH_Test()
    Dim a( 3 ) As String
    Dim i As Integer
    
    a( 0 ) = "zulu"
    a( 1 ) = "alpha"
    a( 2 ) = "gamma"
    a( 3 ) = "delta"
    
    WizHook.SortStringArray a()
    
    For i =  0  To  3 
        Debug.Print a(i)
    Next
    
End Function

-----------------------------------

PS
снова перерыв, но уже немного осталось:))
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32559858
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если говорить об удобстве и совместимости то лучше всего использовать
docmd.runcommand вместо функций визарда, где конечно можно.

а для работы с файлами папками разбором строки path более удобны:

Set oFso = CreateObject("Scripting.FileSystemObject")
Set oShell = CreateObject("WScript.Shell")
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32559897
Фотография Serge Gavrilov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторТем не менее почти все упомянутые функции либо окажеутся рассмотренными "естественным путем", либо имеют эквиваленты в визхуке.


К сожалению нет.
В msa 97 библиотеки WZMAIN80.MDE и WZTOOL80.MDE используют "нумерованные точки входа." Посмотрите исходники, они доступны на microsoft. C msa 2000 MS создали WizHook, но перенесли туда только часть подрбных функций. Посмотрите, ведь даже в приведенном вами примере на GetScriptString используются подобные функции. Ну нет в WizHook, например, функции закрытия макроса и многих других. Я писал приложение для работы с макросами, поэтому знаю эту ситуацию, а вот чем мотивировано подобное решение MS я не понимаю.
Немного о работе с макросами есть здесь
http://am.rusimport.ru/MsAccess/f2.aspx?type=1&id=16577&find=hscr

А по поводу AppLoadString(id As Long) - она позволяет грузить строки по их идентификатору (своего рода аналог LoadResString).
Например функция
Private Declare Function IdsArgNameOfActidIarg Lib "msaccess.exe" Alias "#33" _
(ByVal actid As Long, _
ByVal iArg As Long) As Long
Возвращает идентификатор строки имени аргумента макроса.
Выдав этод идентификатор функции AppLoadString, получим строку имени аргумета на языке локализованного Access
Возмем макрокоманду MsgBox, имя первого аргумента Message (в русском Access - Сообщение), второго Beep (Сигнал) и т.д.
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32559902
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Serge Gavrilov

за информацию об AppLoadString - спасибо.

под "упомянутыми" понимались только те функции, которые оказались перечисленными в Вашем посте от 10 июн 04, 23:09.

я действительно не пользую подобного в рабочем коде для клиентов.
давно есть мечта - написать пару визардов лично под себя. все руки-ноги не доходят и я не верю, что дойдут. Для них бы вся эта механика хорошо пошла.

Почему-то хочется еще раз подчеркнуть, что все это - "всего лишь" перевод.
Без претензий.

Наверно можно порассуждать на тему плохо или хорошо и все или не все. Но сначала все-таки просто содержание свойств/методов.
Часть которых меня интригуют, а не нашли никакого "описания" .
По всему видно, что тема относительно новая - даже от русьимпорта мы отстали чуть более чем на месяц.
Зато, считаю, результат ближе к испанскому
(что собственно и есть для меня первоисточник) по смыслу - не демонстация на примере блеска собственного ума, а просто набор справочных сведений.

Заверяю Вас, что ни при каких обстоятельствах не ввязался бы в сию "бубликацию", если бы знал, что тема освещена на русьимпорте.

Теперь все это надо просто как-то завершить.


зы
все-таки чувство меры потихоньку изменяет. пора на печку.


:))
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32559911
Фотография Serge Gavrilov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЗаверяю Вас, что ни при каких обстоятельствах не ввязался бы в сию "бубликацию", если бы знал, что тема освещена на русьимпорте.

Но почему? Меня лично ваша публикация порадовала в очень большой степени. Я был очень рад, что кто-то взялся за систематизацию этого раздела. Это и пытался отразить в первом письме.

авторТеперь все это надо просто как-то завершить.
А вот торопиться не надо :)
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32568619
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот, кажется. Наступило то самое «завтра», когда заканчивается «перевод».
По активности обсуждения, кажется, что тема «лишняя». Хотя может быть,
люди просто вежливо ожидают «окончания». Тем не менее спасибо всем
читавшим и высказывающимся.

2 Serge Gavrilov
WizMain80.mde «с просмотром» скачал. Но просмотреть не сумел. Попытка
прямого «подъема» в AccessXP приводит к ошибке – отсутствуют права на mde
в файле рабочей группы. 97 –го в обозримом доступе уже нет, «Надо искать».
Жаль. – Посмотрел бы с интересом..

Так или иначе – завершение «перевода» - следует.
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32568622
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sub SplitPath(Path As String, _
Drive As String, Dir As String, File As String, Ext As String)


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


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Sub wzSplitPath()
  Dim wzPath As String
  Dim wzDrive As String
  Dim wzDir As String
  Dim wzFile As String
  Dim wzExt As String

    WizHook.Key =  51488399 
    
    wzPath = "c:\dir1\dir2\nombre_archivo.txt"
    WizHook.SplitPath wzPath, wzDrive, wzDir, wzFile, wzExt
    Debug.Print "Устройство: "; wzDrive
    Debug.Print "Каталог: "; wzDir
    Debug.Print "Имя файла: "; wzFile
    Debug.Print "Расширение файла:"; wzExt
    
End Sub
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32568624
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Function TableFieldHasUniqueIndex(Table As String, _
Columns As String) As Boolean


Возвращает истину, если столбец Columns в таблице Table индексирован
и при этом совпадающие значения не допускаются. (уникальный индекс).

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Sub wzTableFieldHasUniqueIndex()
  Dim wzTable As String
  Dim wzField As String

    WizHook.Key =  51488399 

    wzTable = "MyTable"
    wzField = "MyField"
    
    Debug.Print WizHook.TableFieldHasUniqueIndex _
                       (wzTable, wzField)
    
End Sub
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32568626
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Function TranslateExpression(In As String, Out As String, _
ParseFlags As Long, TranslateFlags As Long) As Boolean ?
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32568627
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Function TwipsFromFont(FontName As String, Size As Long, _
Weight As Long, Italic As Boolean, Underline As Boolean, _
Cch As Long, Caption As String, MaxWidthCch As Long, _
dx As Long, dy As Long) As Boolean


Вычисляет ширину и высоту переданного как параметр Caption текста,
в предположении, что он будет выведен заказанным шрифтом.

Параметры
FontName – Имя шрифта
Size – размер
Weigth – Толщина буквы
Italic – курсив
Underline – подчеркнутый
Cch – ?
Caption – тестовая чтрока, размеры которой определяются
MaxWidthCch - ?
dx – ширина в твипах, возвращаемое значение
dy – высота в твипах, возвращаемое значение

Код: 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.
Sub wzTwipsFromFont()
  Dim wzFontName As String
  Dim wzSize As Long
  Dim wzWeight As Long
  Dim wzItalic As Boolean
  Dim wzUnderline As Boolean
  Dim wzCch As Long
  Dim wzCaption As String
  Dim wzMaxWidthCch As Long
  Dim wzdx As Long
  Dim wzdy As Long

    WizHook.Key =  51488399 
    
    wzFontName = "Arial"
    wzSize =  8 
    wzItalic = True
    wzUnderline = True
    wzCaption = "Тестовая строка для определения размеров"
        
    WizHook.TwipsFromFont wzFontName, wzSize, wzWeight, _
                          wzItalic, wzUnderline, wzCch, _
                          wzCaption, wzMaxWidthCch, _
                          wzdx, wzdy

    Debug.Print "Ширина в твипах: " & wzdx
    Debug.Print "Высота в твипах: " & wzdy
    
End Sub

Это была последняя упомянутая в «документации» функция.
Далее перечислю оставшиеся без попыток «дать описание».
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32568628
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sub WizCopyCmdbars(bstrADPName As String) ?
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32568629
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Function WizHelp(HelpFile As String, _
wCmd As Long, ContextID As Long) As Boolean
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32568630
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Function WizMsgBox(bstrText As String, bstrCaption As String, _
wStyle As Long, idHelpID As Long, bstrHelpFileName As String) As Long
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32568634
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Предварительные замечания «после перевода».
Оставляю этот поток для дополнений и обсуждений.
Предложение Serge Gavrilov об оформлении потока в «ФАК» принять не могу
по причинам
а) неполноты «документации»,
б) составление ФАК-ов – неотъемлемое право в первую очередь,
модераторов сайта
в) личные мотивы.

В действительности, ФАК-и образуются на основе заданных вопросов.
На своей памяти (2004г.) вопросов такого сорта не припомню, а за предыдущий период пусть скажут старожилы. Скорее, это д.б. «информационный листок», может, где-нибудь, «в статьях».

Оставшиеся неописанными функции весьма интересны.
Все-таки сильно надеюсь, что появятся хотя бы попытки их «раковыривания».

С Уважением, Виктоша.
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32568637
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Прошу прощения, что вмешиваюсь. Рискую показаться сааавсем глупым, но все-таки. Хочу попросить уважаемого Виктошу ответить на пару вопросиков.

1. Что за зверь WizHook? Что он делает?

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

При подготовке "материалов" использовался Access XP SP2.

Прогон функций осуществлялся пошагово (F8) в режиме отладчика.

За время подготовки пришлось несколько раз дать /decompile проекту.

После закрытия проекта, при повторном его последующем открытии несколько раз наблюдались случаи стабильного краха Акцесс при попытке открыть модуль нажатием кнопки "конструктор" на вкладке "модули". Излечивалось декомпиляцией проекта.
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32568641
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 BC
насколько я понимаю wizhook
Это весьма полезные функции аксесса которые расположены в стандартных визардах-аддинах (ACWZTOOL.MDE, ACWZMAIN.MDE)

Sub WizCopyCmdbars(bstrADPName As String) ?
наверное это было бы круто для access старых версий.
начиная с ХР уже можно нормальным кодом управлять импортом и и экспортом тулбаров.
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32568643
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Саныч
1) про перевод
Перевод с испанского на русский. Ссылки в первом посте. За основу взят испаноязычный сайт http://www.mvp-access.com/juanmafan/

2) WizHook
Скрытый объект Access. Впервые появился в Акцесс2000. Его можно найти в Object Browser, если открыв его (Browser), нажав левую кнопку мыши выбрать из контекстного меню опцию - "показывать скрытые объекты"

3) про фак я уже высказался

4) про необходимость - тоже судить не берусь. для меня это просто блажь.
В самом первом посте сказано - буде решено, что оффтоп - просто принесу извинения за запачканное полотно. :)))
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32568644
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
То есть такое количество аксессного кода приведено не как результат переводческой работы, а просто для облегчения поиска соответствующих мест в оригинале?
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32568645
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Саныч

Собственно непосредственной причиной для меня явилось проскочившийц неделю-другую назад совет по организации диалога выбора папок, в котором, собсвенно он WizHookб и был использован.
Заело.
Что-ж это за зверь такой, о котором все, кроме меня знают. :))

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

Такая интертрепация тоже годится - как-то неуютно я себя рядом с языковедами...
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32568648
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Кстати, я немножко изучал испанский. Если "непереведенные" функции - это то, что не удалось понять при помощи автопереводчика, то, может, удастся понять при помощи меня?
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32568652
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С большим удовольствием. Испанский тут не сгодится. Испанский кончился. Автопереводчик - худо-бедно, свое доработал. Остались "неописанные" функции. Тут нужен Сам Голова. или другой источник.

Утягивают от компа. Вернусь к вечеру.
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32568676
Фотография Serge Gavrilov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторПредложение Serge Gavrilov об оформлении потока в «ФАК» принять не могу
Я не совсем правильно выразил свою мысль.
Хотелось бы просто иметь место, где эта информация была бы систематизирована и могла быть развита дальше, с участием заинтересованных лиц. Но это, конечно, никак не FAQ :)

Victosha, я очень благодарен вам за эту публикацию.
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #32568842
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victosha Function TranslateExpression(In As String, Out As String, _
ParseFlags As Long, TranslateFlags As Long) As Boolean ?

Решил посмотреть ее. Похоже, она преобразует выражения к привычному для нее (? :), или нас :) виду. По крайней мере, системные константы Access она преобразует.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
  Dim strIn As String
  Dim strOut As String
  Dim a As Long
  Dim b As Long
    WizHook.Key =  51488399 

    strIn = "=true"
     b =  1 
    WizHook.TranslateExpression strIn, strOut, a, b
       Debug.Print strOut
strIn ="true" дает "True"
strIn ="=true" и b=0 дает "=true"
strIn ="=true" и b=1 дает "=True"
По причине, что не смог придумать, а на кой ляд мне эта функция, изыскания прекратил :)
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #33070515
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victosha AdpUIDPwd(pbstrUID As String, pbstrPwd As String) As Boolean)
Нет данных

проверил, что это за зверь.
оказалось, что возвращает текущие значения для пользователя и его пароля
для стандарного (не вин-секьюрити) подключения к sql-server
для адп проекта.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
  WizHook.Key =  51488399 
  Dim bR As Boolean ' результат (успех/неуспех)
  Dim pbstrUID As String 'сюда вернется имя пользователя для стандарной безопасности или пусто, если win-идентификация
  Dim pbstrPwd As String ' сюда вернется пароль текущего пользователя (или пусто)

  WizHook.Key =  51488399 
  bR = WizHook.AdpUIDPwd(pbstrUID, pbstrPwd)
  Debug.Print bR, pbstrUID, pbstrPwd

Если соединение SSPI, то будут получены такие значения
bR= True, pbstrUID=vbnullString, pbstrPwd=VbNullString

ЗЫ1
проверялось на подключенном проекте.
не исключено, что в отсутствии соединения bR=False - требует доп. проверки.

ЗЫ2
кажется, что-то подобное было кому-то нада...
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #33071872
zz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Класс. Теперь можно получать pwd текущего коннекта наконец-то.
Осталось понять, чем это чревато.
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #33072799
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
встретил нечто, что можно воспринимать как рекомендацию
"отключать" Wizhook после использования.

Не вполне точно понятно, с какими целями.
"Отключение" предлагается производить присвоением Key значения 0

типа так:

Код: plaintext
1.
2.
3.
4.
5.
6.
Const ENABLE_WIZHOOK =  51488399 
Const DISABLE_WIZHOOK =  0 


WizHook.Key = ENABLE_WIZHOOK 
do something...
WizHook.Key = DISABLE_WIZHOOK

встретил тут
http://www7.big.or.jp/~pinball/discus/access/92216.html
может найтется знаток японского и разъяснит о целях (если они там указаны).


:)
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #33222410
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victosha Victosha AdpUIDPwd(pbstrUID As String, pbstrPwd As String) As Boolean)
Нет данных

проверил, что это за зверь.
оказалось, что возвращает текущие значения для пользователя и его пароля
для стандарного (не вин-секьюрити) подключения к sql-server
для адп проекта.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
  WizHook.Key =  51488399 
  Dim bR As Boolean ' результат (успех/неуспех)
  Dim pbstrUID As String 'сюда вернется имя пользователя для стандарной безопасности или пусто, если win-идентификация
  Dim pbstrPwd As String ' сюда вернется пароль текущего пользователя (или пусто)

  WizHook.Key =  51488399 
  bR = WizHook.AdpUIDPwd(pbstrUID, pbstrPwd)
  Debug.Print bR, pbstrUID, pbstrPwd

Если соединение SSPI, то будут получены такие значения
bR= True, pbstrUID=vbnullString, pbstrPwd=VbNullString

ЗЫ1
проверялось на подключенном проекте.
не исключено, что в отсутствии соединения bR=False - требует доп. проверки.

ЗЫ2
кажется, что-то подобное было кому-то нада...

попробовал сегодня AdpUIDPwd на защищенном файлом рабочей группы mdb.

он в ответ честно мне сказал - как меня зовут и какой у меня пароль.

adp - стало быть - немного слово обманка.

эта функция возвращает текущий мандат пользователя, независимо - adp
(со стандартной sql-авторизацией) это или mdb.
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #33223302
Фотография Serge Gavrilov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victosha...
попробовал сегодня AdpUIDPwd на защищенном файлом рабочей группы mdb.

он в ответ честно мне сказал - как меня зовут и какой у меня пароль.

adp - стало быть - немного слово обманка.

эта функция возвращает текущий мандат пользователя, независимо - adp
(со стандартной sql-авторизацией) это или mdb.

Очень интересно! Спасибо.
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #33223336
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если не вру - (надо бы проверить еще дополнительно)

Код: plaintext
bR = WizHook.AdpUIDPwd(pbstrUID, pbstrPwd)

переменная bR принимает значение истина, только когда adp
со стандартной sql идентификацией. для мдб, в частности, возвращает ложь.

видимо, этот возврат должен читаться ьак - "текущее соединение с базой не является соединением с скл-сервером в режиме скл-идентификации"
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #33223339
Мшсещырф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
хи-хи.
сам себя не четал...
...

видимо, этот возврат должен читаться так - "текущее соединение с базой не является соединением с скл-сервером."
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #33224358
Фотография nibbles
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Смотрел вот это:
http://www.mvp-access.com/juanmafan/wizhook/wizhook.htm
Есть вот такой фрагмент:
авторA partir de la versión 2000 de Access aparece un nuevo objeto (oculto) en la librería de objetos de Access, llamado WizHook. Por que se puede deducir de su nombre - Wiz-Hook, Wi-zard-Hook, algo así como "mediador con los asistentes" - y también por los métodos que utiliza, es un objeto que sirve de enlace entre el código interno de Access y el código externo de los asistentes de Access, los cuales están ubicados en una serie de bases .mde, que se instalan junto con la aplicación de Access. Hasta la versión 97 los elementos de WizHook estaban ubicados dentro del ejecutable de Access como funciones API. Se declaraban de una forma parecida a ésta:

Код: plaintext
1.
2.
3.
4.
Declare Function fEjemplo _
                 Lib "msaccess.exe" _
                 Alias "#888" _
                 ByVal var1 As Long _
                 ByVal var2 As Long) As Long
pero, al parecer, algunas de estas funciones API de Access ya no están disponibles de esta manera en la versión 2000, y en cambio sí lo están como métodos del objeto WizHook (otras funciones, sin embargo, siguen funcionando como solían a través del API de Access).
К сожалению, я по-итальянски не гу-гу... Может быть кто-то хотя бы общий смысл уловит? Судя по всему, это вступление в WizHook, но к чему там Declare API-функции?
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #33224417
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ваапче-то ето гишпанский.
а яво трасляте.ру берет так

www.translate.ru
Хочу быть благодарным в Skrol29, тот факт, что он хотел делить открытие, на как "активизировании" объекта Висоок, так как без его помощи и усилия не было ни даже не начатый моего исследования этой темы. С этих страниц я хочу посылать ему сердечное приветствие.
Начиная с версии 2000 Аксесс появляется новый (скрытый) объект в книжном магазине объектов Аксесс, так называемого Висоок. Из-за которого возможно приходить к заключению его имени - Вис-Оок, Ви-сард-Оок, чего-то подобного " посреднику с помощниками " - и также из-за методов, которые он использует, это объект, который служит соединением между внутренним кодом Аксесс и внешнего кода помощников Аксесс, которые найдены в серии оснований .мде, что основывают вместе с применением Аксесс. До версии 97 составные части Висоок были помещены внутри выполнимого Аксесс как функций АПИ. Они высказывались формы похожей на эту:


Признал Функтион fEjemplo _
Либ "мсаксесс.ексе" _
Прозвище "*888" _
Биваль var1 Эксперт Лонг _
Биваль var2 Эксперт Лонг) Эксперт Лонгно, как кажется, какие-то из этих функций АПИ Аксесс уже не являются доступными таким образом в версии 2000, и взамен да они это как методы объекта Висоок (другие функции, однако, продолжают функционировать как они имели обыкновение через АПИ Аксесс).
Возможно, что мы больше одного этих методов и свойств Висоок не находим много почувствованным как программисты применений. Нужно помнить, что, предположительно, этот объект служит как соединение с помощниками, и конечно более ориентировалось на рисунок объектов основания информации и на взаимодействование с программистом, который в конечное использование применения *con* информация.
Поскольку Висоок - скрытый объект, чтобы мочь делать это видимым, мы должны идти в окно издателя Визуального Басик де Аксесс, меню Видеть, Экзаменатор объектов, и на окне, где появляются объекты, кликать с прямой пуговицей мыши, выбирая сегидаменте выбор " Показывать скрытые члены ".
Мы найдем Висоок как объект книжного магазина Аксесс или также как собственность объекта Аппликатион (который в свою очередь ссылается на объект Висоок).
Если мы будем пробовать выполнять какой-то метод или соглашаться на какую-то собственность Висоок, мы увидим, что никогда оно не кажется функционирует (за исключением метода Сортстрингарраи). Это потому что перед тем, как использовать какой-то метод, мы должны "активизировать" Висоок назначая стоимость, решенную на его собственность Кеи. Начиная со здесь, Висоок функционирует в течение всего времени, в котором основание информации было открытым.
Время спустя делать доказательства и исследовать, я смог готовить серию примеров и объяснений каких-то его методов и свойств. Здесь у вас есть они:АксессусердатадирАргсофактидБраккетстрингКлосекуррентдатабасеКуррентланхидЭнглиспикттолокальФилеексистсФирстдбкдатаобхектФульпатХетфиленамеХетскриптстрингГлобальпросексистсИсмачтодбкконнектстрингИсвалидидентКеиКеибоардланхидЛокальфонтНамефромактидОбхтипофрекордсоурсеОффисеаддиндирОпенпиктурефилеОпенскриптСавескриптстрингСетвбапассвордСортстрингарраиСплитпатТаблефьельдасуникеиндексТвипсфромфонт

Он замечает: Объект Висоок - без документов объект, и следовательно, эта информация предоставляется " как дела " без гарантий какого-либо класса, и не предоставляя какое-либо право, это только плод личного исследования.
Информация, которая выставляется здесь, - независимая от Майкрософта. Майкрософт не дает никакую гарантию ни подразумеваемая ни никакого другого класса, относительно надежности и отдачи этой документации.
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #33224433
Фотография nibbles
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
по-испански, кстати, тоже :))
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #33224565
Andres 1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victoshaвстретил нечто, что можно воспринимать как рекомендацию
"отключать" Wizhook после использования.

Не вполне точно понятно, с какими целями.

Вот, немецкие товарищи ( http://www.team-moeller.de/access/tiptrick/wizhook.html) пишут что-то вроде того ( переводил Гугль ), что предпочитают инициализировать при каждом использовании, но не сбрасывать. Причина, кажется, чисто эстетическая - код выглядит лучше.

Ау, кто знает немецкий?
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #33336756
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victosha Sub SortStringArray(Array() As String)
Метод сортирует одномерный массив строк в алфавитном порядке.
Проваливается при получении неинициализированного массива.
Всегда доступен (не требует ключа)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Public Function WH_Test()
    Dim a( 3 ) As String
    Dim i As Integer
    
    a( 0 ) = "zulu"
    a( 1 ) = "alpha"
    a( 2 ) = "gamma"
    a( 3 ) = "delta"
    
    WizHook.SortStringArray a()
    
    For i =  0  To  3 
        Debug.Print a(i)
    Next
    
End Function


дополнение
Если элемент массива сохранил значение по умолчанию vbNullString,
или элементу массива было явно присвоено такое значение, то функция проваливается, вызывая крах Access.
Пояснение. vbNullString, строго говоря, не строка в собственном смысле этого слова. В том отношении, что "значению" vbNullString не соответствует никакой строковый буфер.
Элементу массива должен быть присвоена любая "настоящая" строка (выделен явный строковый буфер).
Например - ""
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #33336865
MsDatabaseru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
когда увидел поднятой эту тему
сразу вспомнил как когда уже все было готово,
смотрел результаты в watch и обратил на пустую нулевую ячейку внимание...
на результаты сравнения не влияло так как там и сям одинаково поэтому забил... не доперло что именно это ломает аксесс

прикольно.
правда опасно использовать если нет гарантии что все элементы не пустые
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #33338538
Olya A
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здраствуйте.
А расскажите немного поподробенее про wizhook, и как его подключать?
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #33338988
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
никак не подключать
библиотечные функции аксессовских проектов расположенных
в директории где установлен аксесс доступны
как имябиблиотеки.имяфункции
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
WizHook - перевод "документации"
    #34294645
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вчера был вопрос про диалог сохранения в акцесс. в связи с этим привожу
уточнения по GetFileName

расшифровки значений входных параметров для View и flags,
замечание по разделению элементов фильтра:

(значения взяты с вышецитированного немецкого сайта. имена констант придуманы ad hoc)


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
'разделитель элеметнов фильра типов (расширений) файлов
Const CwzFilterPipe$ = "|"   'вертикальная черта (pipe-символ)

'константы для параметра View метода WizHook.GetFileName
'параметр определяет вид отображения элементов файловой системы в окне диалога
'принимаются в расчет в комбинации с флагом 64 для параметра flags
Const CvwDetail& =  0 &       'детальный (вид Detail)
Const CvwPreview& =  1 &      'предварительный просмотр (вид Preview)
Const CvwList& =  3 &         'Список (вид List)
Const CvwThumbnails& =  4 &   'миниатюра (вид Thumbnails)
Const CvwLargeIcons& =  5 &   'большие иконки (вид Large Icons)
Const CvwSmallIcons& =  6 &   'маленькие иконки (вид Small Icons)

'Константы для параметра flags метода WizHook.GetFileName
'допускается комбинация через суммирование
Const CflDirChange& =  4 &     'выбор с переустановкой текущего каталога Access
Const CflMultySelect& =  8 &   'допускается множественный выбор файлов.
                             'в комбинации с 32, в случае множественного выбора, возвращается имя родительского каталога.
Const CflFolderSelect& =  32 & 'выбор каталога. fOpen должен быть =True выбора каталога.
Const CflForceView& =  64 &    'при установке этого парамтера окно диалога формсируется в вид, определяемый параметром View
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #34355695
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уточнения про AdpUIDPwd и определение текущего пользователя:

предыдущее описание было неточным.
Новый вариант выглядит так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
  WizHook.Key =  51488399 
  
  Dim bR As Boolean 
  Dim pbstrUID As StringDim pbstrPwd As String
  WizHook.Key =  51488399 
  bR = WizHook.AdpUIDPwd(pbstrUID, pbstrPwd)
  
  Debug.Print bR, pbstrUID, pbstrPwd
 

bR = True - мы находимся в ADP-проекте присоединенном в режиме интегрированной windows-идентификации. Если в панели подключения ранее были сохранены имя и пароль пользователя, то они будут показаны в pbstrUID и pbstrPwd.
Реальное имя пользователя нужно устанавливать через Environ или API
На значения pbstrUID и pbstrPwd как реквизиты текущего пользователя нельзя полагаться.

bR = False для адп с sql-регистрацией и mdb-проекта в pbstrUID и pbstrPwd фактические
реквизиты текущего пользователя.

------------------
из предыдущего описания могла складываться впечатление, что возврат этой функции может быть использован для определения типа проекта. На самом деле это не так.
Тип проекта - adp|mdb определяется через Application.CurrentProject.ProjectType
подтип (ade\mde) может быть определен через набор Properties для CurrentDb (mde) или CurrentProject (adp)
так для ADE CurrentProject.Properties("ADE")=True
------------------
В любом случае в ADP нельзя полагаться на Application.CurrentUser
Этот вызов покажет имя пользователя из
Application.DeEngine.Workspaces(0).UserName
------------------

жаль, что в этом топике нет желающих поисправлять мои ошибки. :)
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #34355701
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В любом случае в ADP нельзя полагаться на Application.CurrentUser
Этот вызов покажет имя пользователя из
Application.DbEngine.Workspaces(0).UserName
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #34356145
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это было неправда:
автортак для ADE CurrentProject.Properties("ADE")=True

приношу извинения. придумалось
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #34356197
Фотография Serge Gavrilov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victoshaэто было неправда:
автортак для ADE CurrentProject.Properties("ADE")=True

приношу извинения. придумалось
для ADE CurrentProject.Properties("MDE")=True
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #34356362
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Serge Gavrilov Victoshaэто было неправда:
автортак для ADE CurrentProject.Properties("ADE")=True

приношу извинения. придумалось
для ADE CurrentProject.Properties("MDE")=True

благодарю за решающее указание.

:)

спасибо.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
WizHook - перевод "документации"
    #38110662
studieren
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Случайно наткнулся на статью WizHook-Objekt . Правда написано на немецком.
Там есть таблица, где перечислены свойства / процедуры / функции объекта Wizhook для разных версий Access. Если верить этой таблице, то появились и новые, которых не было в MSA 2003. Ну например "GetDisabledExtensions" в MSA2010. Интересно, что же возвращает это свойство / функция в MSA2010? Из-за не имения не на чем экспериментировать.
Сам автор того сайта пишет, что не совсем ясно, что же выполняет эта функция, чтобы документировать её. :)
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #38110762
Фотография Старый ворчун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
studieren,

у меня возвращает "!txt,csv,tab,asc,tmp,htm,html,log"
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #38110775
Фотография ILL HEAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сам по себе визхук - бред пьяного индуса
когда нет нормального оопа изобретают гамно. а некоторые роются в в нем
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #38110829
Фотография Старый ворчун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ILL HEADсам по себе визхук - бред пьяного индуса
может быть
ILL HEADкогда нет нормального оопа изобретают гамно.
Не желаете пояснить свою мысль? Что именно вы имеете в виду?
Я, например, не вижу четкой связи между тем, что у VBA (у Access?) нет "нормального ооп" и необходимостью создания WizHook.
Excel как-то обходится без подобного.
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #38110857
Фотография ILL HEAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Старый ворчунILL HEADсам по себе визхук - бред пьяного индуса
может быть
ILL HEADкогда нет нормального оопа изобретают гамно.
Не желаете пояснить свою мысль? Что именно вы имеете в виду?
Я, например, не вижу четкой связи между тем, что у VBA (у Access?) нет "нормального ооп" и необходимостью создания WizHook.
Excel как-то обходится без подобного.не желаю. но поясню - наличие "нормального опп" предполагает доступ к методам и свойствам объектов. в т.ч. окружения

перечислите в чем вам помог визхук. уверен что больше 1-2 примеров не наберете. почему- потому что это костыль для хромого акцеса (вб6)

про экцель не скажу. мало ли где вба воткнут
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #38111650
Фотография Старый ворчун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ILL HEAD,
к сожалению, аргументированного ответа не услышал.
Видимо, исправление "хромоты" access - полный отказ от VBA?

Использовать wizhook никто не призывает. Это не документировано.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
WizHook - перевод "документации"
    #39469931
Фотография гурД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почти все методы Wizhook на японском. В переводчике всё понятно...
http://wizhook.web.fc2.com/
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #39469932
Фотография гурД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но этот объект, как я понял, удобнее всего для макросов. Возможно, в новых Аксах (от 2010-13) с их табличными макросами кто-нить возродит...
...
Рейтинг: 0 / 0
WizHook - перевод "документации"
    #39470815
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
102 сообщений из 102, показаны все 5 страниц
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / WizHook - перевод "документации"
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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