Tester la version du mdac installé

Soyez le premier à donner votre avis sur cette source.

Snippet vu 20 377 fois - Téléchargée 29 fois


Contenu du snippet

reste à définir le mdac que vous utilisez

Const V_MDAC As String = "2.8"

puis

Call testMdacVersion

Source / Exemple :


Private Function testMdacVersion()
Dim sMessage As String
Dim rapport  As Boolean
Dim cnTest   As Object ' New ADODB.Connection

  rapport = False
  
  On Error Resume Next
  sMessage = "Microsoft Data Access Components Version Check"
  Set cnTest = CreateObject("ADODB.Connection")
  
  If Err.Number <> 0 Then
    MsgBox "Microsoft Data Access Components n'est pas installé.", vbExclamation, sMessage
    
  ElseIf cnTest.Version < V_MDAC Then
    MsgBox "Votre version de Microsoft Data Access Components version est " & cnTest.Version & "." & _
            vbCrLf & "Vous devez la mettre à jour (version " & V_MDAC & "+)", vbOKOnly, sMessage
  Else
    rapport = True
  End If
  
  If cnTest.State = 1 Then cnTest.Close
  Set cnTest = Nothing
  
  testMdacVersion = rapport
  
End Function

Conclusion :


voici un code qui m'a été demandé...
si ça peut aider quelqu'un d'autre...

A voir également

Ajouter un commentaire

Commentaires

Messages postés
15
Date d'inscription
vendredi 11 avril 2003
Statut
Membre
Dernière intervention
9 août 2007

La version du MDAC peut aussi être directement extraite du registre.

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DataAccess]
"FullInstallVer"="2.53.6301.0"
Messages postés
809
Date d'inscription
mercredi 11 octobre 2000
Statut
Membre
Dernière intervention
29 septembre 2010
6
vi c'est comme ça que je fais mais ça gonfle la taille du fichier setup pour rien... notament quand tu installes des soft sur un poste qui a son mdac à jour ... donc mon idée était de tester la version du MDAC et si besoin est télécharger et installer mise à jour sur le poste (par le code bien sur)
Messages postés
196
Date d'inscription
jeudi 15 juillet 2004
Statut
Membre
Dernière intervention
14 avril 2009

Pour conclure, j'aborderais le problème d'une manière plus courante. Car, à tout point de vue, il est plus sûr et plus judicieux d'incorporer le fichier MDAC_typ.exe à un exécutable de déploiement (setup).
Cette approche plus professionnelle suppose aussi l'installation éventuelle de DCOM95 ou 98 sur le poste client.
Naturellement, dans le cadre de macrocommandes VBA l'autre choix s'impose.

Cordialement,
Messages postés
809
Date d'inscription
mercredi 11 octobre 2000
Statut
Membre
Dernière intervention
29 septembre 2010
6
thx, j'adapte ça pour access et j'ajoute au pack !
Messages postés
196
Date d'inscription
jeudi 15 juillet 2004
Statut
Membre
Dernière intervention
14 avril 2009

Voici les méthodes de base pour SQL Server extraites d'un ancien programme. Je n'en suis pas l'auteur (adaptation).

Public Sub getAttributes()
'Lecture de la base de registres
Dim hKey As Long
Dim regValue As String
Dim valueType As Long

'Pilote SQL Server
If RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\ODBC\ODBCINST.INI\SQL server", 0, KEY_ALL_ACCESS, hKey) = 0 Then
regValue = String$(1024, 0)
If RegQueryValueEx(hKey, "Driver", 0, valueType, regValue, Len(regValue)) = 0 Then
If valueType = REG_SZ Then
'Récupère l'emplacement de la dll
RegVal(0) = Left$(regValue, InStr(regValue, vbNullChar) - 1)
'Récupère le n° de version du pilote SQL Server
RegVal(0) = GetFileVersion(RegVal(0))
End If
End If
RegCloseKey hKey
End If
End sub

Private Function GetFileVersion(ByVal strFullPath As String) As String
Dim vffi As VS_FIXEDFILEINFO
Dim nDataLen As Long
Dim pData As Long
Dim buffer() As Byte
Dim RetVal As Long

'Numéro de version du pilote SQL Server (dll)
nDataLen = GetFileVersionInfoSize(strFullPath, pData)
'Si l'exécutable est en 32 bits
If nDataLen <> 0 Then
ReDim buffer(0 To nDataLen - 1) As Byte
'Récupère l'information de version
RetVal = GetFileVersionInfo(strFullPath, 0, nDataLen, buffer(0))
'Retourne un pointeur sur la structure de données
RetVal = VerQueryValue(buffer(0), "", pData, nDataLen)
'Copie celle-ci dans la strucure de données pour y accéder.
CopyMemory vffi, ByVal pData, nDataLen
'Retourne le n° de version du pilote
GetFileVersion = Trim(Str(HIWORD(vffi.dwFileVersionMS))) & "." & _
Trim(Str(LOWORD(vffi.dwFileVersionMS))) & "." & _
Trim(Str(HIWORD(vffi.dwFileVersionLS))) & "." & _
Trim(Str(LOWORD(vffi.dwFileVersionLS)))
End If
End Function

Private Function HIWORD(ByVal dwValue As Long) As Long
Dim hexstr As String
hexstr = Right("00000000" & Hex(dwValue), 8)
HIWORD = CLng("&H" & Left(hexstr, 4))
End Function

Private Function LOWORD(ByVal dwValue As Long) As Long
Dim hexstr As String
hexstr = Right("00000000" & Hex(dwValue), 8)
LOWORD = CLng("&H" & Right(hexstr, 4))
End Function
Afficher les 13 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.