Programmer une Référence dans MS ACCESS
Un Perdu
-
Un Perdu -
Un Perdu -
Bonjour à vous tous,
J'ai créer une base de donnés qui à pour but de Fonctionner sur plusieurs version de Microsoft Access mais j'ai la Référence Microsoft Excel 14.0 object librairy qui fonctionne parfaitement sur MS Office 2010. Cependant, que j'ouvre la Base de donnés sur MS office 2007, la Macro ne fonctionne pas sans que je retourne dans les Références pour aller cocher Microsoft Excel 12.0 object librairy...
Y a-t-il un moyen de programmer une ligne en VBA pour que la sélection de librairie se fasse automatiquement??
J'ai créer une base de donnés qui à pour but de Fonctionner sur plusieurs version de Microsoft Access mais j'ai la Référence Microsoft Excel 14.0 object librairy qui fonctionne parfaitement sur MS Office 2010. Cependant, que j'ouvre la Base de donnés sur MS office 2007, la Macro ne fonctionne pas sans que je retourne dans les Références pour aller cocher Microsoft Excel 12.0 object librairy...
Y a-t-il un moyen de programmer une ligne en VBA pour que la sélection de librairie se fasse automatiquement??
A voir également:
- Programmer une Référence dans MS ACCESS
- Programmer sms - Guide
- Programmer mail gmail - Guide
- Excel la référence n'est pas valide - Forum Excel
- Exemple base de données access à télécharger gratuit - Forum Access
- Indice de référence des loyers - Guide
1 réponse
Bonjour,
Oui c'est possible, je l'ai fait sous Excel,
ça ressemble à ceci :
cette bibliothèque te permettra de balayer les références
existante et ajouter celle que tu veux. Enfin sous Excel
c'est avec cette bibliothèque VBComponents que j'ai pu
manipuler ces objets les références.
Voici la méthode qui effectue une lecture des références présentes :
c'est sans aucun doute une bonne piste de départ :-)
Cdt
Lupin
Oui c'est possible, je l'ai fait sous Excel,
ça ressemble à ceci :
Option Explicit
'
Public Function PresenceExtension() As Boolean
' Vérification de la présence d'une librairie
Const StdModule = "vbext_ct_StdModule"
Dim Chemin As String, Texte As String
On Error Resume Next
PresenceExtension = False
With ThisWorkbook.VBProject.VBComponents
'vbext_ct_StdModule provoque un erreur si
'VBA Extensibility 5.3 n'est pas installée..
.Add(vbext_ct_StdModule).Name = "TestVBA"
If (Err <> 0) Then
Texte = "Bibliothèque manquante" & vbCrLf
Texte = Texte & "Cette application va tenter d'installer la bibliothèque manquante."
MsgBox "Bibliothèque manquante" & vbCrLf
'Installe la bibliothèque manquante
Chemin = Application.Path
Chemin = Mid(Chemin, 1, 1)
Chemin = Chemin & ":\Program Files\Fichiers communs\Microsoft Shared\VBA\VBA6\VBE6EXT.OLB"
.Parent.References.AddFromFile Chemin
PresenceExtension = True
MsgBox "Opération d'ajout réussi."
Else
.Remove .Item("TestVBA")
PresenceExtension = True
End If
End With
End Function
'
cette bibliothèque te permettra de balayer les références
existante et ajouter celle que tu veux. Enfin sous Excel
c'est avec cette bibliothèque VBComponents que j'ai pu
manipuler ces objets les références.
Voici la méthode qui effectue une lecture des références présentes :
Function ScanListeReferences()
Dim Ref As Reference
Dim Message As String
Dim Feuille As String
Dim Compteur As Long
On Error Resume Next
Application.ScreenUpdating = False
Feuille = ActiveSheet.Name
Sheets("ListeReferencesDLL").Select
Message = ""
Cells.Clear
Range("A1").Select
Compteur = 2
With ActiveSheet
.Rows(1).Font.Bold = True
.Rows(1).Font.Size = 9
.Range("A1:C1").Value = Array("RÉFÉRENCES", "TYPE", "CHEMIN D'ACCÈS")
For Each Ref In ActiveWorkbook.VBProject.References
ActiveCell.Offset(Compteur, 0).Value = Ref.Name
ActiveCell.Offset(Compteur, 1).Value = Ref.Type
ActiveCell.Offset(Compteur, 2).Value = Ref.FullPath
Compteur = (Compteur + 1)
Message = Message & Ref.Name & vbCrLf
Next Ref
.Range("A1").CurrentRegion.Columns.AutoFit
End With
Columns("B:B").HorizontalAlignment = xlCenter
Range("A1").Select
Sheets(Feuille).Select
Application.ScreenUpdating = True
Message = "Voir la feuille ListeReferencesDLL"
MsgBox FINAL & vbCrLf & vbCrLf & Message
End Function
'
c'est sans aucun doute une bonne piste de départ :-)
Cdt
Lupin
Un Perdu
Merci, Je vais Tester cela au courant de la journée!