使用 VBA 设置单元格值

Set cell value with VBA

我使用 VBA 在 Microsoft Access 中使用 Wia 扫描和保存图像。

保存图像的文件路径应设置为当前单元格的值。

我不知道该怎么做,但在学习了如何使用 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

正如评论所说 - Access 中没有单元格,而且绝对没有活动单元格。 您可以使用以下任一方法将记录添加到数据库,但您打算如何再次提取该信息?

例如,在 Excel 中,您只需请求单元格 A1 中的数据,但在数据库中,您通常会请求一个或多个字段中的数据,其中同一记录上的另一个字段等于其他字段值(通过直接提供 'other value' 或通过引用数据库中的其他 table)。

因此,例如,在您的数据库中,您会要求提供在特定日期扫描的所有文件的文件路径,或者使用某种描述字段来标识该文件。
这将被写成这样:
SELECT FilePath FROM Table2 WHERE DescriptionField = 'MyPhoto'

无论如何,将单个文本字符串(图像路径)放入 table 中的新记录的答案是:

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 个字符。