huascaran01
Messages postés35Date d'inscriptionmercredi 12 août 2009StatutMembreDernière intervention25 août 2012
-
23 juin 2011 à 07:59
huascaran01
Messages postés35Date d'inscriptionmercredi 12 août 2009StatutMembreDernière intervention25 août 2012
-
23 juin 2011 à 15:53
j'utilise une base access lié à word pour faire du publipostage (c'est la suite 2003).
Je trouve qu'il serait pratique que les renseignements que des documents édités en word se retrouve dans access. Par exemple, le nombre de page du documents, la date de création, l'url menant au document...
j'ai créé un code vba dans word qui en principe devrait ouvrir le lien vers ma base (C:\base\cabinet.mdb) puis vers ma table (T_Document/général) pour y insérer dans le champs (document_nbre_page) le renseignement utile (nbrepage).
Mon code bloque à l'endroit où j'ai mis une étoile à l'endroit où ça bloque. le message "instruction sql non valide. delete, insert, procedure, select ou update attendus".
Si quelqu'un a une idée, ce serait fantastique.
Merci à tous.
Sub échange()
'ajoute un enregistrement dans une table Access
'necessite d'activer la reference
'Microsoft ActiveX Data Objects x.x Library
Dim Conn As ADODB.Connection
Dim rsT As ADODB.Recordset
Dim fd As ADODB.Field
Dim maTable As String
Set Conn = New ADODB.Connection
Set rsT = New ADODB.Recordset
With ActiveDocument
nomdoc = .FullName
auteurdoc = .BuiltInDocumentProperties(wdPropertyLastAuthor)
nbrepage = .BuiltInDocumentProperties(wdPropertyPages)
creation = .BuiltInDocumentProperties(wdPropertyTimeCreated)
End With
maTable = "T_Document/général"
With Conn
.Provider = "Microsoft.JET.OLEDB.4.0"
.Open "C:\base\cabinet.mdb"
End With
With rsT
.ActiveConnection = Conn
'***********ça bloque juste après**************
.Open maTable, LockType:=adLockOptimistic
.AddNew
.Fields("document_nbre_page").Value = nbrepage
.Update
End With
rsT.Close
Conn.Close
End Sub
A voir également:
[Catégorie modifiée .Net -> VBA] problème de connexion word vers access avec ado
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 23 juin 2011 à 08:28
Pas bonjour non plus
La prochaine fois, utilise la coloration syntaxique pour coller ton code (3ème icone à droite) = conserve l'indentation des lignes (espaces en tête de ligne) et plus facile à relire.
- La syntaxe d'une table ne peut pas comporter de / façon répertoire.
- Essaye plutôt ce genre de syntaxe simple :
.Open "Select * From " & maTable, ...
- Ensuite, le RecordSet doit savoir à quelle connexion tu t'adresses : il manque ce paramètre dans ton .Open :
.Open "Select * From " & maTable, Conn, ...
- D'autre part, si tu insères une ligne avec uniquement le nombre de pages, comment feras-tu le lien avec le nom du document associé ?
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
huascaran01
Messages postés35Date d'inscriptionmercredi 12 août 2009StatutMembreDernière intervention25 août 2012 23 juin 2011 à 15:33
Bonjour,
Désolé d'avoir été un peu abrupt dans ma présentation.
Le stress d'une trop longue nuit, j'imagine.
Je vais tester de ce pas le code.
Merci beaucoup.
huascaran01
Messages postés35Date d'inscriptionmercredi 12 août 2009StatutMembreDernière intervention25 août 2012 23 juin 2011 à 15:53
j'ai testé en changeant au départ le nom de la table pour supprimer le /... et là, miraculus, tout fonctionne. Bien entendu, mon exemple avec le nombre de page ne constituait qu'un début. J'ai adapté et dans ma table figure également le nom du fichier, l'auteur et, par ailleurs, un champ reprenant le nom du dossier concerné.
Merci en tout cas infiniment. Des heures de migraines inutiles auront pris fin grâce à toi.