gpt4 book ai didi

ms-access - 如何从 VBA 中的文件对话框对象中获取单个文件名(对于 MS Access 2007)?

转载 作者:行者123 更新时间:2023-12-02 23:32:03 28 4
gpt4 key购买 nike

如何更改代码以获取文件名而不是目录名? openDialog.InitialFilename 给我目录名称。
openDialog.FileName 给我错误“找不到方法或数据成员”。

Private Sub btnEditPhoto_Click()
If (txtImageName > "") Then

Application.FollowHyperlink txtImageName

Else
Dim openDialog As Office.FileDialog

Set openDialog = Application.FileDialog(msoFileDialogFilePicker)

openDialog.Filters.Clear
openDialog.Filters.Add "JPEG Files", "*.jpg"

Dim pickedFile As Boolean
pickedFile = openDialog.Show

If pickedFile Then
txtImageName.SetFocus
txtImageName.Text = openDialog.InitialFileName
End If

End If

End Sub

最佳答案

你想要:

OpenDialog.SelectedItems.Item(1)

代替:

OpenDialog.InitialFileName

因为您不允许多选。

<小时/>

所以:

''Reference Microsoft Office x.x Object Library
Dim openDialog As Office.FileDialog

Set openDialog = Application.FileDialog(msoFileDialogFilePicker)
openDialog.Filters.Clear
openDialog.Filters.Add "JPEG Files", "*.jpg"

If openDialog.Show Then
''SelectedItems is not zero based

''Do not use .Text property in MS Access except
''in special cases, then you will not have to set focus
''txtImageName.SetFocus

txtImageName = openDialog.SelectedItems(1)
End If

如果使用AllowMultiSelect,则需要迭代SelectedItems

''Reference Microsoft Office x.x Object Library
Dim openDialog As Office.FileDialog
Dim i As Integer

Set openDialog = Application.FileDialog(msoFileDialogFilePicker)
'Use ctl or shift + click to select more than one file
openDialog.AllowMultiSelect = True
openDialog.Filters.Clear
openDialog.Filters.Add "JPEG Files", "*.jpg"

If openDialog.Show Then
For i = 1 To openDialog.SelectedItems.Count
Imagelst = Imagelst & ";" & openDialog.SelectedItems(i)
Next
End If

关于ms-access - 如何从 VBA 中的文件对话框对象中获取单个文件名(对于 MS Access 2007)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2158675/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com