2016-08-26 3 views
0

Microsoft Access에서 VBA를 사용하여 Wia로 이미지를 스캔하고 저장합니다.VBA로 셀 값 설정

저장된 이미지의 파일 경로를 현재 셀의 값으로 설정해야합니다.

어떻게해야할지 모르지만 Wia 사용법을 배우고 나면 쉬운 일로 보입니다.

다음은 문서를 스캔하는 현재 코드입니다.

Function scanImage() As String 
    Dim imagePath As String 
    Dim folder As String 
    folder = "C:\Users\username\Pictures\scans\" 
    Dim tempName, obj 
    Set obj = CreateObject("Scripting.FileSystemObject") 
    tempName = obj.GetTempName 
    Dim filename 
    filename = Now 
    filename = Replace(filename, ".", "_") 
    filename = Replace(filename, " ", "_") 
    filename = Replace(filename, ":", "_") 
    imagePath = folder & filename & ".jpg" 

    Dim dev As Device 
    Dim wiaDialog As New WIA.CommonDialog 
    Dim wiaImage As WIA.ImageFile 
    Set dev = wiaDialog.ShowSelectDevice 
    Set wiaImage = wiaDialog.ShowAcquireImage 
    wiaImage.SaveFile (imagePath) 
    scanImage = imagePath 

End Function 
+2

액세스에 '셀'이 없습니다. –

+0

글쎄, '셀'에 대해 설정된 값으로 데이터베이스 열을 만들 수 있습니다. 올바른 어휘 인 경우 '데이터베이스 항목'에 어떻게 액세스하고 조작합니까? :) – Tiaryn

+0

많은 것을 배워야합니다. 여기에 글을 쓸 정도는 아닙니다. 초보자 용 자습서를 찾아보고 예제 코드로 작업해야합니다. – Gustav

답변

1

의견에 의하면 - Access에는 셀이없고 활성 셀이 없습니다. 아래 방법 중 하나를 사용하여 데이터베이스에 레코드를 추가 할 수 있지만 해당 정보를 어떻게 다시 추출 할 계획입니까?

Excel에서는 예를 들어 A1 셀의 데이터를 요청하지만 데이터베이스에서는 일반적으로 동일한 레코드의 다른 필드가 다른 값과 같은 필드의 데이터를 요청합니다. '다른 값'을 직접 또는 데이터베이스 내의 다른 테이블을 참조).

예를 들어 데이터베이스에서 특정 날짜에 검색 한 모든 파일의 파일 경로를 요청하거나 파일을 식별 할 수있는 일종의 설명 필드가 있어야합니다.
SELECT FilePath FROM Table2 WHERE DescriptionField = 'MyPhoto'

어쨌든, 테이블에 새 레코드로 그 하나의 텍스트 문자열 (의 ImagePath)를 얻을 수있는 대답은 다음과 같습니다 : - 당신이 사용하는 경우

Sub InsertValueToTable() 

    Dim imagepath As String 

    imagepath = "<file path>" 

    'NB: The table name is 'Table2', the field (column) within the table is called 'FilePath'. 

    'One way to do it: 
    'DoCmd.RunSQL "INSERT INTO Table2(FilePath) VALUES ('" & imagepath & "')" 

    'Another way to do it: 
    Dim rst As dao.Recordset 
    Set rst = CurrentDb.OpenRecordset("Table2") 
    With rst 
     .AddNew 
     rst!FilePath = imagepath 
     .Update 
     .Close 
    End With 

    Set rst = Nothing 

End Sub 

참고
이 뭔가를 기록 할 것 데이터베이스의 Text 필드는 255 자로 제한됩니다.

+0

감사합니다! DAO는 내가 듣고 싶은 모든 것이 었습니다. 내가 봤는데 잘못 봤어 :) – Tiaryn