Bonjour,
Jai un souci sous MS Access depuis bien longtemps et aujourdhui jai passé la journée à essayer de le régler, mais en vain !
Il sagit de la version 2002. Lorsquon a créé sa base il est possible de définir des paramètres de démarrage. Parmi ceux-ci on devrait pouvoir indiquer le chemin daccès à un icône qui sera celui de lapplication et des formulaires. Lorsque jindique un chemin absolu, cela fonctionne mais je perds cet icône lorsque de déplace ma base (cest normal). Par contre, ce qui nest pas normal cest que je narrive pas à indiquer de chemin relatif pour ensuite mettre licône dans le même répertoire que mon fichier mdb et retrouver mon icône sur mes formulaires.
Si quelquun sait ou je coince, je lui en serais très reconnaissant car je cherche depuis des heures et tout ce que je lis ne marche pas ! Presque tous disent quil suffit de mettre par exemple MonIcone.ico dans le chemin de fichier lorsque le fichier icône est dans le même répertoire que la base, mais ça ne marche pas !
Qui peut maider ? :??:
Quel que soit le chemin de ton icone, celle-ci ne peut apparaître qu’au niveau de l’interface de l’application mais pas sur tes autres formulaires ou tes états.Concernant le chemin, le mieux et de mettre cette icone dans le même répertoire que le fochier mdb de l’application
L’icône que je spécifie au niveau du menu démarrer apparait bel et bien sur mes formulaires…
Le problème est que le chemin spécidié est absolu donc lorsque le fichier mdb est déplacé il ne trouve plus l’icône bien qu’elle soit dans le même répertoire quele mdb.
Alors, personne ne peut m’aider?
Je suppose que beaucoup de gens ont éjà créé des applications avec Access et mis une icône pour leur application. Je n’ose penser que tout le mode perde son icône lorsque le fichier mdb est déplacé.
Si quelqu’un veut bien me dire comment faire pour solutionner mon problème, ça serait sympa.
Merci.
et si tu mets ton icone dans un repertoire qui ne bouge pas contrairement a ta base
(genre D:/monicone.ico
Option Compare Database
Function cmdAddProp_click()
'recup du repertoire de la base
Dim str
str = Application.CurrentDb.Name
If Right(str, 1) = "\" Then str = Left(str, Len(str) - 1)
For i = Len(str) To 1 Step -1
If Mid(str, i, 1) = "\" Then
Debug.Print "Fichier " & Right(str, Len(str) - i)
str = Left(str, i - 1)
Exit For
End If
Next i
'chemin de l'icone dans le repertoire de la base
icone = str + "/ico/monicone.ico"
'application de l'icone
Dim intX As Integer
Const DB_Text As Long = 10
intX = AddAppProperty("AppIcon", DB_Text, icone)
CurrentDb.Properties("UseAppIconForFrmRpt") = 1
Application.RefreshTitleBar
End Function
Function AddAppProperty(strName As String, _
varType As Variant, varValue As Variant) As Integer
Dim dbs As Object, prp As Variant
Const conPropNotFoundError = 3270
Set dbs = CurrentDb
On Error GoTo AddProp_Err
dbs.Properties(strName) = varValue
AddAppProperty = True
AddProp_Bye:
Exit Function
AddProp_Err:
If Err = conPropNotFoundError Then
Set prp = dbs.CreateProperty(strName, varType, varValue)
dbs.Properties.Append prp
Resume
Else
AddAppProperty = False
Resume AddProp_Bye
End If
End Function
et tu crée une macro autoexec qui execute le code cmdAddProp_click()
En fait l’application est amenée a bouger: installation sur un autre ordinateur que le mien, sans doute avec un setup. Donc, une fois déplacé, mon application doit trouver l’icône qui sera dans le même répertoire que la base.
Merci Cloch_hard pour ton code. Je l’ai mis dan un module mais ne sais pas vraiment comment l’utiliser. Alors j’utilise un autoexec qui appelle la fonction cmdAddProp_click(), mais celà génére une erreur: erreur de compilation: Variable ou procédure attendue, et non un module
Peux-tu encore m’aider pour utiliser ton code stp.
Merci.
Bonsoir
A quel endroit du code à lieu le surlignage indiquant l’erreur?
Lorsque la fonction s’execute j’ai le message d’erreur et le mot “Icone =” est surligné en bleu dans la ligne :
'chemin de l'icone dans le repertoire de la base
Icone = str + "/ico/monicone.ico"
tu as bien créer un répertoire ico avec l’icone dedans ??
sinon j’ai aucune idée, je viens de retester le code et je n’ai aucun problème…