如何在EXCEL中,用VBA实现数据自动更新到ACCESS中

2024-11-01 12:49:19
推荐回答(2个)
回答1:

以下是我用了实现从Excel导数据进ACCESS的代码,你参考一下,应该就可以做出来了:(Excel和Access两个文件放一个文罩握件夹下)
Public Sub 客户正常供价批量维护()
If Cells(4, 6) = "" Then
MsgBox "请先选择需要维护价格的系统!", vbInformation
Cells(4, 6).Select
Exit Sub
Else

Dim i As Integer, j As Integer, k As Integer, sht As Worksheet 'i,j,k为整数变量;sht 为excel工作表对象变量,指向某一工作表
Dim cn As New ADODB.Connection '定义数据链接对象 ,保存连接数据库信息;请先添加ADO引用
Dim rs As New ADODB.Recordset '定义记录集对象,保存数据表
Dim strCn As String, strSQL As String '字符串变量
Dim mdbFile As String

On Error GoTo add_err

mdbFile = ActiveWorkbook.Path & "\DY_DATA.mdb"

strCn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & mdbFile '物蠢庆档链定义数据库链接字符串
cn.Open strCn '与数据库建立连接,如果成功,返回连接对象cn

Set rs = New ADODB.Recordset
rs.Open "dbl直营客户正常供价表", cn, adOpenKeyset, adLockOptimistic

k = Cells(4, 8) + 8
For i = 9 To k
If Cells(i, 7) = "" Then

Else
rs.AddNew
rs(1) = Cells(i, 2)
rs(2) = Cells(i, 7)
rs(3) = Cells(i, 8)

rs.Update
Cells(i, 7) = ""
Cells(i, 8) = ""

End If
Next
MsgBox "数据记录添加成功!", vbInformation
Cells(4, 6).Select
ActiveWorkbook.RefreshAll

add_exit:
Exit Sub
End If
add_err:
MsgBox Err() & vbCrLf & Error()
Resume add_exit
End Sub

回答2:

那就要用到引用单元格,引用单元格的方法是用函数或公式。

最简单的是直接腔旅引用,如工作表2的A1单元格要引用工作表1的A1单元格
可以在工作表2的A1单元格内输入
=工作表1!A1
这样,只要工作表1的A1单元格内的数据改变了,扮仔工作表2的A1单元格内的数据就会一起改伍缺凳变!

但,引用的时候会有一些复杂的引用方式,那就需要针对表格的情况而定了。