• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Voor gevorderden

Status
Niet open voor verdere reacties.

Jarodxxx

Gebruiker
Lid geworden
26 nov 2006
Berichten
243
Onderstaande gebruik ik (door Wigi) achter een excelblad inclusief een query. werkt prima. Zoals je kunt zien staat hier c:\temp als 'rootfolder'. In het register wordt dit ook al vast gelegd (zie 2e deel code). Ik wil graag dat hij de waarde pakt uit het register, alleen hoe ik dat doe is mij een ?, iemand die dit 'zo' weet?

Als ik nu een andere rootfolder in het register vastlegt hoef ik in onderstaande code niet c:\temp aan te passen naar nieuwe locatie van de bestanden.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)

On Error Resume Next
Application.ScreenUpdating = False
 Sheets("BHV").Unprotect "PLIEGER"
  Sheets("Medewerkersregister").Unprotect "PLIEGER"
   Sheets("Ongevallen Register").Unprotect "PLIEGER"
    Sheets("Registratie stoffen").Unprotect "PLIEGER"
    zoekwaarde = Target.Value
    If Target.Address = ("$C$6") Then
        If zoekwaarde = "" Then zoekwaarde = -1
        With Sheets("BHV").Range("A22").QueryTable
            .Connection = _
            "ODBC;DSN=Excel Files;DBQ=C:\Temp\BHVTotaal dec2006.xls;DefaultDir=C:\Temp\;DriverId=790;MaxBufferSize=2048;PageTimeout=5;"
            .CommandText = Array( _
            "SELECT `test2$`.`Branche plant`, `test2$`.Vestiging, `test2$`.Naam, `test2$`.`Laatste herhaling`" & Chr(13) & "" & Chr(10) & "FROM `C:\Temp\BHVTotaal dec2006`.`test2$` `test2$`" & Chr(13) & "" & Chr(10) & "WHERE (`test2$`.`Branche plant`=" & zoekwaarde & ")" & Chr(13) & "" & Chr(10) & "ORDER BY `test2$`.`Branche plant`" _
            )
            .Refresh BackgroundQuery:=False
        End With
   End If
    Target.Select
    On Error GoTo 0
   End If
  End If
 End If
End If
Application.ScreenUpdating = True

End Sub

de locatie van bestanden, die ingevuld wordt in txbRootfolder wordt vastgelegd in het register van windows via een menu Rootfolder en wel op deze wijze:

Code:
Private Sub CommandButtonOpslaan_Click()

If txbRootfolder = Empty Then

        MsgBox ("Vul een Rootfolder in!"), Title:="Rootfolder invullen"

    Else

'Plaats eerst een popup schermpje om te vragen of de wijziging dient te worden uitgevoerd'
response = MsgBox("Als u op Yes klikt wordt de locatie van de database bestanden gewijzigd! Weet u dit zeker?", vbYesNo, Title:="Rootfolder wijzigen")
'is het antwoord nee verlaat dan het scherm'
    If response = vbNo Then

Exit Sub
    
    Application.ScreenUpdating = True

    End If
 
  CreateObject("Word.Application").System.Profilestring("Mappen", "Hoofdmap") = txbRootfolder.Value

        MsgBox ("Rootfolder is gewijzigd!"), Title:="Rootfolder wijziging!"

CommandButtonOpslaan.Enabled = False

End If

End Sub
 
Ontwikkeling 1

Ik wilde dit bovenin plaatsen en dan c:\Temp vervangen door TCOR\

Code:
Set TCOR = Workbooks.Open(Filename:=CreateObject("Word.Application").System.Profilestring("Mappen", "Hoofdmap") & "Medewerkersregister.xls")
    Sheets("Medewerkersregister").Activate

Probleempje: "dit werkt wel voor wegschrijven van gegevens, hij opent nu alleen het bestand:o en dat moet niet, voor zover ik na een avond stappen kan overzien."
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan