Código de Access - Escanear usando el software nativo de Microsoft Windows

Imágen de perfil
Val: 33
Ha aumentado 1 puesto en Access (en relación al último mes)
Gráfica de Access

Escanear usando el software nativo de Microsoft Windowsgráfica de visualizaciones


Access

estrellaestrellaestrellaestrellaestrella(2)
Publicado el 23 de Enero del 2018 por Angel Daniel
1.624 visualizaciones desde el 23 de Enero del 2018
Al momento de escanear una imagen y usar el software del escaner, se me complicaba todo porque :
1.- tenia que especificar la ruta del software del escaner (Que puede variar con cada usuario asi que tenia que actualizarlo cada vez que lo instalaba )
2.- el programa seguía funcionando mientras yo escaneaba o le tenia que "atinar" a detenerlo con una pausa para terminar de escanear
3.- Ademas, tenia que cerrar el programa de escaneo manualmente
4.- luego hay que renombrar las imagenes a como yo necesitaba el nombre y directorio (o sea poner la imagen en el directorio donde debia ir y con el nombre que debe tener) ya que el software del escaner le pone un nombre por default y lo graba en un directorio que Él usa para las imagenes y no el directorio de mi aplicacion)
Me fue muy util para escanear documentos y ponerlos en un directorio aparte con un nombre especifico generado a partir de los datos de los campos (BD).
Mi aplicacion es sobre el control de maquinaria y mantenimiento la cual tiene fotos de la Maquina a Procesar,Datos para Mantenimiento y compras de refacciones con sus respectivas imagenes.
Asi resolvi estos problemas en conjunto

Requerimientos

Esta Hecho en Access 2010 y necesita de referencia Microsoft Windows Image Acquision Library 2.0 o superior
Se requiere de dos Modulos llamados ExisteArchivo (comprueba si existe un archivo según ruta, archivo y mensaje de error) y DibujaImagen que asigna el valor de una imagen a la propiedad imagen

2010
estrellaestrellaestrellaestrellaestrella(2)

Publicado el 23 de Enero del 2018gráfica de visualizaciones de la versión: 2010
1.625 visualizaciones desde el 23 de Enero del 2018
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
Lo primero. la segunda linea del programa  (despues de "Option Compare Database") debe ser
Const WIA_FORMAT_JPEG = "{B96B3CAE-0728-11D3-9D7B-0000F81EF32E}"
para que funcione correctamente el escaner
 
en un boton llamado ScanFiltro1 (para este ejemplo) poner en el evento alhacerclick (para evaluar los campos) el siguiente codigo:
 
Private Sub ScanFiltro1_Click()
 
  filtro = [FocusControl].Value  '** Focus Control es el Textbox que tiene el numero de filtro con el focus
  If filtro = "sin foto" Then
     MsgBox "Seleccione UN NOMBRE CORRECTO del FILTRO", vbCritical, "ERROR EN EL NOMBRE DEL FILTRO"
     GoTo Salir
  End If
  If Len(Nz(filtro, "")) = 0 Then
     MsgBox "Asigne UN NOMBRE CORRECTO al FILTRO", vbCritical, "ERROR EN EL NOMBRE DEL FILTRO"
     GoTo Salir
  End If
  directorio = "Filtros"
  imgn = filtro
  If Dir(Application.CurrentProject.Path & "\" & directorio & "\" & imgn & ".jpg") <> "" Then
     MsgBox "Archivo " & imgn & " Ya EXISTE", vbCritical, "ERROR. ESCANEO CANCELADO"
     GoTo Salir
  End If
  Escanear directorio, imgn
  If ExisteArchivo(Application.CurrentProject.Path & "\" & directorio & "\", imgn & ".jpg", "") Then
      DibujaImagen ImagenMaquina, imgn
  End If
Salir:
 
 
End Sub
 
la subrutina "Escanear " lleva el siguiente codigo (debe ser publica) y es la que realmente usa el escaner
 
'*****************************************************************
'*   ESCANEA UN ARCHIVO USANDO EL ESCANNER DE WINDOWS            *
'*       SEGUN EL dIRECTORIO DE ImgDir Y LE PONER EL NOMBRE Img  *
'*****************************************************************
 
Public Sub Escanear(ImgDir, Img)
 On Error GoTo Sol_Err
 Dim ElDoc As String
 Dim LaRuta As String
 Dim ElEscaner As WIA.CommonDialog
 Dim LaImagen As WIA.ImageFile
 ElDoc = Nz(Img, "")
 If ElDoc = "" Then
    MsgBox "Sintaxis de la funcion " & Chr(13) & "ESCANEAR ( DIRECTORIO, IMAGEN)", vbExclamation, "AVISO"
    Exit Sub
 End If
 LaRuta = Application.CurrentProject.Path & "\" & ImgDir & "\" & ElDoc & ".jpg"
 Set ElEscaner = New WIA.CommonDialog
 Set LaImagen = ElEscaner.ShowAcquireImage
 LaImagen.SaveFile (LaRuta)
 Set LaImagen = Nothing
 Set ElEscner = Nothing
 MsgBox "Documento Escaneado Correctamente", vbInformation, "ESCANEO CORRECTO"
Salida:
 Exit Sub
Sol_Err:
 If Err.Number = 91 Then
    MsgBox "SE CANCELA EL ESCANEO POR EL USUARIO", vbInformation, "ESCANEO CANCELADO"
 Else
    MsgBox "SE HA PRODCIDO EL ERROR " & Err.Number & Chr(13) & Err.Description, vbCritical, "ERROR DE ESCANER"
 End If
 Resume Salida
 
End Sub
 
en los modulos poner las siguientes funciones  o pueden ponerlas como subrutinas publicas (yo uso modulos porque se usan muchas veces y asi solo copio los modulos)
 
Option Compare Database
 
Public Sub DibujaImagen(control, Imagen)
   [control].Picture = Imagen
   [control].SizeMode = acOLESizeZoom
 
End Sub
Public Function ExisteArchivo(Eruta, EFile, FailMsg)
  ExisteArchivo = False
  If Len(Trim(Eruta)) = 0 Then EFile = Null
  If Len(Trim(EFile)) = 0 Then EFile = Null
  If IsNull(EFile) Then
     MsgBox "Sin Archivo Definido", vbInformation, "ERROR EN EL NOMBRE"
     GoTo Salir
  End If
  Dim Archivo As Variant
  Archivo = [Eruta] & [EFile]
  If Dir(Archivo) = "" Then
    If FailMsg = "0" Then
       GoTo Salir
    Else
       If Len(Trim(Nz(FailMsg, ""))) = 0 Then FailMsg = "Archivo " + EFile + " NO EXISTE"
       MsgBox FailMsg, vbInformation, "Archivo NO EXISTE"
    End If
    GoTo Salir
  End If
  ExisteArchivo = True
Salir:
 
End Function
 
Asi termina nuestro programa



Comentarios sobre la versión: 2010 (2)

ANEURY
24 de Febrero del 2019
estrellaestrellaestrellaestrellaestrella
NECESITO AYUDA CON ALGO SIMILAR QUE QUIERO HACER EN UNA APLICACION QUE ESTOY DESARROLLANDO. NECESITO QUE AL HACER CLICK SOBRE UNA IMAGEN SE ME GENERE UN TEXTO
Responder
Angel Bustamante
1 de Marzo del 2019
estrellaestrellaestrellaestrellaestrella
me falta mas especificaciones...
Basicamente la respuesta es: "pon el codigo que genera el texto en el evento onclick de la imagen"
Responder

Comentar la versión: 2010

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s4397