Een Sub directory openen

Status
Niet open voor verdere reacties.

Palmpje60

Gebruiker
Lid geworden
4 mei 2009
Berichten
103
Geachte mede accessers

Mijn vraag, kan ik via een knop direct een sub directory openen, ik kom er even niet uit.

Ik heb een directory genaamd DVD-films, en in een andere sub directory genaamd Covers.

Hier onder de code die ik nu heb:

Private Sub knpZoekAfbeelding_Click()

'Declare a variable as a FileDialog object.
Dim fd As FileDialog

'Create a FileDialog object as a File Picker dialog box.
Set fd = Application.FileDialog(msoFileDialogFilePicker)

'Declare a variable to contain the path
'of each selected item. Even though the path is a String,
'the variable must be a Variant because For Each...Next
'routines only work with Variants and Objects.
Dim vrtSelectedItem As Variant

'Use a With...End With block to reference the FileDialog object.
With fd

'Use the Show method to display the File Picker dialog box and return the user's action.
'The user pressed the action button.

If .Show = -1 Then

'Step through each string in the FileDialogSelectedItems collection.
For Each vrtSelectedItem In .SelectedItems

'vrtSelectedItem is a string that contains the path of each selected item.
'You can use any file I/O functions that you want to work with this path.
'This example simply displays the path in a message box.
Me.txtLocatie = vrtSelectedItem

Next vrtSelectedItem
'The user pressed Cancel.

Else

End If

End With

'Set the object variable to nothing.
Set fd = Nothing

Call Form_Current

End Sub

Als u mij kunt helpen graag, alvast bedankt voor de moeite en tijd.

Groet Palmpje60
 
Kun je de code opmaken met CODE tags? Dan wordt-ie wat leesbaarder. Kwestie van [/CODE] achter de code zetten en
Code:
 ervoor.
 
Kwestie van je berichtje openen met <Aanpassen> en de betreffende tags er voor en er achter typen. Of een kopietje uit bericht #2 gebruiken :).
 
Hallo OctaFish

Hoe doe ik dat, kan het nergens vinden?

Geachte mede accessers

Mijn vraag, kan ik via een knop direct een sub directory openen, ik kom er even niet uit.

Ik heb een directory genaamd DVD-films, en in een andere sub directory genaamd Covers.

Hier onder de code die ik nu heb:

Private Sub knpZoekAfbeelding_Click()

'Declare a variable as a FileDialog object.
Dim fd As FileDialog

'Create a FileDialog object as a File Picker dialog box.
Set fd = Application.FileDialog(msoFileDialogFilePicker)

'Declare a variable to contain the path
'of each selected item. Even though the path is a String,
'the variable must be a Variant because For Each...Next
'routines only work with Variants and Objects.
Dim vrtSelectedItem As Variant

'Use a With...End With block to reference the FileDialog object.
With fd

'Use the Show method to display the File Picker dialog box and return the user's action.
'The user pressed the action button.

If .Show = -1 Then

'Step through each string in the FileDialogSelectedItems collection.
For Each vrtSelectedItem In .SelectedItems

'vrtSelectedItem is a string that contains the path of each selected item.
'You can use any file I/O functions that you want to work with this path.
'This example simply displays the path in a message box.
Me.txtLocatie = vrtSelectedItem

Next vrtSelectedItem
'The user pressed Cancel.

Else

End If

End With

'Set the object variable to nothing.
Set fd = Nothing

Call Form_Current

End Sub

Als u mij kunt helpen graag, alvast bedankt voor de moeite en tijd.

Groet Palmpje60
 
Bijna; je hebt er nu een quote van gemaakt :D. De noodzakelijke code staat overigens in bericht #2. En ook hoe je 'm toepast :). Maar waarom pas je de eerste code niet aan? Van mij hoef je 'm niet te herhalen.
 
Ik heb je code even 'geschoond' (commentaar er uit, want dat hebben we niet nodig, en vooral: alle overbodige lege regels) en dan ziet hij er, met de CODE tags: zo uit:
Code:
Private Sub knpZoekAfbeelding_Click()
Dim fd As Office.FileDialog
Dim vrtSelectedItem As Variant

    Set fd = Application.FileDialog(msoFileDialogFilePicker)
    With fd
        .AllowMultiSelect = False
        If .Show = -1 Then
            For Each vrtSelectedItem In .SelectedItems
                Me.txtLocatie = vrtSelectedItem
            Next vrtSelectedItem
        End If
    End With
