[email protected]
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: Verschiedenes / Sonstiges   |   VB-Versionen: VB.NET18.08.08
Access-Version aus der Registry auslesen

Diese Funktion ermittelt anhand der Windows-Registry die installierte Access-Version und gibt die entsprechenden Infos zurück.

Autor:   Heinz PrelleBewertung:  Views:  15.405 
www.visual-basic5.deSystem:  Win2k, WinXP, Vista, Win7, Win8, Win10 Beispielprojekt auf CD 

Diese Funktion ermittelt anhand der Windows-Registry die installierte Access-Version und gibt die entsprechenden Infos zurück.

Imports Microsoft.Win32
Imports System.Text
''' <summary>
''' Access-Informationen aus der Registrierdatenbank ermitteln
''' </summary>
''' <param name="VersionsNumber">Rückgabe: Die extrahierte Versionsnummer</param>
''' <param name="VersionsString">Rückgabe: Die ermittelte Access Version</param>
''' <returns>Der ermittelte Wert des Eintragsnamens</returns>
Private Function GetMSAccessInformation(ByRef VersionsNumber As Integer, _
  ByRef VersionsString As String) As String
 
  ' Ergebnisvariable zur Aufname des Eintragswertes
  Dim Result As String = String.Empty
 
  ' Schlüssel in der Registrierdatenbank oeffnen
  Using rk As RegistryKey = _
    Registry.ClassesRoot.OpenSubKey("Access.Application\CurVer", False)
    ' Konnte der Pfad geöffnet werden...
    If rk IsNot Nothing Then
      ' ... wird der Wert ausgelesen und an die Variable Result übergeben.
      Result = CType(rk.GetValue(""), String)
      ' Zur Übergabe an die Variable VersionsNumber wird der Wert aus der 
      ' Variable Result extrahiert...
      VersionsNumber = CType(Result.Substring( _
        Result.LastIndexOf(".") + 1), Integer)
      ' ...und zur Übergabe and die Variable VersionsString ausgewertet.
      Select Case VersionsNumber
        Case 8
          VersionsString = "Microsoft Access 97"
        Case 9
          VersionsString = "Microsoft Access 2000"
        Case 10
          VersionsString = "Microsoft Access 2002 / XP"
        Case 11
          VersionsString = "Microsoft Access 2003"
        Case 12
          VersionsString = "Microsoft Access 2007"
        Case Else
          VersionsString = "Unbekannt"
      End Select
    Else
      ' Konnte der Pfad in der Registrierdatenbank nicht ausgewertet werden 
      ' wird dieString-Variable Result mit "Fehler" initialisiert.
      Result = "Fehler"
    End If
  End Using
  Return Result
End Function

Beispiel für den Aufruf:

' Übernimmt die Versionsnummer
Dim VersionsNumber As Integer = -1
 
' Übernimmt die Access-Versions
Dim VersionsString As String = String.Empty
 
' Result übernimmt den aus der Registriedatenbank 
' ermittelten(Eintragswert)
Dim Result As String = GetMSAccessInformation( _
  VersionsNumber, VersionsString)
 
' Beinhaltet das Ergebnis den Wert Fehler...
If Result.Equals("Fehler") Then
  '...wird ein Hinweis ausgegeben, dass die Informationen 
  ' nicht ermittelt werden konnten...
  MessageBox.Show("Informationen konnten nicht ermittelt werden.", "Info")
Else
  ' ...ansonsten werden die einzelnen Variablen-Werte an einen 
  ' StringBuilder übergeben und zusammengesetzt.
  Dim sb As StringBuilder = New StringBuilder
  With sb
    .Append("n/" & Result)
    .Append("n/" & CType(VersionsNumber, String))
    .Append("n/" & VersionsString)
    .Replace("n/", System.Environment.NewLine())
  End With
  MessageBox.Show(sb.ToString(), "Info")
End If



Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen [email protected]  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren [email protected]!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
 
Copyright ©2000-2022 [email protected] Dieter OtterAlle Rechte vorbehalten.


Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.