Hoi
Genoeg geklooid
ik kom er niet uit en vraag ik dus maar weer eens om hulp.
Ik wil gegevens uit een tekst bestand met INI opmaak uitlezen op basis van een op te geven projectnummer en dit in de velden van een beveiligd formulier plaatsen.
De gebruiker kan daarna de gegevens aanpassen en verder aanvullen. Hoeft niet meer terug in de INI.
Gebruikers beginnen met dit bestand als DOT. Scheelt werk en fouten als men bij de start van het document alvast bekende gegevens kunnen opvragen.
Ik heb een formulier wat perfect werkt, maar de gebruiker moet dan exact het juist project nummer opgeven. Daar wil ik een nu een keuze uit een directory voor maken.
De directory kiezen via Function BrowseForFolder heb ik voor elkaar. Maar hoe kan ik de folder naam als STRING opslaan om deze weer te gebruiken bij het uitlezen van het INI bestand? Bij alle wat ik probeer komt de directorynaam van het Word document naar voren en niet van de gekozen map.
De mappenopbouw is vast en ziet er zo uit:

In de bijlage het testbestandje.
Wie heeft een oplossing?
B.v.d.
Vibor
Genoeg geklooid

Ik wil gegevens uit een tekst bestand met INI opmaak uitlezen op basis van een op te geven projectnummer en dit in de velden van een beveiligd formulier plaatsen.
De gebruiker kan daarna de gegevens aanpassen en verder aanvullen. Hoeft niet meer terug in de INI.
Gebruikers beginnen met dit bestand als DOT. Scheelt werk en fouten als men bij de start van het document alvast bekende gegevens kunnen opvragen.
Ik heb een formulier wat perfect werkt, maar de gebruiker moet dan exact het juist project nummer opgeven. Daar wil ik een nu een keuze uit een directory voor maken.
De directory kiezen via Function BrowseForFolder heb ik voor elkaar. Maar hoe kan ik de folder naam als STRING opslaan om deze weer te gebruiken bij het uitlezen van het INI bestand? Bij alle wat ik probeer komt de directorynaam van het Word document naar voren en niet van de gekozen map.
Code:
Private Sub CommandButton1_Click()
' Inlezen van klantgegevens
Dim projectnummer As String
Dim bedrijfsnaam As String
Dim bedrijfsadres As String
Dim bedrijfsplaats As String
Dim Ret As String
Dim pjnr As String
'~~> Specify your start folder here
Ret = BrowseForFolder("D:\Projecten")
'HIER MOET EEN CODE KOMEN OM HET PROJECTNUMMER UIT DE GEKOZEN DIRECTORY TE KIEZEN en als string 'pjnr'op te slaan
projectnummer = System.PrivateProfileString("D:\Projecten\" & pjnr & "\AA" & pjnr & ".INI", "PROJECT", "projectnummer")
ActiveDocument.FormFields("bNummer").Result = projectnummer
bedrijfsnaam = System.PrivateProfileString("D:\Projecten\" & pjnr & "\AA" & pjnr & ".kg", "PROJECT", "naam")
ActiveDocument.FormFields("bNaam").Result = bedrijfsnaam
bedrijfsadres = System.PrivateProfileString("D:\Projecten\" & pjnr & "\AA" & pjnr & ".kg", "PROJECT", "adres")
ActiveDocument.FormFields("bAdres").Result = bedrijfsadres
bedrijfsplaats = System.PrivateProfileString("D:\Projecten\" & pjnr & "\AA" & pjnr & ".kg", "PROJECT", "plaats")
ActiveDocument.FormFields("bPlaats").Result = bedrijfsplaats
End Sub
Function BrowseForFolder(Optional OpenAt As Variant) As Variant
'Function BrowseForFolder(Optional OpenAt As Variant) As Variant
'Function purpose: To Browser for a user selected folder.
'If the "OpenAt" path is provided, open the browser at that directory
'NOTE: If invalid, it will open at the Desktop level
Dim ShellApp As Object
'Create a file browser window at the default folder
Set ShellApp = CreateObject("Shell.Application"). _
BrowseForFolder(0, "Kies de gewenste Pebbles-map", 0, OpenAt)
'Set the folder to that selected. (On error in case cancelled)
On Error Resume Next
BrowseForFolder = ShellApp.self.Path
On Error GoTo 0
'Destroy the Shell Application
Set ShellApp = Nothing
'Check for invalid or non-entries and send to the Invalid error
'handler if found
'Valid selections can begin L: (where L is a letter) or
'\\ (as in \\servername\sharename. All others are invalid
Select Case Mid(BrowseForFolder, 2, 1)
Case Is = ":"
If Left(BrowseForFolder, 1) = ":" Then GoTo Invalid
Case Is = "\"
If Not Left(BrowseForFolder, 1) = "\" Then GoTo Invalid
Case Else
GoTo Invalid
End Select
Invalid:
'If it was determined that the selection was invalid, set to False
BrowseForFolder = False
End Function
De mappenopbouw is vast en ziet er zo uit:

In de bijlage het testbestandje.
Wie heeft een oplossing?
B.v.d.
Vibor