Forum Clubic

Problème d'icone dans MS Access - Icône perdu lorsque le .mdb est déplacé

Bonjour,
J’ai un souci sous MS Access depuis bien longtemps et aujourd’hui j’ai passé la journée à essayer de le régler, mais en vain !
Il s’agit de la version 2002. Lorsqu’on 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 d’accès à un icône qui sera celui de l’application et des formulaires. Lorsque j’indique un chemin absolu, cela fonctionne mais je perds cet icône lorsque de déplace ma base (c’est normal). Par contre, ce qui n’est pas normal c’est que je n’arrive pas à indiquer de chemin relatif pour ensuite mettre l’icône dans le même répertoire que mon fichier mdb et retrouver mon icône sur mes formulaires.
Si quelqu’un 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 qu’il 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 m’aider ? :??:

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…