我想将Excel中的数据插入Access mdb(这已经可以使用)以后我想用新信息更新mdb中的行

时间:2016-11-16 08:10:34

标签: sql excel vba excel-vba ms-access

我有一个包含四列的Excel文件,名为Feld1,Feld2,Feld3,Feld4。

Excel表格示例:
Excel table example

现在我想通过一个按钮将这些数据(只有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。

2 个答案:

答案 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和数据库,但这就是它的工作方式。