Scanning images with MS Access form using VSTwain ActiveX by VintaSoft

Hello All,

Is it possible to preview the scanned document in the image1.Picture before saving? I've been successful at scanning and saving to a folder on the server. When I navigate record to record the images do load correctly.

I would like to scan the image, display it before saving on the form, and then have the user continue by clicking "Save" or cancel.

Here is what I have so far:
'Scan Button

Private Sub BAcquire_Click()

Dim User As String
Dim Email As String
Dim RegCode As String
Dim Result As Long

    User = "xxxxxxxx"
    Email = ""
    RegCode = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    Result = VSTwain1.Register(User, Email, RegCode)

         If VSTwain1.SelectSource = 1 Then
            VSTwain1.autoCleanBuffer = 1
            VSTwain1.maxImages = 1
            VSTwain1.showUI = 1
        End If

'Set Image1.Picture = VSTwain1.GetCurrentImage <<<<< I haven't been able to get this to work.  I get an "Invalid Use of Property" error.
 End Sub

'Save Button

Private Sub SaveScan_Click()
Dim flag As Long
Dim strFileName As String

 strFileName = Me.txtstrFileName

    If flag <> 0 Then
        If VSTwain1.errorCode <> 0 Then
            MsgBox VSTwain1.ErrorString
        End If
          VSTwain1.TiffCompression = 1
          If (VSTwain1.SaveImage(0, "q:\Downstream\" & strFileName) = 1) Then
          MsgBox VSTwain1.ErrorString
          End If
      '      Dim fName As String
       '     fName = "Q:\Downstream\" + Me!strFileName
        '    VSTwain1.SaveImage 0, fName
         '  If VSTwain1.errorCode <> 0 Then
          '      MsgBox VSTwain1.ErrorString
           ' Else
            '    Me![Link] = fName
             '   Me![Image1].Picture = fName
            End If
        'End If
    'End If
End Sub

Open in new window

Who is Participating?
Jeffrey CoachmanConnect With a Mentor MIS LiasonCommented:
sorry for the typo, ...the first code should be:

Jeffrey CoachmanMIS LiasonCommented:
Clearly define what you mean by "saving" the image?
Saving the image to an OLE field? an Attachment field, ...Save just the Path...
(I would save the path)

On overall concept wold be to:
Scan it and save it to a disk file. (this is the easiest way to "View" the image)
Store the path to the image as a variable
Then display the image file based on the path variable.
If it appears the way you like, *Then* save the path variable to he record

I am not familiar with your code, ...but from what you posted, I am sure you can get something going based on my suggestion.

FWIW, Did you look into this product:

Jeffrey CoachmanMIS LiasonCommented:
...oh and if the image is not what you wanted,...then you can delete the file with code like this:
 Kill "c:\YourFlder\YourFile.jpg"

Kill strTempImagePath
...If you saved the path to a variable named: strTempImagePath

If you get errors using"Kill", then you will have to use the windows scripting library to issue a Delete file command.
The new generation of project management tools

With’s project management tool, you can see what everyone on your team is working in a single glance. Its intuitive dashboards are customizable, so you can create systems that work for you.

jeff-hAuthor Commented:
Hi Jeff!  I'm saving the images to a share on our network as .tif files and writing the path to each .tif in a table.

How would I go about saving the scanned image to a local temp file, loading that into the Image1 control, and then if satisfied save it to the network share?

Thanks for your time,
jeff-hAuthor Commented:
OK, I'll do the kill thing, I've used it before.  Great idea!  I still can't get the image just scanned to load after saving though.  I don't work with images a whole lot.
Jeffrey CoachmanMIS LiasonCommented:
What does the code you posted do currently?
Jeffrey CoachmanMIS LiasonCommented:
I am sure another Expert can chime in with how to save an image to a disk file.
But, as for me, I use the utility I posted the link to:
jeff-hAuthor Commented:
Right now the code fires up the scanner, scans the image, and saves it as a .tif to a folder on the network.  I've gotten the KillFile procedure you suggested working.  All I have to do now is have the image load into the Image1 control after it is saved.
Jeffrey CoachmanMIS LiasonCommented:
Saddly Tif/tiff images cannot be displayed in a standard Access image control(s)
...Can you use the .jpg or .png formats instead?

Then the code would be something like this:

...or if you store the path as a variable:
jeff-hAuthor Commented:
Thanks for your help Jeff, you managed to get the wheels in my brain turning again.
Jeffrey CoachmanMIS LiasonCommented:
Jeffs helping Jeffs...
jeff-hAuthor Commented:
LOL, that made me think of organizing a big "JeffAid" concert to benefit hack developers like myself.  I want ZZ Top and Motorhead to headline.  Thanks again, it's been fun.
All Courses

From novice to tech pro — start learning today.