Votre logiciel professionnel sur mesure

Mis en avant

Vous êtes à la recherche d’une solution logicielle pour votre entreprise et vous avez exploré beaucoup de logiciels qui vous sont proposés dit « clef en main » sur le Web mais aucun ne correspond intégralement à votre activité.

Les principales causes sont :

  • Une fonctionnalité manquante nécessaire au fonctionnement de votre entreprise et qui vous fera réellement gagner du temps.
  • Un coût d’exploitation non maitrisé : Il reste le point noir des applications en ligne grand public. Après une offre tarifaire alléchante, vous devenez captif d’un modèle économique non maitrisé. Le coût est souvent proportionnel au nombre d’utilisateurs ou d’informations traitées et les « évolutions » tarifaires sont toujours subies.
  • Une ergonomie austère : C’est le problème que l’on rencontre le plus souvent sur les logiciels Web, l’information est perdue dans dans une suite de pages web.
  • Un stockage obscur de vos données.
  • Une récupération couteuse de vos données existantes.

La création d’une solution sur mesure est possible quel que soit votre domaine d’activité et quels que soient vos besoins tout en gardant un budget maitrisé.

Avec plus de 30 ans d’expérience dans de nombreux domaines applicatifs professionnels (aéronautique, spatial, comptabilité, paye, btp, ascenseur, analyse statistiques, agroalimentaire, art, associatif, facturation, gestion de contrat …), je suis à même de vous proposer la solution adaptée et évolutive dont vous avez besoin pour votre activité.

Parce que le logiciel s’adapte à l’entreprise.

Syntaxe VBA : ‘.’ vs. ‘!’

Êtes-vous adepte du Dot (.) ou du Bang (!) dans vos syntaxes VBA ? Connaissez-vous la différence entre les 2 ? Dans cet article nous allons essayer d’y voir plus clair.

Un peu d’histoire pour comprendre

Bang (!) le séparateur historique

En 1992, lorsque Access est paru, il n’y avait que 2 possibilités pour automatiser les processus :

  • Les Macros
  • Les expressions
  • Access Basic dérivé de Visual Basic, qui deviendra avec Access 2.0 le célèbre VBA.

Pour accéder aux composants des formulaires et des états, le séparateur adopté fut le point d’exclamation (Bang en anglais). Toute la documentation Access Basic se résumant au manuel de programmation d’Access indiquait le Bang (!) comme séparateur.

Le Dot (.) modernise Access Basic

En version 2.0 d’Access le point (. Dot) fait son apparition et avec lui une fonctionnalité très attendue : L’autocomplétion.

Cette liste de membres ajoute du confort au développement en VBA et permet aux plus curieux une exploration des modèles objets utilisés.
Il faut au préalable avoir coché son utilisation dans VBE/Outils/Options :

Le F2 (explorateur d’objets) vient complété cette offre de service.

Bang ! vs. Dot .

On l’aura compris pour avoir une bonne maitrise du code et une courbe d’autoformation améliorée, l’utilisation du Dot (.) est à privilégier.
Doit-on abandonner le Bang pour autant ? La réponse est clairement Non !
Il a une signification, il désigne l’élément (méthode/propriété) par défaut de certaines classes.

'Code exemple
Dim rst as dao.Recordset
Set rst = currentdb.openrecordset("Select id, nom, prenom From tClient;", dbopensnapshot)

'cette syntaxe 
debug.print rst.fields("nom").value
' est equivalente à celle-ci
debug.print rst!nom.value

Avec l’Explorateur d’Objets de VBA (F2) on peut vérifier si un membre est déclaré « par défaut ».

Le point bleu sur l’icône + l’intitulé « Membre par défaut » dans la description du membre.

Utilisation de Bang (!) et ses exceptions

L’utilisation du Bang (!) dans les collections pourrait être simple s’il ne souffrait pas de quelques exceptions.
La collection Form et Report indique que « Controls » (collection des controls) est le membre par défaut. Mais étrangement il peut aussi désigner la colonne d’une table ou d’une requête indiqué dans la source du formulaire ou de l’état si celle-ci n’a pas de « Control » (zone de texte, zone de liste…) liée.

Autrement dit pour une source du formulaire comme ceci :

SELECT id, nom, prenom FROM tClient;

Où seul Nom et Prénom aurait leur zone de texte insérée dans le formulaire/état on pourrait très bien utiliser le Bang (!) dans VBA pour faire référence à Id qui lui n’a pas de « Control ».

