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.
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:
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