【发布时间】:2020-11-20 04:06:16
【问题描述】:
感谢 basodre,我设法让 Excell 为我的 Excellsheet 中的每个数据提取行添加一个超链接。 下一步是在单击特定行后面的超链接后在 Access 中保存文本“已确认数据”。 例如,有 10 行末尾带有“单击以确认”的超链接。一旦第8行数据正确,必须点击第8行的“点击确认”。点击后,应保存“数据确认”以访问第8行。
我目前有以下代码,但一旦单击超链接,它仍然不会在我的访问文件中保存“数据确认”。有什么想法吗?
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
'Confirm that this is a hyperlink in column 3
If Not Intersect(Target.Range, Columns(16)) Is Nothing Then
MsgBox SaveData(Target.Range)
End If
End Sub
Private Function SaveData(rng As Range) As Boolean
Dim cnDB As New ADODB.Connection
VsDBPath = ThisWorkbook.Sheets("Settings").Range("B2").Value
cnDB.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & "Data Source=" & VsDBPath & ";" & "Jet OLEDB:Engine Type=5;" & "Persist Security Info=False;"
cnDB.Execute "INSERT INTO NewPO (Confirmation) VALUES ('Data confirmed')"
cnDB.Close
SaveData = True
End Function
【问题讨论】:
-
您要插入新记录,其中包含单个字段值为“数据已确认”?还是要更新 Access 表中的现有记录?
-
这些列已经在 Access 中,并且列“确认”一开始是空的。我们不希望通过最后的超链接“单击以确认”向人们显示当前数据。单击该按钮后,必须将文本“已确认数据”插入访问(针对该特定行),以便我们知道哪些数据已确认,哪些未确认。
-
所以你的意思是记录已经存在并且你想要更新特定记录的字段。那将是一个 UPDATE,而不是 INSERT,动作 SQL。
-
好吧,列在那里,但一开始它是空的(所以每一行都有一个超链接来确认数据)。当有人单击超链接时,该列应填满文本“数据已确认”。所以不确定它是更新还是插入,因为您将文本“数据确认”插入到列中
-
如果记录不存在则为 INSERT,如果记录存在则为 UPDATE。你的情况是哪一种?如果您的意思是“列已在 Access 中”,除了“确认”之外的每一列中都有包含数据的记录,并且您现在想要将数据添加到“确认”,那么您正在更新记录。