设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2187|回复: 1
打印 上一主题 下一主题

再请教两个问题。

[复制链接]
跳转到指定楼层
1#
发表于 2011-12-11 19:36:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
RT.我现在有两个问题。
问题一:请看以下的代码。
  1. Dim fso As Scripting.FileSystemObject
  2. Dim str_SaveFolderPath As String
  3. Dim str_合同名称 As String
  4. Dim str_施工单位 As String
  5. str_合同名称 = Nz(Forms!项目各类信息汇总.合同名称.Value)
  6. str_施工单位 = Nz(Forms!项目各类信息汇总.施工单位.Value)
  7. Set fso = New Scripting.FileSystemObject
  8. If Len(Dir(CurrentProject.Path & "" & "协力项目填写" & str_合同名称 & "_" & str_施工单位)) > 0 Then
  9. Me.txt_SavePath = CurrentProject.Path & "" & "协力项目填写" & str_合同名称 & "_" & str_施工单位
  10. Else
  11. On Error Resume Next
  12. fso.CreateFolder CurrentProject.Path & "" & "协力项目填写" & str_合同名称 & "_" & str_施工单位
  13. Me.txt_SavePath = CurrentProject.Path & "" & "协力项目填写" & str_合同名称 & "_" & str_施工单位
  14. End If

  15. If Me.txt_SavePath <> "" Then
  16. Me.cmd_安全抵押金与合同情况表.Enabled = True
  17. Me.cmd_安全技术交底书.Enabled = True
  18. Me.cmd_外协人员导出.Enabled = True
  19. Me.cmd_危险源辨识表.Enabled = True
  20. Me.cmd_许可证申请表等.Enabled = True
  21. Me.cmd_综治维稳协议.Enabled = True
  22. End If
复制代码
关键在以下这段代码:
On Error Resume Next
fso.CreateFolder CurrentProject.Path & "\" & "协力项目填写\" & str_合同名称 & "_" & str_施工单位
Me.txt_SavePath = CurrentProject.Path & "\" & "协力项目填写\" & str_合同名称 & "_" & str_施工单位
由于我设置了跳过错误,所以运行时没有问题。如果没有的话,他会显示文件夹已经创建。我已经用ELSE语句了。为什么创建了之后他还会读这段代码呢?

问题2:
关于前后台的问题。我在拆分ACCESS之后,为什么ADO还是有效的呢?
例如:
  1. Dim rst As ADODB.Recordset
  2. Set rst = New ADODB.Recordset
  3. rst.Open "测试", CurrentProject.Connection, adOpenDynamic, adLockOptimistic
  4. rst.AddNew
  5. rst!姓名 = Me.txt_姓名.Value
  6. rst!班级 = Me.txt_班级.Value
  7. rst.Update
  8. rst.Close
复制代码
在我想来,在拆分后,currentproject.connection应该改为后台所在数据库的地址了吧?所以我对这个connection有点搞不懂了。
能不能请楼主解释以下这个connection?
还有在使用前后台时还应该注意什么么?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2011-12-11 21:22:44 | 只看该作者
1、On Error Resume Next应当放在If前面。其实最好的办法应该是这样:
  1. Sub test()
  2. Dim fso As New FileSystemObject
  3. If fso.FolderExists(CurrentProject.Path & "\New Folder") = True Then
  4. Kill CurrentProject.Path & "\New Folder"
  5. Else
  6. fso.CreateFolder CurrentProject.Path & "\New Folder"
  7. End If
  8. End Sub
复制代码
2、拆分跟ADO没关系。CurrentProject.Connection指的是当前数据库的所有数据连接,当然包括链接表形式的了。除非链接失效或者无权访问后台,否则ADO或者DAO都是可以和数据建立起数据连接的。
这也是为什么我们经常需要在后台数据库里设置密码的原因(不知道密码ADO当然也连接不到了),——虽然这是防君子不防小人的做法,但在一定程度上还是保证了数据库的安全性。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-27 14:05 , Processed in 0.103142 second(s), 25 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表