'fonctionne
Me!Id
'ne fonctionne pas
Me.Id

Conclusion

L’utilisation du Dot (.) est donc primordial pour travailler avec VBA. D’ailleurs lorsqu’on regarde les problèmes remontés dans les forums sur du code qui provoque des erreurs du type « Membre inconnu » on remarque souvent que le Bang (!) est employé à tous les étages.

Certain diront que le code verbeux est proscrire mais il s’agit d’une habitude qui permet plusieurs années après la conception de mieux s’y retrouver. C’est pour cela que je n’emploie le Bang (!) que pour son exception, jamais pour le le membre par défaut.

Et vous, quelle habitude avez-vous et qu’utilisez vous majoritairement ?
Est-ce que ce billet va vous faire changer vos habitudes ?

MS ACCESS et CHATGPT

Puisque c’est la mode de ChatGpt et qu’on peut, au premier contact, lui faire dire ce que l’on veut, j’ai tenté une expérience sur le thème :

MS ACCESS est-il une base de données ?

Et voici l’échange avec ChatGpt :

User
Est-ce que Microsoft Access est une base de données ?
ChatGPT
Oui, Microsoft Access est une application de gestion de base de données relationnelle. Elle fait partie de la suite Microsoft Office et offre un environnement convivial permettant aux utilisateurs de créer, gérer et interroger des bases de données. Access utilise le modèle de base de données relationnelle, où les données sont organisées en tables, et les relations entre ces tables peuvent être définies pour permettre des liens logiques entre les différentes parties de la base de données. Bien que Microsoft Access soit utilisé pour des applications de base de données plus petites ou moins complexes, il peut être une solution pratique pour les utilisateurs qui ont des besoins de gestion de données sans nécessiter une infrastructure de base de données plus robuste.

(ChatGpt 3.5 – le 26/01/2024)

La fin est absolument vrai. Ceux qui n’ont pas besoin d’une application robuste et n’ont pas de budget pour une infrastructure, Ms Access reste une bonne solution.

Mais vous pensez bien que cette réponse, plutôt réservée aux néophytes ou aux détracteurs de MS Access ne m’a pas convaincu. J’ai donc poussé plus loin l’expérience.

Ms Access n’est pas qu’une base de données

User
Non MS Access n’est pas une base de données.
ChatGPT
Je comprends que la terminologie peut parfois prêter à confusion. Pour clarifier, Microsoft Access est une application de gestion de base de données relationnelle. Cela signifie qu’Access fournit un environnement pour créer, gérer et interroger des bases de données relationnelles. Les bases de données créées avec Microsoft Access utilisent le modèle relationnel, où les données sont organisées en tables et les relations entre ces tables peuvent être définies.
Cependant, il est vrai que l’on peut parfois entendre des personnes dire que « Microsoft Access n’est pas une base de données » dans le sens où il ne s’agit pas d’un système de gestion de base de données (SGBD) autonome comme MySQL, PostgreSQL, ou Microsoft SQL Server. Access est plutôt une application qui inclut un moteur de base de données intégré.
Donc, selon le contexte, on peut se référer à Microsoft Access comme une application de gestion de base de données ou comme un système de gestion de base de données intégré.

(ChatGpt 3.5 – le 26/01/2024)

ChatGPT vient de mettre le doigt sur 2 affirmations qui sont vrais :

  1. Le moteur ACE n’est pas autonome comme MySql, Oracle et autre.
  2. Ms Access inclus un moteur de base de données (ACE).

Rapid Application Development le RAD de Microsoft

Je décide donc d’aller plus loin dans la démonstration et de rentrer un peu plus dans le fond du problème.

User
Mais on peut utiliser MS Access sans se servir de ACE, donc ce n’est pas une base de données mais plutôt un RAD.
ChatGPT
Vous avez raison de souligner que Microsoft Access est souvent utilisé comme un outil de développement rapide d’applications (RAD – Rapid Application Development) plutôt que simplement comme un système de gestion de base de données (SGBD) autonome. Microsoft Access combine un moteur de base de données intégré (Microsoft Jet Database Engine ou ACE Database Engine) avec un environnement de développement qui permet aux utilisateurs de créer rapidement des applications liées à des bases de données.
Dans ce contexte, on peut considérer Microsoft Access comme un outil RAD qui offre une interface conviviale pour créer des applications associées à des bases de données, plutôt qu’un SGBD autonome. L’utilisation de l’ACE Database Engine permet à Access de gérer les données de manière relationnelle.
Il est important de noter que, bien que Microsoft Access puisse être utilisé pour le développement rapide d’applications, il a ses limites en termes de performances et d’évolutivité, ce qui le rend plus adapté à des applications de taille moyenne ou à des tâches spécifiques plutôt qu’à des solutions d’entreprise massives. Pour des applications plus complexes ou des volumes de données importants, des SGBD autonomes peuvent être préférables.

