'********************************************* ' AccessUserDataDir: ' ' Devuelve el directorio donde está ubicado ' el archivo de datos de usuario para los ' asistentes ' Sub wzAccessUserDataDir() WizHook.Key = 51488399 Debug.Print WizHook.AccessUserDataDir End Sub '********************************************* '********************************************* ' ArgsOfActid: ' ' Lista el número de argumentos (ArgsOfActid) ' disponibles para las acciones (NameFromActid) ' existentes en las macros ' ' Argumentos: ' Actid: Número de la acción. ' Sub wzArgsOfActid() Dim wzActid As Integer Dim resultado As String WizHook.Key = 51488399 For wzActid = 0 To 62 resultado = WizHook.NameFromActid(wzActid) If resultado <> "" Then Debug.Print "Acción: "; resultado Debug.Print "- nº argumentos: "; _ WizHook.ArgsOfActid(wzActid) End If Next End Sub '********************************************* '********************************************* ' BracketString: ' ' Evalúa una expresión y determina si necesita ' ir encerrada entre corchetes. ' Dependiendo del valor del segundo argumento ' BracketString añade o no los corchetes, si ' se requieren, tomando como separador de ' cadenas el caracter "!" o ".": ' ' Valores del segundo argumento: ' 0 = No añade corchetes ' 1 = Añade corchetes si se necesita ' 2 = Siempre añade corchetes ' ' Valor de retorno: ' True = Argumento 1 necesita corchetes ' False = Argumento 1 no necesita corchetes ' Sub wzBracketString() Dim cadOriginal As String Dim cadFinal As String WizHook.Key = 51488399 cadOriginal = "Forms!Form Con Espacios.Text1" cadFinal = cadOriginal Debug.Print WizHook.BracketString(cadFinal, 0), cadFinal Debug.Print WizHook.BracketString(cadFinal, 1), cadFinal cadFinal = cadOriginal Debug.Print WizHook.BracketString(cadFinal, 2), cadFinal Debug.Print cadOriginal = "Forms!FormSinEspacios.Text1" cadFinal = cadOriginal Debug.Print WizHook.BracketString(cadFinal, 0), cadFinal Debug.Print WizHook.BracketString(cadFinal, 1), cadFinal Debug.Print WizHook.BracketString(cadFinal, 2), cadFinal End Sub '********************************************* '********************************************* ' CloseCurrentDatabase: ' ' Cierra la base de datos actual ' En principio no veo ninguna diferencia entre ' este método y el ya existente en el objeto ' Application de Access ' Sub wzCloseCurrentDatabase() WizHook.Key = 51488399 WizHook.CloseCurrentDatabase End Sub '********************************************* '********************************************* ' CurrentLangId: ' ' Este método informa del idioma utilizado ' en la base de datos ' Sub wzCurrentLangId() Dim wzCLangId As Long WizHook.Key = 51488399 wzCLangId = WizHook.CurrentLangID Select Case wzCLangId Case 1033: Debug.Print "General" Case 2052: Debug.Print "Chinese Pronunciation" Case 133124: Debug.Print "Chinese Stroke Count" Case 1028: Debug.Print "Chinese Stroke Count (Taiwan)" Case 197636: Debug.Print "Chinese Bopomofo (Taiwan)" Case 1050: Debug.Print "Croatian" Case 1029: Debug.Print "Czech" Case 1061: Debug.Print "Estonian" Case 1036: Debug.Print "French" Case 66615: Debug.Print "Georgian Modern" Case 66567: Debug.Print "German Phone book" Case 1038: Debug.Print "Hungarian" Case 66574: Debug.Print "Hungarian Technical" Case 1039: Debug.Print "Icelandic" Case 1041: Debug.Print "Japanese" Case 66577: Debug.Print "Japanese Unicode" Case 1042: Debug.Print "Korean" Case 66578: Debug.Print "Korean Unicode" Case 1062: Debug.Print "Latvian" Case 1063: Debug.Print "Lithuanian" Case 1071: Debug.Print "FYRO Macedonian" Case 1044: Debug.Print "Norwegian/Danish" Case 1045: Debug.Print "Polish" Case 1048: Debug.Print "Romanian" Case 1051: Debug.Print "Slovak" Case 1060: Debug.Print "Slovenian" Case 1034: Debug.Print "Spanish (Traditional)" Case 3082: Debug.Print "Spanish (Spain)" Case 1053: Debug.Print "Swedish/Finnish" Case 1055: Debug.Print "Turkish" Case 1058: Debug.Print "Ukranian" Case 1066: Debug.Print "Vetnamese" End Select End Sub '********************************************* '********************************************* ' EnglishPictToLocal: ' ' Este método traduce al idioma local los ' los tipos de formato que aparecen en la ' casilla "formato" de diversos objetos de ' las bases de datos Access ' ' Argumentos: ' sIn: Cadena que contiene la expresión ' a traducir ' sOut: Cadena donde se devuelve el ' resultado de la traducción ' Sub wzEnglishPictToLocal() Dim sIn(16) As String Dim sOut 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 '********************************************* '********************************************* ' FileExists: ' ' Este método devuelve True si el archivo ' existe en la ruta indicada (no sirve para ' comprobar la existencia de directorios) ' Sub wzFileExists() Dim wzFile As String WizHook.Key = 51488399 wzFile = "C:\Autoexec.bat" Debug.Print WizHook.FileExists(wzFile) End Sub '********************************************* '********************************************* ' FirstDbcDataObject: ' ' Este método devuelve los siguientes valores: ' ' 1º argumento: nombre del primer objeto de ' datos (tabla o consulta) ordenado alfabéti- ' camente. ' 2º argumento: Tipo de objeto de datos ' 3º argumentos: Atributos del objeto ' (los atributos que aparecen en el ejemplo ' son los que he podido averiguar, de ' momento). ' Sub wzFirstDbcDataObject() Dim wzName As String Dim wzObjType As Long Dim wzAttribs As Long Const atrNormal = 0 Const atrOculto = 8 Const atrVinculado = 2097152 WizHook.Key = 51488399 WizHook.FirstDbcDataObject wzName, wzObjType, wzAttribs Debug.Print "Nombre: " & wzName Debug.Print "Tipo: " & IIf(wzObjType = 0, "Tabla", "Consulta") Debug.Print "Atributos:", If (wzAttribs And atrNormal) = atrNormal Then Debug.Print "Normal", End If If (wzAttribs And atrOculto) = atrOculto Then Debug.Print "Oculto", End If If (wzAttribs And atrVinculado) = atrVinculado Then Debug.Print "Vinculado" End If End Sub '********************************************* '********************************************* ' FullPath: ' ' Convierte una ruta relativa pasada en el ' argumento 1, en una ruta absoluta, a partir ' del directorio actual cuyo valor se almacenará ' en el segundo argumento ' ' Por ejemplo, si el directorio actual es ' C:\Mis bds\WizHook ' y la ruta relativa que se pide es: ' NuevaRuta/archivo.ext ' el método devuelve: ' C:\Mis bds\WizHook\NuevaRuta\archivo.ext ' si la ruta relativa es: ' ../NuevaRuta/archivo.ext ' el método devuelve: ' C:\Mis bds\NuevaRuta\archivo.ext ' si la ruta relativa es: ' /NuevaRuta/archivo.ext ' o ' ../../NuevaRuta/archivo.ext ' el método devuelve: ' C:\NuevaRuta\archivo.ext ' 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 '********************************************* '********************************************* ' GetFileName ' ' Método muy interesante y con muchas posibili- ' dades que nos permite utilizar el cuadro de ' diálogo Abrir de Ms Office ' ' Podemos utilizar este cuadro de diálogo en ' vez del cuadro de diálogo del API ' GetOpenFileName, que es el que veníamos ' utilizando hasta ahora. ' Sus argumentos son: ' hwndOwner - valor long que contendrá el ' handle de la ventana a la que pertencerá ' el cuadro de diálogo (0& o hWndAccessApp) ' AppName - ?¿?¿ ' DlgTitle - Texto de la barra de título ' del cuadro de diálogo ' OpenTitle - Texto del botón Aceptar ' File - Variable que contendrá la ruta ' escogida por el usuario ' InitialDir - Directorio donde se iniciará ' el cuadro de diálogo ' Filter - Filtro de selección del tipo ' de archivos que queremos que se muestren. ' Puede haber más de uno, siempre separados ' con el caracter "|" ' FilterIndex - Número de índice del filtro ' que queremos activar. ' View - Tipo de vista que queremos activar: ' flags - Este argumento, junto con View, ' activa las vistas y algunos atributos del ' cuadro de diálogo. A saber: ' View = 0 y flags = 0 ' Vista: Lista ' View = 0 y flags = 64 ' Vista: Detalles ' View = 1 y flags = 64 ' Vista: Vista previa ' View = 2 y flags = 64 ' Vista: Vista propiedades ' y además: ' View = 0 y flags = 32 ' Permite escoger carpetas ' View = 0 y flags = 12 ' Permite multiselección ' ' fOpen - ' True: Muestra el botón Abrir ' False: Muestra el botón Guardar ' 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 = Access.hWndAccessApp 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) If ret <> -302 Then '-302 botón cancelar MsgBox "Archivo seleccionado: " & wzFile End If End Sub '********************************************* '********************************************* ' GlobalProcExists: ' ' Devuelve True si la función o procedimiento ' pasados como argumento existe en la base de ' datos y es de ámbito público o global ' ' Argumentos: ' El nombre de la rutina o función ' Sub wzGlobalProcExists() WizHook.Key = 51488399 Debug.Print WizHook.GlobalProcExists("wzGlobalProcExists") End Sub '********************************************* '********************************************* ' IsValidIdent: ' ' Devuelve True si el nombre de variable es ' válido ' ' Argumentos: ' nombre de la variable a analizar ' Sub wzIsValidIdent() WizHook.Key = 51488399 Debug.Print WizHook.IsValidIdent("nombre_variable") Debug.Print WizHook.IsValidIdent("_nombre_variable") End Sub '********************************************* '********************************************* ' Key: ' ' Asignando el valor 51488399 a la propiedad ' Key del objeto WizHook, éste se activa para ' toda la sesión ' Sub wzKey() WizHook.Key = 51488399 End Sub '********************************************* '********************************************* ' KeyboardLangId: ' ' Devuelve el valor numérico que representa ' el idioma del teclado ' Sub wzKeyboardLangId() Dim wzKLangId As Long WizHook.Key = 51488399 wzKLangId = WizHook.KeyboardLangID Select Case wzKLangId Case 1025: Debug.Print "dbLangArabic" Case 2052: Debug.Print "dbLangChineseSimplified" Case 1028: Debug.Print "dbLangChineseTraditional" Case 1049: Debug.Print "dbLangCyrilic" Case 1029: Debug.Print "dbLangCzech" Case 1043: Debug.Print "dbLangDutch" Case 1033: Debug.Print "dbLangGeneral" Case 1032: Debug.Print "dbLangGreek" Case 1037: Debug.Print "dbLangHebrew" Case 1038: Debug.Print "dbLangHungarian" Case 1039: Debug.Print "dbLangIcelandic" Case 1041: Debug.Print "dbLangJapanese" Case 1042: Debug.Print "dbLangKorean" Case 1030: Debug.Print "dbLangNorwDan" Case 1045: Debug.Print "dbLangPolish" Case 1060: Debug.Print "dbLangSlovenian" Case 1034: Debug.Print "dbLangSpanish" Case 1053: Debug.Print "dbLangSwedFin" Case 1054: Debug.Print "dbLangThai" Case 1055: Debug.Print "dbLangTurkish" End Select End Sub '********************************************* '********************************************* ' LocalFont: ' ' Devuelve el nombre de la fuente usada en la ' base de datos actual Sub wzLocalFont() WizHook.Key = 51488399 Debug.Print WizHook.LocalFont End Sub '********************************************* '********************************************* ' NameFromActid: ' ' Devuelve el nombre de la acción o método ' disponible para las macros que coincida ' con el número que se le pase como argumento ' ' Argumentos: ' El valor numérico que representa la acción ' Sub wzNameFromActid() Dim wzActid As Integer Dim resultado As String WizHook.Key = 51488399 For wzActid = 0 To 100 resultado = WizHook.NameFromActid(wzActid) If resultado <> "" Then Debug.Print resultado End If Next End Sub '********************************************* '********************************************* ' ObjTypOfRecordSource: ' ' Devuelve el tipo de objeto de datos de la ' cadena qu se le pase en su argumento ' Valores: ' 0 = Cadena SQL ' 1 = Tabla ' 2 = Consulta ' Argumentos: ' Nombre de la tabla o consulta, o cadena ' SQL a analizar ' Sub wzObjTypOfRecordSource() Dim tipo As Integer WizHook.Key = 51488399 Debug.Print WizHook.ObjTypOfRecordSource("SELECT * FROM Clientes") Debug.Print WizHook.ObjTypOfRecordSource("Clientes") Debug.Print WizHook.ObjTypOfRecordSource("Consulta1") End Sub '********************************************* '********************************************* ' OfficeAddInDir: ' ' Devuelve una cadena conteniendo la ruta de ' los complementos (AddIns) de Access ' Sub wzOfficeAddInDir() WizHook.Key = 51488399 Debug.Print WizHook.OfficeAddInDir End Sub '********************************************* '********************************************* ' OpenPictureFile: ' ' Presenta un cuadro de diálogo ya preparado ' especialmente para escoger archivos de ' imágenes. Es el mismo cuadro de diálogo ' que se utiliza con el método GetFileName, ' pero sin posibilidad para configurarlo. ' ' Argumentos: ' 1 - Variable que contendrá el nombre y ' ruta del archivo seleccionado. ' 2 - ?? ' Sub wzOpenPictureFile() Dim wzFileName As String Dim ret As Boolean WizHook.Key = 51488399 ret = WizHook.OpenPictureFile(wzFileName, True) If wzFileName <> "" Then Debug.Print "Archivo de imagen seleccionado: " & wzFileName End If End Sub '********************************************* '********************************************* ' SetVbaPassword: ' ' Método que pone una contraseña al código de ' una base de datos. ' No sirve para la base de datos actual ' ' Argumentos: ' 1 - Ruta y nombre de la base de datos ' 2 - ?? ' 3 - Contraseña ' Sub wzSetVbaPassword() Dim dbName As String Dim pw As String WizHook.Key = 51488399 dbName = "c:\mis documentos\MiBd.mdb" pw = "contraseña" WizHook.SetVbaPassword dbName, "", pw End Sub '********************************************* '********************************************* ' SortStringArray: ' ' Método utilísimo que ordena alfabéticamente ' una matriz de tipo string que se le pase como ' argumento (una sola dimensión) ' ' Argumentos: ' La matriz que se ha de ordenar ' Sub wzSortStringArray() Dim wzArray(3) As String Dim i As Integer WizHook.Key = 51488399 wzArray(0) = "ordenada " wzArray(1) = "Matriz " wzArray(2) = "WizHook" wzArray(3) = "por " Debug.Print "Matriz sin ordenar:" For i = LBound(wzArray) To UBound(wzArray) Debug.Print wzArray(i) Next WizHook.SortStringArray wzArray Debug.Print Debug.Print "Matriz ordenada alfabéticamente:" For i = LBound(wzArray) To UBound(wzArray) Debug.Print wzArray(i) Next End Sub '********************************************* '********************************************* ' SplitPath: ' ' Descompone una ruta en: ' - Unidad ' - Directorio ' - Nombre de archivo ' - Extensión del archivo ' ' Los argumentos de este método devuelven los ' valores anteriormente descritos. ' 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:\nombre_archivo.txt" WizHook.SplitPath wzPath, wzDrive, wzDir, wzFile, wzExt Debug.Print "Unidad: "; wzDrive Debug.Print "Directorio: "; wzDir Debug.Print "Nombre archivo: "; wzFile Debug.Print "Extensión archivo:"; wzExt End Sub '********************************************* '********************************************* ' TableFieldHasUniqueIndex: ' ' Devuelve True si el campo pasado como ' argumento es un campo indexado sin ' duplicados (propiedad Unique = True) ' ' Argumentos: ' 1 - Nombre de la tabla ' 2 - Nombre del campo ' Sub wzTableFieldHasUniqueIndex() Dim wzTable As String Dim wzField As String WizHook.Key = 51488399 wzTable = "Tabla1" wzField = "Campo3" Debug.Print WizHook.TableFieldHasUniqueIndex(wzTable, wzField) End Sub '********************************************* '********************************************* ' TwipsFromFont: ' ' Este método calcula el ancho y alto en twips ' de una cadena. ' Argumentos: ' FontName: Nombre del tipo de letra ' Size: Tamaño de la letra ' Weight: Grosor de la letra ' Italic: ¿Letra cursiva? ' Underline: ¿Subrayada? ' Cch: ?? ' Caption: Texto de la cadena ' MaxWidthCch: ?? ' dx: Ancho resultante ' dy: Alto resultante ' 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 = 10 wzWeight = 0 wzItalic = True wzUnderline = True wzCch = 0 wzMaxWidthCch = 0 wzCaption = "cadena de pruebas" WizHook.TwipsFromFont wzFontName, wzSize, wzWeight, wzItalic, wzUnderline, _ wzCch, wzCaption, wzMaxWidthCch, wzdx, wzdy Debug.Print "Ancho de la cadena: " & wzdx Debug.Print "Alto de la cadena: " & wzdy End Sub '*********************************************