Ms access 打开任何桌面VBA访问的文件路径,我需要设置路径,以便它可以在任何桌面上打开

Ms access 打开任何桌面VBA访问的文件路径,我需要设置路径,以便它可以在任何桌面上打开,ms-access,vba,Ms Access,Vba,我需要设置路径,以便它可以在任何桌面上打开 这是我目前掌握的代码: 将myOlApp设置为Outlook.Application 将myitem设置为Outlook.MailItem 作为整数的Dim n 设置myOlApp=CreateObject(“Outlook.Application”) 设置myitem=myOlApp.CreateItemFromTemplate(“C:\Users\User\documents\Template.msg”) 使用myitem 对于n=0到Me.Ema

我需要设置路径,以便它可以在任何桌面上打开

这是我目前掌握的代码:

将myOlApp设置为Outlook.Application
将myitem设置为Outlook.MailItem
作为整数的Dim n
设置myOlApp=CreateObject(“Outlook.Application”)
设置myitem=myOlApp.CreateItemFromTemplate(“C:\Users\User\documents\Template.msg”)
使用myitem
对于n=0到Me.EmailList.ListCount-1
.Attachments.Add(Me.EmailList.ItemData(n))
下一个
myitem.Subject=Nz(“”)
myitem.To=Nz(Me.txtCustomerEmailAddress1)
myitem.Display

由于您将问题标记为access vba,我假设您是从ms access内部发送电子邮件。我还假设您指的是Template.msg的路径。如果是这样,您可以将Template.msg存储到MS Access中的表中(作为二进制数据),然后在发送电子邮件之前将其保存到磁盘。您的代码类似于:

Set myOlApp = CreateObject("Outlook.Application")
...
dim filesPath as String
filesPath = Environ$("USERPROFILE") ' this will return the current user's folder 
Call writeTemplate(filesPath) ' this will write Template.msg from table to a file in filesPath path
Set myitem = myOlApp.CreateItemFromTemplate(filesPath & "\Template.msg")

在“writeTemplate()”方法中,您只需将Template.msg保存到磁盘的目录filepath中。

在执行此类操作时,我强烈建议您使用VBA的environ()函数,该函数将根据用户和/或机器返回上下文路径。您可以在调试窗口中尝试以下操作:

environ("username")
environ("userdomain")
可以通过environ()检索所有环境变量


可以在任何桌面世界/公司/网络范围内找到并打开一些有关environ()的有趣代码?公司或网络会很有帮助,谢谢Hanks chrisl08。我已经将Dim sUsername声明为字符串,但是我得到的“编译错误”子函数或函数没有在下面的行中定义。调用writeTemplate(文件路径)。“是的,你是对的,我在access中的表单上有一个按钮,它在documents文件夹中拾取模板。你得到的是哪一行“Sub或function not Defined”?@Neilster如果你指的是writeTemplate()方法,我将它留给你实现:-)。这里有一个例子:谢谢你,我想我终于把它整理好了。谢谢你的帮助。(-总是乐于助人。那么你能考虑把我的答案标记为正确吗?谢谢:)