(ChatGpt 3.5 – le 26/01/2024)


ChatGPT indique bien que MS Access, utilisé sans son composant ACE (le SGBDR tant décrié), est un RAD.

Ms Access et les applications Massives

Je décide de pousser ChatGPT un peu plus loin sur le thème des applications dites « massives ».

User
Ms Access peut utiliser des SGBD autonomes, il peut donc répondre à une demande d’application massive.
ChatGPT
Vous avez raison. Microsoft Access offre également la possibilité d’utiliser des sources de données externes, y compris des systèmes de gestion de base de données (SGBD) autonomes tels que Microsoft SQL Server, MySQL, ou Oracle. Cela permet d’accéder à des bases de données plus robustes et adaptées à des charges de travail plus importantes.
En utilisant Access comme interface frontale, vous pouvez développer des applications qui exploitent la puissance de SGBD autonomes pour gérer des volumes de données plus importants et offrir des performances optimisées. Cela peut rendre Access plus adapté à des applications plus massives, en tirant parti de la robustesse des SGBD sous-jacents tout en profitant de l’interface de développement rapide d’applications qu’Access offre.
Il est important de choisir la solution en fonction des besoins spécifiques du projet, de la complexité de l’application, des volumes de données anticipés et des exigences de performances. Utiliser Access comme interface frontale avec un SGBD autonome en backend est une approche courante pour tirer parti des avantages des deux mondes.

(ChatGpt 3.5 – le 26/01/2024)

Voilà, nous sommes dans le coeur du sujet. Ms Access en frontal peut être utilisé pour répondre à des besoins d’applications massives. Pour moi ce n’est pas nouveau, cela fait plusieurs années que j’ai fait le choix technique d’utiliser Ms Access comme un RAD pour le Front-end et un SGBDR autonome (MySql, Sql Server, Oracle) pour le Back-end.

ChatGPT, Ms Access et le méchant humain

Mais comme je suis un peu obstiné, certains pourraient utiliser le vocable « chiant ». Je poursuis la discussion, car c’est bien d’une discussion qu’il s’agit.

User
En fait tu ne sais pas trop ce que raconte, tu dis tout et son contraire.
ChatGPT
Je m’excuse si mes réponses ont pu sembler contradictoires ou confuses. Permettez-moi de clarifier : Microsoft Access est un outil de gestion de base de données relationnelle qui combine un moteur de base de données intégré avec un environnement de développement. Vous pouvez utiliser Access de différentes manières, que ce soit en tant que système autonome avec son propre moteur de base de données (Jet Database Engine ou ACE Database Engine) ou en connectant Access à des SGBD autonomes externes tels que Microsoft SQL Server.
Cependant, il est important de noter que bien que Microsoft Access puisse être utilisé pour des applications de différentes tailles, il peut avoir des limitations en termes de performances et d’évolutivité par rapport à des SGBD autonomes plus puissants. Pour des applications massives et complexes, il peut être recommandé d’utiliser directement un SGBD autonome.
Encore une fois, je m’excuse pour toute confusion, et j’espère que cela clarifie la situation. Si vous avez des questions plus spécifiques ou des préoccupations, n’hésitez pas à les partager.

(ChatGpt 3.5 – le 26/01/2024)

J’avoue que même si je m’adresse à une machine, le fond et la forme de mon affirmation ne sont pas du tout adaptés. J’en suis profondément désolé et m’en excuse. Mais cela permet cependant de voir les comportements intéressants suivants :

  1. ChatGPT a une capacité de synthèse.
  2. ChatGPT sait se remettre en question.
  3. ChatGPT sait s’excuser.

Ces trois points sont vraiment peu courant chez les humains.

Frontend ou Backend là est la question

Je poursuis donc l’expérience pour tenter de lui en faire dire plus.

