更新查询类似于查找替换,并没有把新数据逐条加上去;
另外,如果格式一样,其实复制粘贴上去的,例如在Excel表里选择400行(注意,需要全部行选中,而不是区域),然后再打开Access表,右击最后一条(空记录),粘贴即可。
太简单了!1. 首先(如果有的话)将表中原来的自动编号字段,设置为数字,如果没有自动编号字段,跳过这一步。
2. 在表中新建一个字段,设置为只动编号。
3. 打开表,你就明白了,1~4000已经按顺序添加好了!
4. 然后再把这个自动编号字段设置为数字,OK!
三种VBA:方法一:在eccel VBA编辑器编写代码,使用FOR循环导入:
Sub 利用Excel的VBA将数据写入Access()
'定义ADODB 连接Access数据库
Dim Cnn As New ADODB.Connection
Dim Rs As New ADODB.Recordset
Dim strCon As String
Dim strFileName As String '数据库文件名
strFileName = InputBox("请输入文件路径及文件名:", "Excel传递数据至Access", "E:\ExcelTest\Staff.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" '假设表为Employee
'定义Excel表中的数据区域以写入Access
Dim Sht As Worksheet
Dim Rn As Long
Dim Cn As Long
Set Sht = ThisWorkbook.Sheets("Sheet1")
'假设将 Sheet1 表的 2-6行的1、2、3列写入Access表
For Rn = 2 To 6
Rs.AddNew
Rs!num = Sht.Cells(Rn, 1) ’num,name,department是数据库中指定表的字段
Rs!Name = Sht.Cells(Rn, 2)
Rs!department = Sht.Cells(Rn, 3)
Rs.Update
Next Rn
MsgBox "完成!"
Rs.Close
Cnn.Close
Set Rs = Nothing
Set Cnn = Nothing
Set Sht = Nothing
End sub
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)