Excel n’est pas une base de données

Dans beaucoup d’entreprises on rencontre ces hydres Excel, savants bricolages pompeusement décris par leurs auteurs comme « base de données Excel ».

Voici un comparatif SGBDR vs. Excel pour vous convaincre définitivement qu’Excel, même dévoyer, ne peut être assimilé à ce type de produit.

Comparatif Excel et SGBDR

Après lecture du comparatif précédent, ceux qui persévéreront dans cette Appellation d’Origine Trompeuse pour l’utilisateur, le client et pour eux-mêmes, pourront rejoindre la longue cohorte des « tartineurs » de cocktail-dinatoires.

Mamia Kolektiboa

MAMIA est un collectif de 4 consultants locaux :

– Ellande Larzabal /Baiona, 10 ans d’expérience. Ingénieur programmateur Excel VBA-Access-Sql-M-Dax.

– Matiu Bordato / Hazparne, Ingénieur en mécanique, consultant en digitalisation, développeur Excel et formateur en bureautique Microsoft Office.

– Pierre Bastres / Senpere, 15 ans d’expérience en gestion de production et direction d’entreprise : consultant Lean orienté processus et analyse de données. Black belt lean six sigma.

– Ramuntxo Ithurry / Zuraide, 22 ans d’expérience en direction de services industriels et Lean, coach d’équipe et de dirigeants, formateur et conférencier.

désireux d’apporter leur expérience aux PME et TPE du territoire :

Œuvrant à la confluence de l’amélioration continue et de l’informatique, nous proposons une palette complète de solutions informatiques sobres et orientées métiers, d’outils d’automatisation des tâches administratives et d’accompagnement des équipes et des dirigeants.

Notre priorité étant de toujours coller davantage à la réalité des entreprises locales, nous avons décidé d’aller vers elles, et plus particulièrement vers celles qui n’ont pas le temps ou la culture de faire appel à un appui extérieur.

https://mamia.eus

SWISS QR-Code et MS ACCESS

Le 30 septembre 2022 le système bancaire Suisse adopte définitivement le moyen de paiement des factures par QR-Code. Beaucoup de PME et TPE qui sont équipées d’un logiciel de facturation sous Microsoft Access sont confrontées au problème d’intégration d’une solution pour répondre à cette nouvelle obligation.

La solution existe et elle peut être intégrée rapidement à votre application de facturation Microsoft Access.

Voici l’exemple d’une édition d’un rapport Microsoft Access contenant le Swiss QR-Code.

Exemple d’une édition SWISS QR-Code répondant à la norme

Aucune description alternative pour cette image

Formater une adresse postale

Voici un petit code qui permet de formater une adresse postal. Il est à insérer en dessous des lignes d’options (Option Compare…) d’un module standard (pas dans le formulaire) :

Valeur saisie : 115, impasse de la petite reine
Valeur formatée : 115, Impasse de la Petite Reine

Const particules= " de ; du ; d'; des ; l'; la ; le ; les ; en " 
'rajouter les mots en minuscule à ne pas mettre en majuscule 

Public Function formatAdresse(strAdresse As Variant) As String 
Dim strA As String 
Dim arrParticules() As String 
Dim i As Long 

If IsNull(strAdresse) Then Exit Function 
'si c'est null on ne traite pas 
If strAdresse = "" Then Exit Function 
'si c'est vide on ne traite pas 

arrParticules = Split(particules, ";") 
'toutes les premieres lettres en majuscule 
strA = StrConv(strAdresse, vbProperCase) 
For i = 0 To UBound(arrParticules) 
    strA = Replace(strA, arrParticules(i), LCase(arrParticules(i))) 
    'supprime la majuscule 
Next 
formatAdresse = strA 

End Function

On renseigne la constante avec les mots que l’on ne veut pas mettre en majuscule.
1) le strconv() met toutes les 1ère lettre de chaque mot en majuscule.
2) la boucle For remplace les mots trouvés qui correspondent à ceux de la constante.

L’appel de la fonction