User
peut-on utiliser MS access en frontal avec un SGBD autonome pour des applications massives ?
ChatGPT
L’utilisation de Microsoft Access en tant qu’interface frontale avec un SGBD autonome en tant que backend est techniquement possible, et cela peut être une approche viable pour certaines applications, y compris celles qui peuvent être considérées comme massives. Cela permet de tirer parti de la convivialité de l’interface de développement rapide d’applications d’Access tout en utilisant un SGBD plus robuste pour stocker et gérer les données.
Voici quelques points à considérer :
Taille et complexité de l’application : Pour des applications massives avec des volumes de données importants et une complexité élevée, il peut être plus approprié d’envisager des SGBD autonomes tels que Microsoft SQL Server, Oracle, ou d’autres solutions.
Performances : Access peut avoir des limitations en termes de performances par rapport à des SGBD autonomes, surtout lorsque la taille des données ou le nombre d’utilisateurs simultanés augmente. Il est important d’évaluer les exigences de performances de votre application.
Sécurité : Lorsque vous utilisez Access avec un SGBD externe, assurez-vous de mettre en place des mécanismes appropriés de sécurité et d’accès aux données pour garantir l’intégrité et la confidentialité.
Évolutivité : Si vous prévoyez une croissance importante de votre application, il est essentiel d’évaluer la capacité d’évolutivité de votre solution. Certains SGBD autonomes offrent de meilleures capacités d’évolutivité que d’autres.
Maintenance : La maintenance d’une application dépend de la complexité de la solution. L’utilisation de SGBD autonomes peut parfois nécessiter des compétences techniques plus avancées pour la gestion et la maintenance.
En résumé, l’utilisation de Microsoft Access en tant qu’interface frontale avec un SGBD autonome en backend peut être une option, mais cela dépend des besoins spécifiques de votre application. Il est recommandé d’évaluer attentivement les caractéristiques et les exigences de votre projet avant de prendre une décision.

(ChatGpt 3.5 – le 26/01/2024)


Conclusion

Pour moi ChatGPT s’avère être un bon outil… utilisé dans des mains compétentes. S’attacher à sa première réponse, et je l’ai déjà constaté sur des essais précédents, est loin d’être pertinent, il s’avère dans la majorité des cas comme contre-productif.
Donc n’hésitez pas à creuser, à le contredire et à aller dans les détails (chercher la petite bête). A moins que vous ne poursuiviez le but d’obtenir une réponse partiale ou un consensus.

Pour finir voici la copie d’écran de la discussion.

Protéger vos applications Microsoft Access contre la copie et l’exécution

Cela fait plusieurs années que je pensais investir du temps dans ce type de protection pour mes applications Access. Après une bonne réflexion j’ai établi les règles à respecter pour créer une protection efficace et peu contraignante.

Les règles sont les suivantes :

  1. Ne pas pouvoir installer une application dont on n’a pas activé la licence.
  2. Ne pas pouvoir exécuter une application copiée.
  3. Ne pas utiliser de composants externes.
  4. Que l’intégration à toute nouvelle application soit triviale.
  5. Qu’elle ne perturbe pas les mises à jour de l’application.

Au terme de plusieurs semaines de réflexion, d’études, de recherche, de développement, d’avancées et d’échecs la première application protégée par ce système a été livrée et testée avec succès.

Évidemment pour qu’une protection reste efficace il vaut mieux éviter d’en dévoiler la méthode.
Si vous souhaitez protéger vos applications, que votre entreprise à des carences dans ce domaine, n’hésitez pas franchir le pas, contactez-moi !


VBA : Split()

Split() est une fonction pratique et largement utilisée. A partir d’une chaine de texte elle renvoie un objet Tableau (Array) composé de ses éléments en utilisant le séparateur désigné.

Par exemple :

Dim monTexte as String
Dim monTableau as Variant
montexte = "Bonjour je suis Sam"

monTableau = Split(montexte, " ")

Dans l’exemple ci-dessus le tableau montableau contiendra :
montableau(0) >> « Bonjour »
montableau(1) >> « je »
montableau(2) >> « suis »
montableau(3) >> « Sam »

On peut donc utiliser un boucle (Do, While, For) pour parcourir le tableau, comme on peut utiliser l’indice comme c’est fait dans la liste précédente.

Split renvoie un objet tableau, Split() est un tableau

