Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MS Access 2010-如何将输入文本框绑定到基于用户输入打开MS Word文件的VBA命令?_Vba_Ms Access_Events_Ms Word_Ms Access 2010 - Fatal编程技术网

MS Access 2010-如何将输入文本框绑定到基于用户输入打开MS Word文件的VBA命令?

MS Access 2010-如何将输入文本框绑定到基于用户输入打开MS Word文件的VBA命令?,vba,ms-access,events,ms-word,ms-access-2010,Vba,Ms Access,Events,Ms Word,Ms Access 2010,到目前为止,我已经编写了一段代码,当单击表单上的按钮时,它将打开一个特定的文件。但是,用户需要能够选择和打开大量的文件。为了简单起见,我希望他们能够通过简单地键入文件名并单击一个按钮来打开Word文件。上面示例中的文件名仅为12229709.docx,但还有其他类似的文件,例如12172029、12124057。。。都在同一个地方。我希望有一个文本框,用户可以在其中输入号码,按钮将检查特定文件夹中的文件名,其中包含该号码,而无需添加.docx(如果可能)。我该怎么做呢 编辑-我忘了提到我无法显示

到目前为止,我已经编写了一段代码,当单击表单上的按钮时,它将打开一个特定的文件。但是,用户需要能够选择和打开大量的文件。为了简单起见,我希望他们能够通过简单地键入文件名并单击一个按钮来打开Word文件。上面示例中的文件名仅为12229709.docx,但还有其他类似的文件,例如12172029、12124057。。。都在同一个地方。我希望有一个文本框,用户可以在其中输入号码,按钮将检查特定文件夹中的文件名,其中包含该号码,而无需添加.docx(如果可能)。我该怎么做呢

编辑-我忘了提到我无法显示文件路径或使用文件对话框允许用户选择文件,因为将选择文件的用户没有访问此网络部分的权限

试试这个

Option Compare Database

Function Openword(conPath As String)
Dim appword As Word.Application
Dim doc As Word.Document

On Error Resume Next
Error.Clear
Set appword = GetObject(, "word.application")
If Err.Number <> 0 Then
Set appword = New Word.Application
appword.Visible = True
End If
Set doc = appword.Documents.Open(conPath, , True)
appword.Activate

Set doc = Nothing
Set appword = Nothing




End Function

Private Sub Command5_Click()
Dim mydoc As String
mydoc = "J:\3 - Client Services\1-Programs\12229709.docx"
Call Openword(mydoc)
End Sub

不确定这是否是您正在寻找的,但我希望它能有所帮助。

我不知道您为什么要让用户键入文件名,而您只需打开一个文件对话框,让他们单击正确的文件即可。 只需在表单上放置一个命令按钮,并包含一个行应用程序。FollowHyperlink加上此函数名。计算机文件关联可以处理其余的部分

Dim MyValue as Variant
MyValue = Inputbox("Enter File Name")
Dim MyDoc as String
MyDoc = "J:\3 - Client Services\1-Programs\" & MyValue & ".docx"
Call OpenWord(MyDoc)

这正是我想要的。不过,我自己做了更多的研究,发现有两种方法可以按照您的建议进行连接-使用+和使用&。你认为我应该使用哪个?我实际上不知道你可以使用+来连接,因此我一直使用&。我不允许弹出文件对话框,因为需要选择文件的人不允许访问网络的该部分。我可能应该说明一下,我道歉。哇!那是一口。听起来好像有人需要重新设计网络设计。你最好希望每个人都能拼写!您仍然可以执行Application.FollowHyperlink部分,因为Windows应该知道使用什么应用程序打开文档和docx文件。
Sub Command()

Application.FollowHyperlink FileName()

End Sub

Public Function FileName() As String

Dim f As Object

' Must have object reference set to a MS Office Object Library for this to work.

Set f = Application.FileDialog(msoFileDialogFilePicker)

With f
    .AllowMultiSelect = False
    If .Show = -1 Then
        FileName = .SelectedItems(1)
    End If
End With

FileName = Nz(FileName, "")

End Function