win98、win2000就有自带的控件可以用来控制twain标准的扫描仪。
控件名:kodak 图像编辑控制——含2个控件:ImgEdit
                                       ImgAnnTool
      kodak 图像扫描控制——含1个控件: ImgScan设置ImgScan1的destimagecontrol属性为需要显示扫描图片的imgedit控件名
使用范例如下:
ImgScan1.OpenScanner
ImgScan1.Image = app.path+"1.bmp"
ImgScan1.FileType = BMP_Bitmap
ImgScan1.StartScan
ImgEdit
ImgScan1.CloseScanner有关twain标准的资料可以查询 www.twain.org

解决方案 »

  1.   

    谢谢你dyx(天火) 但是这种扫描没有直接将图片存在ACCESS数据库中呀如我要将扫描的图片文件通过“KODAK”的控件的时间直接写入数据库里某个表的一个OLE类型的字段里   请问这样样如何实现呀
      

  2.   

    '将数据存入数据库(Adodc1已经指一个数据库)
    Sub AppendImage()
       Dim ImageSize As Long
       Dim ChunkSize As Long
       Dim FileNum As Long
       Dim ImageBuffer() As Byte
       
       ChunkSize = 36660
       ImageSize = FileLen(FileName)
       
       If ImageSize < ChunkSize Then ChunkSize = ImageSize
       
       FileNum = FreeFile
       Open FileName For Binary Access Read As #FileNum
       Do While ImageSize > 0
          ReDim ImageBuffer(ChunkSize - 1)
          Get #FileNum, , ImageBuffer
          Adodc1.Recordset.Fields(1).AppendChunk ImageBuffer  'Fields(1)的类型是image/二进制
          ImageSize = ImageSize - ChunkSize
          If ImageSize < ChunkSize Then
             ChunkSize = ImageSize
          End If
       Loop
       Adodc1.Recordset.Update
    End Sub'从数据库里读出数据
    Sub Getimage()
       Dim ChunkSize As Long
       Dim ImageSize As Long
       Dim FName As String
       Dim FileNum As Long
       Dim ImageBuffer() As Byte
       Dim TempPath As String   TempPath = "C:\"
       ChunkSize = 36600
       
       ImageSize = Adodc1.Recordset.Fields(1).ActualSize
       
       If ImageSize <= 0 Then
          Picture1.Picture = LoadPicture("")
          Exit Sub
       End If
       If ImageSize < ChunkSize Then ChunkSize = ImageSize
       FileNum = FreeFile
       FName = "temp"
       
       If FName = Null Then Exit Sub
       Open TempPath & FName For Binary Access Write As #FileNum
       Do While ImageSize > 0
          ReDim ImageBuffer(ChunkSize - 1)
          ImageBuffer = Adodc1.Recordset.Fields(1).GetChunk(ChunkSize)
          Put #FileNum, , ImageBuffer
          ImageSize = ImageSize - ChunkSize
          If ImageSize < ChunkSize Then
             ChunkSize = ImageSize
          End If
       Loop
       Close #FileNum
       Picture1.Picture = LoadPicture(TempPath & FName)
    End Sub