Si Split est un tableau on peut l’utiliser en tant que tel sans l’affecter à une variable.
Dans l’exemple suivant on récupère directement l’item du tableau.

Dim monPrenom as String
monPrenom = Split(montexte, " ")(3)

La variable monPrenom vaudra :
monPrenom >> « Sam »

Le paramètre (3) accolé directement à la fonction Split() peut vous paraitre étrange au premier regard pourtant ce n’est ni plus ni moins que l’indice du tableau.

Split et conclusion

Lorsqu’on veut récupérer une valeur et que l’on connait avec certitude sa position, utiliser cette syntaxe est plus rapide, cependant lorsqu’on veut utiliser plus d’une valeur l’utilisation classique est plus performante.

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.

Erreur 3010 avec DAO.CreateTableDef()

Ce problème est constaté le 16/01/2023

Le CreateTabledef() de DAO ne fonctionne plus comme avant !
Avec un :

Set td = db.CreateTableDef(tblname, dbAttachSavePWD, tblname, strConnexionOdbc)


On obtient une erreur 3010, la table existe déjà, mais non elle n’existe pas, ni dans la liste des objets, ni dans TableDefs et encore moins dans MsysObjects.

Quand on observe td on peut voir que Name et égal à SourceTableName …
Le contournement est possible :

Set td = db.CreateTableDef()
td.Name = strTable
td.SourceTableName = tblname
td.Connect = strConnexionOdbc
td.Attributes = dbAttachSavePWD


       Ou encore :

DoCmd.TransferDatabase acLink, "ODBC Database", strConnexionOdbc, acTable, tblname, strTable, False, False

Ce problème a été constaté avec une application qui fonctionne avec ce code depuis 2016, et sur une fonctionnalité qui est utilisée de manière hebdomadaire.

Le pilote ODBC n’est pas en cause, des tests ont été fait dans ce sens.

Microsoft Access n’est pas une base de données

Lorsque vous posez la question ; qu’est ce que Microsoft Access ? Immanquablement la réponse sera, « C’est une base de données ! ». Affirmation éculée mais totalement fausse colportée au mieux par les ignorants et au pire par les perroquets de salon. Cet article est là pour vous éclairer sur Microsoft Access.

Microsoft Access : une solution trop peu envisagée

Microsoft Access est plutôt à ranger dans la catégorie des RAD (Rapid Application Developpement – Outil de développement rapide d’application), accessoirement il est doté d’une base de données intégrées (Jet puis ACE depuis 2007) dont il se sert pour ses propres besoins. Cependant à aucun moment vous n’êtes tenu de l’utiliser dans votre projet. Beaucoup d’applications se résumant en un simple front-end (côté utilisateur) Microsoft Access utilisent comme un back-end (côté serveur) d’autres moteurs de bases de données comme MS SQL Server, Oracle, MySql/Mariadb, PostgreSql.

Microsoft Access est doté des composants suivants :

  • Les formulaires pour l’interaction avec l’utilisateur, ils sont dotés de composants riches et programmables.
  • Les états pour imprimer des données (test, image, graphique…). On y retrouve la totalité des composants du formulaire.
  • Les macros, un langage facile pour faire des tâches simples lorsqu’on ne connait rien à la programmation ça peut être suffisant.
  • Les modules VBA, certains nomment à tort le langage VBA comme un langage macro. C’est un véritable langage typés avec des instructions, des bibliothèques, des classes… On peut y faire des appels systèmes comme de la manipulation graphique.
  • Les requêtes, là on rentre dans le concept de base de données. Le générateur permet au néohpyte de se faire la main en générant rapidement des intructions SELECT, INSERT, DELETE… Elles prennent en charge les type UNION, Tableau croisé dynamique ou Passthrough (requête exécutée sur le serveur de base de données)
  • Les tables, la fameuse base de données accessoire.

Microsoft Access : ses qualités

L’une de ses premières qualité est que la conception de l’interface (IHM ou partie visible pour l’utilisateur) sera réalisée plus rapidement qu’avec les langages classiques. Vous serez donc à même de présenter une maquette sans que cela soit trop chronophage où l’utilisateur sera enfin son propre décideur.
De même que si la volumétrie de données et le nombre d’utilisateurs ne sont pas trop important vous opterez pour la base de données interne (ACE).
On peut également dire qu’il est assez accessible pour un profane, dans la limite d’un besoin simple.
En dernier ressort on peut également l’interfacer avec les produits VBA-Like (logiciels dont VBA est le langage de programmation), on y trouve bien évidemment les logiciels de la suite Office : Excel, Word, Powerpoint, Publisher… mais aussi AutoCad, Wordperfect, ArcGis, Solidwork…
Vous souhaitez faire des rapports complexes, envoyez vos données dans Microsoft Word ou bien dans Microsoft Excel.

