2016-08-26 10 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

関連する問題