Sélectionner la zone de texte de l’adresse que j’ai nommé Adresse, l’évènement Après MAJ et mettre ceci :

Private Sub Adresse_AfterUpdate()     
    Me.Adresse.Value = formatAdresse(Me.Adresse.Value) 
End Sub

« Adresse » est le nom de la zone de texte. Elle doit être remplacée par le nom de celle que vous souhaitez traiter.

MS ACCESS et persistance (2)

Après avoir parlé, dans un billet précédent, de la persistance dans un fichier ini, nous allons poursuivre sur la technique de la base de registre.

Écrire dans la base de registre apporte, contrairement au fichier ini, un semblant de sécurité. En effet il est moins aisé de retrouver une valeur parmi les milliers existantes dans la base de registre que de consulter un fichier ini. La destination n’est donc pas la même.

Quels sont les moyens à notre disposition ?

Grâce à la bibliothèque Windows Script Host que l’on retrouve dans les références sous le nom de Microsoft Scripting Runtime on peut invoquer différentes commandes de gestion de la base de registre.

Déclaration

La déclaration de cette bibliothèque peut se faire en early ou late binding (cf Early ou LateBinding). C’est la deuxième méthode que nous allons utiliser ici.

Le modèle est toujours le même, déclaration, instanciation, utilisation, libération.

Dim wsh As Object 
Set wsh = CreateObject("WScript.Shell") 
... instructions 
Set wsh = Nothing

Lecture

Pour la lecture on utilise l’instruction RegRead en précisant le chemin de la clef à lire.

Chemin = wsh.RegRead("HKEY_CURRENT_USER\Software\Microsoft\Office\" & _ 
         Val(SysCmd(acSysCmdAccessVer)) & ".0\Access\Security\" & _ 
         "Trusted Locations\mon application\Path"

En retour la fonction renvoi le contenu de la clef. Dans cet exemple on interroge la base de registre pour connaître l’emplacement approuvé pour « mon application ».

Ecriture

De la même manière on peut écrire une valeur ou créer une clef à l’aide de l’instruction RegWrite.

wsh.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Office\" & _ 
      Val(SysCmd(acSysCmdAccessVer)) & ".0\Access\Security\" & _ 
      "Trusted Locations\" & vNameProduit & "\Path", _ 
      "c:\application access\mon application"

Le premier paramètre est le chemin de la clef de registre et le second la valeur à écrire.

Si la clef (le chemin) n’existe pas, elle est créée.

Conclusion

Comme nous l’avons vu rien de sorcier dans l’utilisation de ces instructions. Par contre il est fortement conseillé d’avoir les bases de connaissances minimales de ce qu’est la base de registre. En effet, si la manipulation d’un fichier ini (cf http://blogaccess.free.fr/?p=122) pour gérer de la persistance n’est pas critique, manipuler la base de registre l’est sans aucun doute. Prenez les précautions d’usage avant la manipuler.

Pourquoi ce blog ?

Bienvenue sur BlogAccess !

En 1998, j’ai décidé de créer un site d’information sur l’informatique et Microsoft ACCESS en particulier. Il me fallait un nom qui devait à la fois être simple, parlant et surtout inutilisé, pour désigner ce nouvel espace de vulgarisation. J’ai donc choisi ACCESSite ; ACCESS pour Microsoft ACCESS et Site pour un site web.

Au cours des années qui ont suivi et par un long travail de référencement, je suis arrivé à voir ce vocable être en tête des moteurs de recherche.

Mais c’était sans compter sur le cybersquatting. En effet quoi de plus simple que de se trouver un vocable bien placé sur les moteurs de recherche et de se l’approprier. Quand on fait du commerce c’est la garantie d’être immédiatement visible et surtout à peu de frais.

Au début c’était un, puis deux et maintenant ils sont légions à utiliser ce terme et dans tous les domaines, avec des tirets, des points… N’ayant fait aucun dépôt officiel de ce nom, je ne peux que constater l’usurpation.

C’est la raison de ce nouvel espace, avec un nouveau nom, et avec un contenu exclusivement réservé à Microsoft ACCESS.

à bientôt.