我有一个包含四列的Excel文件,名为Feld1,Feld2,Feld3,Feld4。
现在我想通过一个按钮将这些数据(只有Feld1,Feld2Feld3)发送到Access mdb,我可以使用以下代码:
Private Sub CommandButton1_Click()
Dim objRS As Object
Set objRS = CreateObject("ADODB.Recordset")
objRS.Open "INSERT INTO Tabelle1 SELECT Feld1,Feld2,Feld3 FROM [Tabelle1$] IN '" & ThisWorkbook.FullName & "' 'Excel 8.0;'", _
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & "c:\ExcelToAccess.mdb"
Set objRS = Nothing
End Sub
到目前为止,这没有任何问题。
现在,我想在稍后用UPDATE sql添加“Feld4”列中的信息(想想“Feld4”稍后输入数据),但不幸的是我不知道语法等等,我只是无法让它发挥作用。
基本上UPDATE sql看起来在哪里Feld1 + Feld2匹配在一起,然后在同一行更新Feld4。
答案 0 :(得分:0)
以下查询是基于以下事实:当Feld1 = Feld2时,Feld4取得Feld3的值。
update Tabelle1 set Feld4 = Feld3 where Feld1=Feld2;
希望这有帮助!
答案 1 :(得分:0)
好的,谢谢你们的投入。通过这些输入,我找到了一种方法来做我想要的。为了更容易,我首先定义变量,我也找到了编写语法的正确方法; - )
这就是我提出的:
Private Sub CommandButton2_Click()
Dim objRS As Object
Set objRS = CreateObject("ADODB.Recordset")
Dim Feld1 As Long
Dim Feld2 As Long
Dim Feld3 As Long
Dim Feld4 As String
Feld4 = Worksheets("Tabelle1").Cells(3, "D").Value
MsgBox Feld4
Feld1 = Worksheets("Tabelle1").Cells(3, "A").Value
Feld2 = Worksheets("Tabelle1").Cells(3, "B").Value
objRS.Open "UPDATE Tabelle1 SET Feld4=""" & Feld4 & """ WHERE Feld1=""" & Feld1 & """ AND Feld2=""" & Feld2 & """", _
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & "C:\Users\icean\Google Drive\MyDocuments\AWA\ExcelToAccess.mdb"
Set objRS = Nothing
End Sub
当然,这只是一个“概念证明”。我将在明天修改真正的Excel和数据库,但这就是它的工作方式。