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