Recuperer des signets word dans access

Résolu
nitro81 Messages postés 23 Date d'inscription mercredi 9 avril 2008 Statut Membre Dernière intervention 17 avril 2008 - 9 avril 2008 à 08:15
nitro81 Messages postés 23 Date d'inscription mercredi 9 avril 2008 Statut Membre Dernière intervention 17 avril 2008 - 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

7 réponses

nitro81 Messages postés 23 Date d'inscription mercredi 9 avril 2008 Statut Membre Dernière intervention 17 avril 2008
16 avril 2008 à 11:45
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
3
cs_loulou69 Messages postés 672 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 2 juin 2016 1
9 avril 2008 à 10:46
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
0
nitro81 Messages postés 23 Date d'inscription mercredi 9 avril 2008 Statut Membre Dernière intervention 17 avril 2008
9 avril 2008 à 10:57
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.
0
cs_loulou69 Messages postés 672 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 2 juin 2016 1
9 avril 2008 à 11:13
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nitro81 Messages postés 23 Date d'inscription mercredi 9 avril 2008 Statut Membre Dernière intervention 17 avril 2008
9 avril 2008 à 11:51
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
0
nitro81 Messages postés 23 Date d'inscription mercredi 9 avril 2008 Statut Membre Dernière intervention 17 avril 2008
16 avril 2008 à 08:59
up
Quelqu'un peut m'aider svp ??
0
cs_loulou69 Messages postés 672 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 2 juin 2016 1
16 avril 2008 à 10:03
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")
0
Rejoignez-nous