Imprimir página | Cerrar ventana

Tip sobre Autodial de Access

Impreso de: Foro de Access y VBA
Categoría: Access y VBA
Nombre del foro: Tus Funciones Favoritas & Aportaciones & Artí­culos
Descripción del foro: Para publicar código interesante, aportaciones y artículos
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=77242
Fecha de impresión: 03/Junio/2020 a las 22:08


Tema: Tip sobre Autodial de Access
Publicado por: buho
Asunto: Tip sobre Autodial de Access
Fecha de publicación: 09/Agosto/2013 a las 20:47

Cuando nosotros colocamos en Access el codigo:


Application.Run "utility.wlib_AutoDial", "983222222"


realmente lo que estás cargando es un formulario del complemento de Access llamado Utility.mda
Este fichero le podrás buscar en tu disco duro, pues es uno de los varios MDA que acompañan al producto de Access.

En realidad, la llamada anterior, se hace a través de una funcion
(«wlib_autodial») que está dentro de ese completo, en el modulo de clase «utils».
Esa función abre el formulario «acr_frmautodial» que es en realidad el
formulario que se te muestra en pantalla cuando pones:
Application.Run "utility.wlib_AutoDial", "983222222"

¿Y que hace este formulario?
Pues nada mas que llamar a la API y marcar el numero de telefono que
escribas en la caja de texto, y que dicho formulario recibe como parametro desde Application.Run "utility.wlib_AutoDial", "983222222"
(En este caso 983222222)
En resumen...y yendo a las tripas de todo esto, ese complmento, en esa parte, lo unico que hace es llamar a la api de esta forma:

Declare Function TAPI_Make_Call Lib "tapi32.dll" _Alias

 "tapiRequestMakeCall" _

(ByVal stNumber As String, _ByVal

 stDummy1 As String, _ByVal

 stDummy2 As String, _ByVal

 stDummy3 As String) As Long


y ejecuta esta funcion, así de simple.

Por lo tanto, podemos pasar de poner ese código  Application.Run "utility.wlib_AutoDial", "983222222" y construirnos un marcador telefónico al margen del complemento de access y del formulario mencionado. La función, todo junto ya, puesto en un módulo, podría quedar:

Option Explicit

Declare Function TAPI_Make_Call Lib "tapi32.dll" _
Alias "tapiRequestMakeCall" _
(ByVal stNumber As String, _
ByVal stDummy1 As String, _
ByVal stDummy2 As String, _
ByVal stDummy3 As String) As Long

 Function MarcaTelefono(Numero As String)
  Dim VarRet As Long
  If IsNumeric(Numero) = True Then
    VarRet = TAPI_Make_Call(Numero, "", "", "")
  End If
End Function


Y obtendrías el mismo resultado, pero sin el formulario de DAR conformidad para marcar el numero de TF.

Desde cualquier formulario, que tenga un campo de texto con un número de teléfono, bastaría que asociaras a un boton de comando este codigo:

MarcaTelefono Me.TxtTelefono

donde TxtTelefono es una caja / campo de texto con el numero de telefono a marcar

Saludos del Búho Smile



-------------
Por fin he hecho algo bueno, ser abuelo ¡y porque no lo he hecho yo!



Imprimir página | Cerrar ventana