IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

Insertion auto resultat RTF dans champ OLE


Sujet :

Access

  1. #1
    Candidat au Club
    Inscrit en
    Janvier 2005
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Insertion auto resultat RTF dans champ OLE
    Bonjour,
    Access j'aime bien, mais dès qu'il faut passer au VBA je sèche...
    Voici mon problème :
    - Je sais lancer automatiquement des états stats Access et les envoyer par mail (au format RTF) via une macro utilisant EnvoyerObjet. Trop facile

    - Seulement désormais, on me demande aussi d'intégrer (toujours automatiquement) ces états stats dans une table Access (appelée T_EDITIONS) dans un champ de type "Objet OLE".

    Il faut impérativement que ça soit intégré ainsi (pas de soluce avec lien vers emplacement disque).

    Je sens bien que je dois passer par du code VBA et là je sèche. J'ai écumé en long et en large le forum sans rien trouver de satisfaisant, du moins pour la nullité que je suis en ce domaine.

    Si vous pouvez m'aider je vous en serais très reconnaissant

  2. #2
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Le stockage OLE, c'est vraiment pas une bonne idée. La règle de base : stocker les fichiers en dehors de la base. Maintenant autre chose m'interpelle :

    Tes états sont créés à partir de données issues de la base de données ... A quoi peut bien servir de stocker un état puisque les données sont elles mêmes stockées ? Il suffit de réouvrir l'état.

    Si on poursuit ton raisonnement, pourquoi ne pas stocker dans la base l'état stocker dans le champs OLE qui lui même est déjà stocké ailleurs avec des données stockées ici ?

  3. #3
    Candidat au Club
    Inscrit en
    Janvier 2005
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par Tofalu
    ..A quoi peut bien servir de stocker un état puisque les données sont elles mêmes stockées ? Il suffit de réouvrir l'état...
    Je me doutais que la question viendrait : l'idée est de transmettre ensuite la table en question à un site Internet disposant d'une base MySQL.

    Au lieu de recevoir des courriels, les adhérents devront rejoindre ce site sécurisé et récupérer les stats qui les intéressent, selon leur niveau d'habilitation.

    Sur le site en question, existe un système d'intégration automatique des fichiers de type MySQLDump et pas question d'envoyer d'autres type de fichier.

    Voilà, merci d'avance pour votre aide.

  4. #4
    Candidat au Club
    Inscrit en
    Janvier 2005
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Bonjour,
    Après quelques recherches, voici ce que j'ai trouvé :
    Préalables:

    - Une Table "T_DOCUMENT" avec comme champs :
    id_doc => Numéro_auto
    Nom_doc => Contiendra le nom du fichier avec éventuellement des infos complémentaires
    Blob_doc => champ de type "Objet OLE" (ou "mediumblob" si base MySQL), contenant le fichier RTF ou PDF ou autre.

    - Une variable "Var_PathNameFile" que j'ai décidé de déclarer en tant que champ indépendant dans mon formulaire de menu "F-Menu", à laisser ouvert. Cette variable permettra de passer le nom et l'emplacement du fichier.

    - Un formulaire "F-Recup Fichier pour Insert OLE" avec comme Propriété "Sur Ouverture", une "Procédure événementielle" à créer avec le "Générateur de Code", contenant :

    Private Sub Form_Open(Cancel As Integer)
    Dim PathNameFile As String
    Me.AllowAdditions = True
    Me.AllowDeletions = False
    ' Récupération du nom et de l'emplacement du fichier à intégrer
    PathNameFile = [Forms]![F-Menu]![Var_PathNameFile]
    ' Intégration du fichier dans le cadre d'objet pointant vers le champ OLE
    Me![Blob_doc].OLETypeAllowed = acOLEEmbedded
    Me![Blob_doc].SourceDoc = PathNameFile
    Me![Blob_doc].Action = acOLECreateEmbed
    End Sub

    Dans ce formulaire, ayant bien sûr pour source T_DOCUMENT, ajouter les champs de la table. Attention de dimensionner suffisamment grand le champ Blob_doc (en 21*29,7 par exemple).

    Conclusion :

    Créer une macro M_Lancement_Doc_OLE :
    - Action "Copier Vers" d'un état, par exemple "E_TESTOLE", vers un fichier c:\tmp\testole.rtf
    - Action "DéfinirValeur" de ma variable [Formulaires]![F-Menu]![Var_PathNameFile] avec
    comme "Expression" : "c:\tmp\testole.rtf"
    - Action "OuvrirFormulaire" de mon formulaire "F-Recup Fichier pour Insert OLE"
    - Action "DéfinirValeur" de mon champ de formulaire [Formulaires]![F-Recup Fichier pour Insert OLE]![Nom_doc] avec comme "Expression" : "testole.rtf"
    - Action "Fermer" de mon formulaire "F-Recup Fichier pour Insert OLE"


    Vous aurez compris que c'est le formulaire "F-Recup Fichier pour Insert OLE" qui permet d'enregistrer mon fichier dans la table T_DOCUMENT.
    J'ai pas trouvé d'autre moyen, c'est peut-être pas ce qu'il y a de plus "soft", mais bon, je suis ouvert à toute suggestion !

    Pour conclure au sujet de MySQL, le boulot fait ci-dessus ne permet pas d'exploiter proprement le fichier à partir de scripts PHP. Il faut donc que je trouve une autre solution pour charger mes fichier...

    ;-)

Discussions similaires

  1. insertion valeur true/false dans champ type bit
    Par bambino13 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 29/05/2009, 18h54
  2. Insérer Image dans champs OLE
    Par keibenoit dans le forum IHM
    Réponses: 4
    Dernier message: 18/02/2009, 21h51
  3. Insertion de vide impossible dans champ date!
    Par js8bleu dans le forum Langage SQL
    Réponses: 7
    Dernier message: 10/03/2008, 21h01
  4. Réponses: 1
    Dernier message: 24/08/2007, 12h48
  5. D7 Voir des PDF inclus dans champ OLE
    Par zarbouine dans le forum Delphi
    Réponses: 15
    Dernier message: 01/04/2007, 13h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo