2010-01-28 5 views
5

디렉터리 이름 대신 파일 이름을 가져 오도록 내 코드를 변경하려면 어떻게해야합니까? openDialog.InitialFilename은 나에게 디렉터리 이름을 알려줍니다.
openDialog.FileName은 "메서드 또는 데이터 멤버를 찾을 수 없습니다"라는 오류 메시지를 표시합니다.VBA (MS Access 2007)의 파일 대화 상자 개체에서 단일 파일 이름을 어떻게 가져 옵니까?

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 
+0

답변을 통합하기 위해 질문을 편집하는 것이 혼란 스럽습니다. 그 시점에서 코드는 도움을 요청하는 것입니다. –

답변

11

당신이 원하는 :

OpenDialog.SelectedItems.Item(1) 

대신에 : 당신은 다중 선택을 허용하지 않은 것처럼

OpenDialog.InitialFileName 

.


그래서 : 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 
+0

고마워요! 이제 그 일. –

1

을 반복 할 필요가

''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 

...이 내가 무슨 짓을 ... 괜찮 았어.

' Get the File 
'---------------------------------------------------------- 
Dim dialog As Object 
Dim pickedfile As Boolean 
Dim myfile As String 
Set dialog = Application.FileDialog(msoFileDialogFilePicker) 
With dialog 
    .AllowMultiSelect = False 
    .Title = "Please pick the file to convert." 
    .Filters.Clear 
    .Filters.Add "Text Files", "*.TXT" 
    .Filters.Add "All Files", "*.*" 
    pickedfile = False 
    pickedfile = .Show 
    If pickedfile Then 
    myfile = .SelectedItems.Item(1) 
    End If 
End With 
'---------------------------------------------------------- 

또한 ... 당신과 함께 ...

Set dialog = Application.FileDialog(msoFileDialogOpen) 

대화 유형을 대체 할 수 있으며 동일하게했다.

0
Private Sub Command135_Click() 

Dim dialog As Object 
Dim pickedfile As Boolean 
Dim myfile As String 
Set dialog = Application.FileDialog(1) 
With dialog 
    .AllowMultiSelect = False 
    .Title = "Please pick the file to convert." 
    .Filters.Clear 
    .Filters.Add "Picture Files", "*.Jpg" 
    .Filters.Add "All Files", "*.*" 
    pickedfile = False 
    pickedfile = .Show 
    If pickedfile Then 
    myfile = .SelectedItems.Item(1) 
    End If 
End With 

Me.Form.Picture = myfile 
End Sub 


Command_135=Button Name 
Me.Form.Picture = "The Control Name" 
+0

다른 사람에게 도움이되도록 게시 한 코드에 대한 간단한 설명을 제공하십시오. – Rakesh

관련 문제