张素禄 发表于:2016-02-04 08:51:28
Option Compare Database
'------------------------------------------------------------
' 宏2
'
'------------------------------------------------------------
Function 宏2()
On Error GoTo 宏2_Err
DoCmd.OutputTo acOutputTable, "居民出行调查个人表", "ExcelWorkbook(*.xlsx)", "", False, "", , acExportQualityPrint
宏2_Exit:
Exit Function
宏2_Err:
MsgBox Error$
Resume 宏2_Exit
End Function
这段代码是利用ACCESS自带的宏转换后的VBA代码,是在一个打开的ACCESS文件中操作的,现在想在一个文件夹中遍历好几百个结构相同的ACCESS文件导出其中的好几百个EXCEL,跪求这段代码的FOR 循环怎么写,
好几百个上结构相同的文件是否存在规律,导出为一张EXCEL表还是好几百个EXCEL表
导出一张EXCEL,文件名可以按规律命名
合并的代码内容看过了吗,先用那种方法合并起来然后导出就行了
代码可以运行,但是得不到合并结果,就是说原来的文件没有变化,这5个数据库里的表没有进行合并。,我想还是尝试一下遍历多个ACCESS文件导出多个EXCEL吧。。。
看看这个效果
改一下路径
另一个答案
加了个直接将五个表导出的窗体
嗯嗯,现在可以了。。但是搞不懂为何合并MDB不成功呢
把你的合并代码让我看看
Sub 合并()
DoCmd.SetWarnings False
i = 1
For i = 1 To 5
DoCmd.RunSQL "insert into [;database=C:\Users\Administrator\Desktop\BBB\A.mdb].居民出行调查个人表 select * from [;database=C:\Users\Administrator\Desktop\BBB\" & ("A" & i) & ".mdb].居民出行调查个人表 "
Next i
DoCmd.SetWarnings True
MsgBox "ok", vbOKOnly, "提示"
End Sub
就是有A1、A2、A3、A4、A5这5个数据库文件,每个ACCESS里面都有居民出行调查个人表这个表格,现在把这5个数据库里面的5张表格合并到同一文件夹里面的A数据库里面的居民出行调查个人表,就是总共有6个MDB文件。代码可以运行,但是并不进行合并操作,文件还是和原来一样
i = 1
For i = 1 To 5
DoCmd.RunSQL "insert into [;database=C:\Users\Administrator\Desktop\BBB\A.mdb].居民出行调查个人表 (个人编码) select * from [;database=C:\Users\Administrator\Desktop\BBB\" & ("A" & i) & ".mdb].居民出行调查个人表 "
Next i
DoCmd.SetWarnings True
MsgBox "ok", vbOKOnly, "提示"
End Sub
红字是你贪污的
点击下载此附件
还是这样啊,不能得到合并结果。。。我也不懂为啥
再看这个吧
发了个图能看到啥????
用我的可表能执行吗?
换成你的表就无法运行的,问题还是出在表中,将DoCmd.SetWarnings False 、 DoCmd.SetWarnings TRUE 两句注释掉,就能看出问题了
慢慢寻找问题吧
开始我也碰到,被我处理掉了才可以进行合并的
已经把个人表都合并完了。。。但是在合并个人出行表的时候出现了“
Microsoft Office Access 不能在追加查询中追加所有记录
Microsoft Office Access 设置1字段为Null是因为类型转换失败,它未将0记录添加到表是因为键值冲突,没有添加0记录是因为锁定冲突,没有添加0记录是因为有效性规则冲突。
是否执行动作查询?
如要忽略错误并执行查询,请单击“是””的提示,就不能继续合下去了。。。。
单个ACCESS文件中有个人表、个人出行表和家庭表三个表,个人表主键是个人编码;出行表主键是出行编码,出行表中也有个人编码这个字段,删除掉出行表中数据时候,在个人编码这一列会自动出现一个0.而且删不掉。。。。这个合并太难了啊
是将主键不设为主键 ,不能删
将工具栏的小钥匙按一下就行了,主键就不是主键了
单这一项处理了还不行,还会出现Microsoft Office Access 设置1字段为Null是因为类型转换失败,它未将0记录添加到表是因为键值冲突,没有添加0记录是因为锁定冲突,没有添加0记录是因为有效性规则冲突。是否执行动作查询?这个提示的 。 慢慢琢磨吧
反正个人表已合并完成,继续将另两个完成吧,离大功告成会越来越近的!!!!!!
已经大功告成了。。。
For I = 1 To 207
DoCmd.RunSQL "insert into [;database=C:\Users\Administrator\Desktop\a.Mdb].新表 select 居民出行调查个人出行表.*, 居民出行调查个人表.* from [;database=C:\Users\Administrator\Desktop\555\" & ("A" & I) & ".Mdb].居民出行调查个人表 INNER JOIN [;database=C:\Users\Administrator\Desktop\555\" & ("A" & I) & ".Mdb].居民出行调查个人出行表 ON [;database=C:\Users\Administrator\Desktop\555\" & ("A" & I) & ".Mdb].居民出行调查个人表.个人编码 = [;database=C:\Users\Administrator\Desktop\555\" & ("A" & I) & ".Mdb].居民出行调查个人出行表.个人编码 "
Next
End Sub
这个代码是要实现每个数据库内的个人表和出行表合并生成新的表,但是运行时候说是语法错误,说”[;database=C:\Users\Administrator\Desktop\555\" & ("A" & I) & ".Mdb].居民出行调查个人表.个人编码“是无效的括号名称。。。我操作单个数据库的时候可以合并啊,批量合并的时候就不行了。。。
恭喜
朱先生祝你过年快乐!!!!
总记录:19篇 页次:1/1 9 1 :