Microsoft Access : ses défauts

Effectivement, à l’heure du tout-en-ligne, cloud et autre, une application Microsoft Access reste un client lourd, nécessitant Windows et qui n’est pas prévu pour le fonctionnement WEB. Il n’est donc pas possible de l’intégrer à du téléphone mobile.

Son éditeur VB (VBE) n’est pas un modèle d’avancée technologique puisqu’il n’a pas évolué depuis la version 7, soit 1995. Bien que quelques Add-in’s viennent compléter ses lacunes, beaucoup de développeurs souhaiteraient que Microsoft mettent un bon coup de collier pour fournir quelques évolutions essentielles.

Enfin la qualité d’accessibilité décrite dans le paragraphe précédent peut se transformer en défaut, et c’est ce que beaucoup lui reproche. On peut créer de véritables monstres dont la maintenance et l’évolution deviendra un repoussoir pour nombre d’expert de Microsoft Access.

Microsoft Access : une mauvaise réputation fondée ?

Je me permettrais de citer un paragraphe lu sur un site anglo-saxon qui résume à lui seul cet article.

« Les personnes qui n’ont jamais utilisé Microsoft Access ou quelque chose du genre et qui se considèrent comme des programmeurs invétérés ou des puristes de bases de données, considèrent Microsoft Access comme un jouet d’enfant dangereux, ne causant que du chagrin lorsque de vrais programmeurs et administrateurs de bases de données doivent déboguer le désordre désorganisé des amateurs. Ils rêvent du jour où cette nuisance sera éliminée et où leur entreprise pourra enfin être sous le contrôle bureaucratique strict d’applications bien conçues que personne ne se soucie d’utiliser. »

Microsoft Access n’échappe pas à la règles des outils et langages de développement, il ne fait que ce qu’on lui dit de faire et comment le faire. Une application inutilement gourmande en ressource, lente, mal conçue, désorganisée, moche ou simplement « user-spiteful » n’est pas la faute de l’outil mais bien du concepteur.

Conclusion

Pour conclure Microsoft Access, même si il a quelques défauts, n’en reste pas moins à ce jour un excellent moyen de concevoir rapidement des interfaces riches en faisant abstraction de la base de données utilisée.


MS ACCESS : pièces jointes grisées et autres problèmes

On peut constater de temps à autre des problèmes avec le composant des Pièces Jointes (PJ). Je l’ai constaté à la création d’une PJ avec 2016 alors qu’avec 2013 je n’avais pas rencontré ce problème.

Pièces Jointes grisées, menu grisé, trombone absent, Filtre #Erreur

Cela ce manifeste par l’absence de la barre d’outils sur le contrôle PJ.

la barre d’outils des PJ

Le menu contextuel du contrôle de PJ est grisé, surtout le Gérer le pièces jointes, et il comporte 2 lignes Filtres avec #Erreur mentionné.

Le menu contextuel des PJ

Et dans la table, la colonne de la PJ ne comporte pas le trombone dans la zone de saisie.

La colonne PJ dans la table

Réparation des Pièces Jointes

Sur la frontale (front end)

1) supprimer les tables liées. Attention ! Si vous n’avez pas de dorsale, ne supprimer pas les tables, vous les perdriez définitivement et vos données avec.
2) fermer l’application.
3) faire un décomp/comphttp://blogaccess.free.fr/?p=75)

Sur la dorsale (back end)

3) compacter la dorsale (le décomp/comp est inutile)
4) vérifier que le trombone est revenu sur la colonne en question.
5) rouvrir la frontale, supprimer le contrôle PJ et le recréer.

Si la frontale est correctement conçue l’attache se fait automatiquement, sinon refaire la liaison manuellement.

Conseil pour les PJ

A noter que stocker des PJ dans une base c’est une très mauvaise idée quand on la laisse à des utilisateurs. Lorsque la limite de 2Go est atteinte elle crashe est on se retrouve avec une belle brique décorative sur le disque.

Bonne utilisation.