Vba Word Automation-现在抱怨“自动化”;“正在使用的文件”;通过';锁定以进行编辑;另一个用户';

Vba Word Automation-现在抱怨“自动化”;“正在使用的文件”;通过';锁定以进行编辑;另一个用户';,vba,ms-word,ms-access-2010,office-automation,Vba,Ms Word,Ms Access 2010,Office Automation,我有一个MsAccess表单,它使用Word automation创建患者临床信函 由于某种原因,它突然停止了工作 相反,Word会在access应用程序后面弹出一个对话框(通过ALT选项卡找到): 基本上自动化是这样工作的 从数据库列表中选择现有信函(例如当前患者的上一封信函) 检查它是否存在于信件目录中(因为数据库中只有该位置) 以新名称将信函复制到草稿目录: FNAME,Lastname(URN)-username为DOCUMENTID创建用户名-YYYY-MM-DD.doc 用Word

我有一个MsAccess表单,它使用Word automation创建患者临床信函

由于某种原因,它突然停止了工作

相反,Word会在access应用程序后面弹出一个对话框(通过ALT选项卡找到):

基本上自动化是这样工作的

  • 从数据库列表中选择现有信函(例如当前患者的上一封信函)
  • 检查它是否存在于信件目录中(因为数据库中只有该位置)
  • 以新名称将信函复制到草稿目录:

    FNAME,Lastname(URN)-username为DOCUMENTID创建用户名-YYYY-MM-DD.doc

  • 用Word打开文档

  • 将日期替换为当前日期,将签名替换为“usernamefor”签名
  • 将Word置于前台,准备进行修改
  • 现在,通过上面的对话框,它将在(4.)之后停止


    如果您选择:

    (x) 创建本地副本,稍后合并更改

    大约4-10秒后,它检测到原件可用,我们可以继续等

    想法

    如何检测谁/什么/如何访问文件


    此后,我在\share驱动器上运行Process Monitor并对事件进行筛选。我已转储WINWORD.EXE的以下详细信息,这些信息可能与失败的打开相关:

     CreateFile SHARING VIOLATION   Desired Access: Generic Read/Write, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, AllocationSize: n/a
     CreateFile SHARING VIOLATION   Desired Access: Generic Read/Write, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Open No Recall, Attributes: N, ShareMode: Read, AllocationSize: n/a
     CreateFile SUCCESS           Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, Delete, AllocationSize: n/a, OpenResult: Opened
    
    在命令提示符下

    openfiles /local on
    
    重新启动

    openfiles /query
    

    没有帮助,因为仅显示ACCESS、EXPLORER和WINWORD打开文件。我现在有了rug PROCESS MONITOR(来自Microsoft SystemInternals)实用程序来过滤该文件中的内容。结果如下。期待您的帖子。发布您的代码时,access不应打开该文件。应用程序还可以使用CreateFile指定是否要共享该文件以进行读取、写入或两者都不共享。这称为共享模式。未共享的打开文件在其句柄关闭之前,无法由打开该文件的应用程序或其他应用程序再次打开。当进程尝试打开已在共享模式下打开的文件时,系统会将请求的访问和共享模式与打开该文件时指定的访问和共享模式进行比较。如果指定的访问模式与上一次打开调用中指定的共享模式冲突,则CreateFile将因共享冲突(错误\u共享\u冲突)而失败。如果指定的共享模式与上一次打开调用中指定的访问模式冲突,则CreateFile将因共享冲突而失败。