End Sub

De code werkt; dus daar ligt het niet aan. Maar wat is eigenlijk je vraag?
 
Dat ziet er tenminste netjes uit en ik ben ook benieuwd naar de eigenlijke vraag. Daarnaast, omdat AllowMultiSelect op False staat kan je volstaan met dit:
Code:
Private Sub knpZoekAfbeelding_Click()
    With Application.FileDialog(msoFileDialogFilePicker)
        .AllowMultiSelect = False
        If .Show = -1 Then Me.TxtLocatie = .SelectedItems(1)
    End With
End Sub
 
Laatst bewerkt:
We weten nog niet of TS wel degelijk meerdere bestanden tegelijk in een tekstvak wil zetten :). Ik hoop overigens van niet, want handig is dat bepaald niet in een database. Maar we wachten af....
 
Dat zal TS moeten beantwoorden inderdaad. Wat de vraag betreft verwacht ik dat hij een andere folder wil openen in plaats van de folder die standaard door die dialog wordt geopend. En dat kan met de optie .InitialFileName
We wachten af :)
 
Beste mensen,

Allereerst mijn welgemeende excuus voor de late reactie, maar er ging wat mis met mijn laptop.

Tja, mijn vraag, ik zal proberen om het zo duidelijk mogelijk te omschrijven.

Ik heb op mijn formulier een knopje, "covers zoeken", als ik daar op klik, krijg ik een soort Windows verkenner schermpje,
als die geopend is moet ik eerst mijn c-schijf opzoeken, daarna dubbelklikken, als ik dat gedaan heb, moet ik mijn directory
opzoeken waar mijn database staat, ook daar moet ik op dubbelklikken, en vervolgens moet ik op mijn subdirectory met de naam
covers dubbelklikken, en dan pas kan ik een cover kiezen die ik nodig heb.

Dus eigenlijk was mijn vraag, kan ik niet meteen naar de directory covers gaan, zonder al het bovenstaande te moeten
uitvoeren, nou is dat niet zo'n ramp, maar als het makkelijker kan, graag.

Ik hoop dat e.e.a. duidelijk is.

Groeten Palmpje60
 
Dat helpt :D. Je kunt met CurrentProject.Path de map van de database uitlezen. Daar zet je dan "\Covers" achter en je bent klaar, dan heb je het hele pad. Dat geheel zet je bij de eigenschap InitialFileName en je opent de juiste map.
 
Hallo OctaFish,

Bedankt voor je tip, ik zelf was er niet op gekomen, want de code had ik ergens vandaan.
Maar ik ga het morgen toepassen en kijken wat het doet.

Maar nogmaals mijn dank, ik ben er blij mee.

Groeten Palmpje60
 
Hallo OctaFish,

Sorry voor de late reactie. maar ik moest mijn laptop opnieuw installeren.

Je kunt met CurrentProject.Path de map van de database uitlezen. Daar zet je dan "\Covers" achter en je bent klaar, dan heb je het hele pad.

Waar zet ik deze regel?
 
Dan krijg je dit, even uitgaande van het uitgangspunt dat je één bestand wilt hebben:
Code:
Private Sub knpZoekAfbeelding_Click()
Dim fd As Office.FileDialog

    Set fd = Application.FileDialog(msoFileDialogFilePicker)
    With fd
        .CurrentProject.Path & "\Covers"
        .AllowMultiSelect = False
        If .Show = -1 Then Me.TxtLocatie = .SelectedItems(1)
        End If
    End With
End Sub
 
Hallo OctaFish,

Dankje voor het voorbeeld, ik ga er vanavond mee aan de slag.

Groet Palmpje60
 
Zou ik nog even niet doen, want er zit een stevig foutje in, er is een stukje verdwenen bij het kopiëren :). Neem deze maar:
Code:
    With fd
       [COLOR="#0000FF"] [B].InitialFileName = [/B][/COLOR]CurrentProject.Path & "\Covers"
        .AllowMultiSelect = False
        If .Show = -1 Then Me.TxtLocatie = .SelectedItems(1)
        End If
    End With
 
sorry dat ik even inbreek op deze topic
werkt deze code ook als je msoFileDialogFilePicker vervangt door msoFileDialogFolderPicker
als je alleen de map locatie nodig heb
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan