TAT关于修改了excel数据后vba同步到access中
不好意思,小白又来求指教了没学过数据库的小白,在操作access中问题好多,
这次需要做一个文件,要求是这样的,当点击了7列或者17列的单元格(激活了)并且是修改了其中一列的数据后,同步到相应的access中
思路有了,但是好像代码不对:rggrg,如果有大佬有这方面的指导文件,希望给一个,如果会的,也希望指导一下,谢谢了
Private Sub Worksheet_Change(ByVal Target As Range) '这里是当点击该单元格(定位)
Dim SQL As String
Dim sqltext(5)
If Target.Column = 7 Or Target.Column = 14 Then'其实我这里更想做的是,只是激活不更改数据的时候后面不操作,只有当更改7列或者9列的时候动
'定义ADODB 连接Access数据库
Dim cnn As New ADODB.Connection
Dim Rs As New ADODB.Recordset
Dim strCon As String
Dim strFileName As String '数据库文件名
strFileName = "E:\临时文件\培训管理.mdb"
'连接字符串,我这里是Access2010,所提供者参数为:Provider=Microsoft.ACE.OLEDB.12.0;
'如果此参数不能使用,根据自己的电脑修改这个字符串
'至于连接至的数据库名,根据自己的电脑修改,或用一个对话框或其他方式将此值传递进程序
strCon = "provider=Microsoft.jet.OLEDB.4.0;" _
& "Data Source=" & strFileName & ";"
cnn.Open strCon
Rs.ActiveConnection = cnn
Rs.LockType = adLockOptimistic
Rs.Open "培训记录" '假设表为Employee
sqltext(0) = Cells(Target.Row, 1): sqltext(1) = Cells(Target.Row, 2): sqltext(2) = Cells(Target.Row, 3): sqltext(3) = Cells(Target.Row, 4): sqltext(4) = Cells(Target.Row, 7): sqltext(5) = Cells(Target.Row, 14)
SQL = "SELECT 培训记录.日期, 培训记录.培训时间, 培训记录.培训主题, 培训记录.姓名 FROM 培训记录WHERE (((培训记录.日期) = sqltext(0)) And ((培训记录.培训时间) = sqltext(1)) And ((培训记录.培训主题) = sqltext(2)) And ((培训记录.姓名) = sqltext(3)))"
Rs.AddNew '这里我不知道哪里错了,:'(weeqw,因为运行之后,变成了在数据库最后增加了一条数据,而不是在原有的基础上修改
Rs!参加与否 = sqltext(4)
Rs!培训考评 = sqltext(5)
Rs.Update
MsgBox "数据已更新"
End If
Rs.Close
cnn.Close
Set Rs = Nothing
Set cnn = Nothing
Set sht = Nothing
End Sub
{:1_923:}没有大神回答么
页:
[1]