Hallo liebes Forum
Ich benötige eure Hilfe. In einer Access 2003 Datenbank wird beim Start ein Reg Wert umgeschrieben, mit folgendem Code.
Sub WriteRegistryDWORDValue_1()
Dim objWSHShell As Object
Set objWSHShell = CreateObject("WScript.Shell")
objWSHShell.RegWrite "HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\ActiveX Compatibility\{648A5600-2C6E-101B-82B6-000000000014}\Compatibility Flags", 0, "REG_DWORD"
Set objWSHShell = Nothing
End Sub
Auf dem XP Rechner läuft diese Anwendung Problemlos, unter Win7 wird beim Aufruf von diesem Befehl die Datenbank geschlosen mit der "Meldung VBA Code fehlerhaft"
Wie ermittel ich nun sicher auf welchen System die Datenbank geöffnet wird. XP oder Win7? um die Zeile entsprechend Anpassen zu können
Könnt ihr mir helfen?
Vielen Dank für eure Rückmeldung.
HI,
vielleicht hilft: http://www.office-loesung.de/ftopic525619_0_0_asc.php
Harald
Hallo hier mal ne kurzversion, ist älter, kann sein das es ab grösser Win 8.1 nicht mehr funktioniert
[color=blue]Declare Function[/color] GetVersion Lib "KERNEL32.DLL" () [color=blue]As Long[/color]
[color=blue]Type[/color] tl
l [color=blue]As Long[/color]
[color=blue]End Type[/color]
[color=blue]Type[/color] tb
ll [color=blue]As Byte[/color] [size=8pt][color=green]'Major Version[/color][/size]
lh [color=blue]As Byte[/color][size=8pt][color=green] 'Minor Version[/color][/size]
hl [color=blue]As Byte[/color] [size=8pt][color=green]'Build[/color][/size]
hh [color=blue]As Byte[/color]
[color=blue]End Type[/color]
[color=blue]Function[/color] DeineFunktion
....
[color=blue]Dim[/color] l [color=blue]As[/color] tl
[color=blue]Dim[/color] b [color=blue]As[/color] tb
l.l = GetVersion
[color=blue] LSet[/color] b = l
[color=blue]Select Case[/color] b.ll
[color=blue]Case[/color] 5
'dein Code für 'Windows XP
[color=blue]case[/color] 6
'Dein Code für Win Vista, Win7
[color=blue]end select[/color]
....
[color=blue]End function[/color]
oder du verwendest WMI zu bestimmung der Winversion
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery( _
"SELECT * FROM Win32_OperatingSystem",,48)
For Each objItem in colItems
Select Case Left(objItem.Version, 1)
case 5
case 6
end select
Next
Hallo
Danke an @bahasu und @daolix das ist was ich gesucht habe. Wo bei mir die kurz Version von @daolix im Moment völlig ausreicht.