首先,我是vba编码的新手。我在Access 2013中编写了一个表单 - VBA并创建了一个按钮单击生成PDF / txt文档的函数,老板希望它保存在位于%userprofile%
路径上的共享文件夹上 - 就像{ {1}}我们有很多用户。
如何添加到我正在使用的SaveAs2的路径而无需对每个用户进行硬编码?
代码就像:
C:\Users\<username>\folder
我尝试定义代码如下:
file.SaveAs2 = ("C:\Users\username\folder\filename.pdf")
然后:
Dim filepath as string
filepath = environ("USERPROFILE")
但仍未成功。
感谢您的帮助
答案 0 :(得分:0)
听起来你正试图返回已登录用户的用户名吗?
添加模块,插入此代码:
Option Compare Database
Declare Function wu_GetUserName Lib "advapi32" Alias "GetUserNameA" _
(ByVal lpBuffer As String, nSize As Long) As Long
Function NetworkUser() As String
Dim lngStringLength As Long
Dim sString As String * 255
lngStringLength = Len(sString)
sString = String$(lngStringLength, 0)
If wu_GetUserName(sString, lngStringLength) Then
NetworkUser = Left$(sString, InStr(sString, Chr(0)) - 1)
Else
NetworkUser = "Unknown"
End If
End Function
然后,如果您想要返回网络用户,请尝试以下操作:
filepath = = "C:\Users\" & networkuser() & "\folder\filename.pdf"
如果您想要退回“我的文档”。文件夹,您可以使用类似于您在上面尝试的内容。这包含在一个函数中。
Public Function MyDocsPath() As String
MyDocsPath = Environ$("USERPROFILE") & "\My Documents"
End Function
然后打电话。
filepath = MyDocsPath & \filename.pdf")