Recuperer des signets word dans access [Résolu]

nitro81 23 Messages postés mercredi 9 avril 2008Date d'inscription 17 avril 2008 Dernière intervention - 9 avril 2008 à 08:15 - Dernière réponse : nitro81 23 Messages postés mercredi 9 avril 2008Date d'inscription 17 avril 2008 Dernière intervention
- 16 avril 2008 à 11:45
Bonjour, dans le cadre d'un stage en entreprise j'ai à effectuer une base de données sous Access. Cette BD doit aller chercher des valeurs de signet dans des documents word pour les incorporer dans ses tables, et doit par la suite remplir d'autre signet. J'ai fait ma base de données ainsi que l'interconnexion d'Access vers word mais pas l'inverse. Après avoir passé pas mal de temps dessus et a chercher sur le net, je viens demander de l'aide.

Quelqu'un pourrait-il m'aider svp?
Merci d'avance, nitro81
Afficher la suite 

Votre réponse

7 réponses

nitro81 23 Messages postés mercredi 9 avril 2008Date d'inscription 17 avril 2008 Dernière intervention - 16 avril 2008 à 11:45
+3
Utile
Ce n'est pas grave. J'ai résolu mon problème, enfin on m'a aidé à le résoudre plutôt.. Merci quand même. En fait, j'ai supprimé les 9 caractères de gauche de manière à ce que ma variable soit à nouveau "normale".

Pour ceux que ça interesse, la commande est :
variable2 = Right(variable1, Len(variable1) - 9)
Donc on garde les caractères restant de droite : ((longueur totale) - (9 caractères de gauche))

Avant : FORMTEXT test

Après : test
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de nitro81
cs_loulou69 672 Messages postés mercredi 22 janvier 2003Date d'inscription 2 juin 2016 Dernière intervention - 9 avril 2008 à 10:46
0
Utile
Bonjour

Que te manque t'il?

1- un code pour récupérer les signets inclus dans les documents
2- créer des signets dans les documents si tous les documents n'ont pas les signets attendus
3- une méthode de connexion Access depuis VBA : pour insérer dans Access les signets
4 - une méthode pour insérer automatiquement les ajouts manuels des signets des documents dans Access
Commenter la réponse de cs_loulou69
nitro81 23 Messages postés mercredi 9 avril 2008Date d'inscription 17 avril 2008 Dernière intervention - 9 avril 2008 à 10:57
0
Utile
Bonjour, tout d'abord merci de répondre si vite à ma demande.

C'est la premiere méthode que je dois faire, récupérer les valeurs de signet contenu dans les documents.
Commenter la réponse de nitro81
cs_loulou69 672 Messages postés mercredi 22 janvier 2003Date d'inscription 2 juin 2016 Dernière intervention - 9 avril 2008 à 11:13
0
Utile
Function LireSignet(nom_Signet as string) as string
LireSignet=""
If ActiveDocument.Bookmarks.Exists(nom_Signet) Then
    LireSignet = ActiveDocument.Bookmarks(nom_Signet).Range.Text
End If
End Function

Function RechercherTousSignets()
Dim oBookmark
For Each oBookmark in ActiveDocument.Bookmarks
   ...
   valeur= LireSignet(oBookmark.Name)
Next
End Function
Commenter la réponse de cs_loulou69
nitro81 23 Messages postés mercredi 9 avril 2008Date d'inscription 17 avril 2008 Dernière intervention - 9 avril 2008 à 11:51
0
Utile
Merci pour tes réponses, de mon côté, j'ai pas mal avancé. J'arrive à recupérer la valeur d'un signet et à la mettre dans ma table Access, mais elle s'affiche avec  FORMTEXT au début. Ex :  "FORMTEXT toto" .
Ce doit être un problème lié au type de variable récupérer par rapport au type de ma colonne ( qui est en type texte ).
Sais-tu comment y rémédier ??

Mon code :

Sub import_word()
   
    Dim WordApp As Word.Application
    Dim db As DAO.Database
    Dim Req As DAO.Recordset
    Dim cSQL As String
   
    Set WordApp = CreateObject("Word.Application")
    WordApp.Visible = True
    WordApp.Documents.Open ("chemin
\document.doc")
    Set db = CurrentDb
    Set Req = db.OpenRecordset("SELECT * FROM nom_table")
    Req.AddNew
   
    With WordApp
        Req(1) = .ActiveDocument.Bookmarks("nom_signet1").Range.Text
        Req(2) = .ActiveDocument.Bookmarks("nom_signet2").Range.Text
    End With
   
    cSQL = "UPDATE TEST SET colonne1='" & Req(1) & "' WHERE colonne2 ='valeur' "
    'requete SQL
    DoCmd.RunSQL cSQL   'execution de la requete SQL
   
    Req.Close
    Set Req = Nothing
    db.Close
    Set db = Nothing
    WordApp.Documents.Close
    WordApp.Quit
   
End Sub
Commenter la réponse de nitro81
nitro81 23 Messages postés mercredi 9 avril 2008Date d'inscription 17 avril 2008 Dernière intervention - 16 avril 2008 à 08:59
0
Utile
up
Quelqu'un peut m'aider svp ??
Commenter la réponse de nitro81
cs_loulou69 672 Messages postés mercredi 22 janvier 2003Date d'inscription 2 juin 2016 Dernière intervention - 16 avril 2008 à 10:03
0
Utile
je n'avais pas vu et je t'avais oublié milles excuses

Req est un RecordSet
Req(1) est t'il une zone de ton formulaire de type Label ou Textbox

Si c'est un label

Req(1).caption = ActiveDocument.Bookmarks("nom_signet1")

si c'est un Textbox

Req(1).Text= ActiveDocument.Bookmarks("nom_signet1")
Commenter la réponse de cs_loulou69

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.