gpt4 book ai didi

excel - 更新 MS - 通过 MS-Excel 单元格 Access 字段

转载 作者:行者123 更新时间:2023-12-02 15:45:31 25 4
gpt4 key购买 nike

假设我有一个 Excel 工作簿和一个 Access 表,它们不一定具有相似的结构(即它们的列数可能不同)。

当我打开工作簿时,Excel 工作表中的行将由 Access 表中的行填充(从 Access 表复制到使用宏指定的 Excel 工作表的特定单元格范围中)。

然后我修改 Excel 工作表中的某些单元格。

Excel 工作表中还有一个名为“保存”的按钮。当按下时,这将执行一个宏。

我的问题:单击“保存”按钮时如何更新 Access 表以反射(reflect) Excel 工作表中的更改?

最佳答案

您可以使用 ADO 和一些代码。

这里有一些注释。

假设您得到一些数据,如下所示:

Sub GetMDB()
Dim cn As Object
Dim rs As Object

strFile = "C:\Docs\DBFrom.mdb"
strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strFile & ";"

Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")

cn.Open strCon

strSQL = "SELECT * FROM Table1"
rs.Open strSQL, cn

With Worksheets(7)
For i = 0 To rs.Fields.Count - 1
.Cells(1, i + 1) = rs.Fields(i).Name
Next

rs.MoveFirst
.Cells(2, 1).CopyFromRecordset rs
End With
End Sub

您可以使用 ADO 更新数据,如下所示:

Sub UpdateMDB()
Dim cn As Object
Dim rs As Object

''It wuld probably be better to use the proper name, but this is
''convenient for notes
strFile = Workbooks(1).FullName

''Note HDR=Yes, so you can use the names in the first row of the set
''to refer to columns
strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strFile _
& ";Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"";"

Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")

cn.Open strCon

''Selecting the cell that are different
strSQL = "SELECT * FROM [Sheet7$] s " _
& "INNER JOIN [;Database=c:\Docs\DBFrom.mdb;].Table1 t " _
& "ON s.id=t.id " _
& "WHERE s.Field1<>t.Field1"

rs.Open strSQL, cn, 1, 3 ''adOpenKeyset, adLockOptimistic

''Just to see
''If Not rs.EOF Then MsgBox rs.GetString

''Editing one by one (slow)
rs.MoveFirst
Do While Not rs.EOF
rs.Fields("t.Field1") = rs.Fields("s.Field1")
rs.Update
rs.MoveNext
Loop

''Batch update (faster)
strSQL = "UPDATE [;Database=c:\Docs\DBFrom.mdb;].Table1 t " _
& "INNER JOIN [Sheet7$] s " _
& "ON s.id=t.id " _
& "SET t.Field1=s.Field1 " _
& "WHERE s.Field1<>t.Field1 "

cn.Execute strSQL

End Sub

关于excel - 更新 MS - 通过 MS-Excel 单元格 Access 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2764560/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com