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 :

[Access] Export enregistrements vers Word


Sujet :

Access

  1. #1
    Membre du Club Avatar de PhRey
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 197
    Points : 67
    Points
    67
    Par défaut [Access] Export enregistrements vers Word
    Bonjour,
    je gère une base de données de clients sous Access.

    Je desire rediger des compte rendu Word (export de Access vers Word) et faire en sorte que ces CR (Compte Rendus) soient liés a chaque fiche client sous Access.

    J'ai reussi a faire un bouton (en VB) sous Access qui, sur clic, ouvre un fichier Word et recupere les infos de la fiche client.
    Ceci grace un fichier.dot dans lequel j'ai placé des signets, et grace également à du code VB.

    Mais je rencopntre qques difficultés pour poursuivre :

    > ce fichier Word s'intitule Document1.doc aprés fusion..
    > De plus il n'est pas lié à ma fiche client Access.

    Comment faire ?

    Je pensais :
    -creer un champs "CR" dans ma table client qui recuperait le "Numéro" du client (champs unique) + ".doc" derriere. Ceci fait il suffirait de recuperer cette valeur pour renomer le Document1.doc emis (hypothese...)
    -faire en sorte que cette valeur "CR" apparraissent dans mon formulaire pour pouvoir rappeler le CR en question aprés saisie... (lien hypertexte ?)

    Bref je patauge gravement et j'appele ô secours une bonne âme !

    Mon code vb sous access, créant le Document1.doc (via le modele de document *.dot) afin d'exporter les données du client vers word :
    (PS : l'export vers Word est un passage obligé)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    Private Sub Commande595_Click()
    On Error GoTo Err_Commande595_Click
     
     
    Dim objWord As Word.Application
    Dim doc As Word.Document
    Dim strSQL As String
     
    Dim strNumero As String
    Dim strCommune As String
    Dim strCP As String
    Dim strEmail As String
    Dim strEquipement As String
    Dim dhDate As Date
    Dim strFax As String
    Dim strTelephone As String
    Dim strHoraires As String
    Dim strAction As String
    Dim strSuivi As String
     
    Dim strFonction1 As String
    Dim strFonction2 As String
    Dim strFonction3 As String
    Dim strNom1 As String
    Dim strNom2 As String
    Dim strNom3 As String
    Dim strHoraires1 As String
    Dim strHoraires2 As String
    Dim strHoraires3 As String
     
    Dim strContacts As String
     
     
    strSQL = "SELECT * FROM Contacts " _
    & "WHERE [Numéro]=" & Me!Numéro
     
     
    Set rst = CurrentDb.OpenRecordset(strSQL)
    With rst
     
     
     
    strCommune = Nz(.Fields("Commune 01"))
    strCP = Nz(.Fields("CP"))
    strEmail = Nz(.Fields("email"))
    strEquipement = Nz(.Fields("Equipement"))
    strDate = Nz(.Fields("Date"))
    strFax = Nz(.Fields("fax"))
    strTelephone = Nz(.Fields("Telephone"))
    strHoraires = Nz(.Fields("Horaires"))
    strAction = Nz(.Fields("Action"))
    strSuivi = Nz(.Fields("Suivi"))
     
    strFonction1 = Nz(.Fields("Fonction 1"))
    strFonction2 = Nz(.Fields("Fonction 2"))
    strFonction3 = Nz(.Fields("Fonction 3"))
    strNom1 = Nz(.Fields("Nom 1"))
    strNom2 = Nz(.Fields("Nom 2"))
    strNom3 = Nz(.Fields("Nom 3"))
    strHoraires1 = Nz(.Fields("Horaires 1"))
    strHoraires2 = Nz(.Fields("Horaires 2"))
    strHoraires3 = Nz(.Fields("Horaires 3"))
     
    strContacts = Nz(.Fields("Contacts"))
     
    .Close
    End With
     
    On Error Resume Next
    Set objWord = GetObject(, "Word.application")
    If Err = 429 Then
    Set objWord = New Word.Application
    End If
    On Error GoTo 0
     
     
     
    With objWord
    .Visible = True
    Set doc = .Documents.Add("C:\Documents and Settings\Administrateur\Mes documents\DAVID\FICHES complete.dot")
     
     
    With doc.Bookmarks
    .Item("commune").Range.Text = strCommune
    .Item("cp").Range.Text = strCP
    .Item("email").Range.Text = strEmail
    .Item("equipement").Range.Text = strEquipement
    .Item("date").Range.Text = strDate
    .Item("fax").Range.Text = strFax
    .Item("telephone").Range.Text = strTelephone
    .Item("horaires").Range.Text = strHoraires
    .Item("action").Range.Text = strAction
    .Item("suivi").Range.Text = strSuivi
     
    .Item("fonction1").Range.Text = strFonction1
    .Item("fonction2").Range.Text = strFonction2
    .Item("fonction3").Range.Text = strFonction3
    .Item("nom1").Range.Text = strNom1
    .Item("nom2").Range.Text = strNom2
    .Item("nom3").Range.Text = strNom3
    .Item("horaires1").Range.Text = strHoraires1
    .Item("horaires2").Range.Text = strHoraires2
    .Item("horaires3").Range.Text = strHoraires3
     
    .Item("contacts").Range.Text = strContacts
     
    End With
     
    End With
     
    Set rst = Nothing
    Set doc = Nothing
    Set objWord = Nothing
     
     
    Exit_Commande595_Click:
        Exit Sub
     
    Err_Commande595_Click:
        MsgBox Err.Description
        Resume Exit_Commande595_Click
     
    End Sub

  2. #2
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    ici

    J'ai déjà mis un post il y a quelque temps et j'ai reçu une réponse qui m'a très bien aidé.
    En fait, je ne pars pas d'access mais directement de word.

    Essaie de voir si ça ne peut pas te venir en aide.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  3. #3
    Membre du Club Avatar de PhRey
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 197
    Points : 67
    Points
    67
    Par défaut
    Merci mais j'ai un peu du mal a comprendre l'utilité de ces fonctions en fait
    Par contre l'idée de partir de word est pas mal !

    Il faudrait que je recupere le no de client de mon doc et que je puisse attribuer ce no comme nom de fichier pour mon doc (actuellement nommé document1.doc), et aussi recopier ce no dans un champs de ma base, que je convertirais en lien hypertexte menant a mon doc...

    Pas gagné tout ca !!!

    Si qqun veut bien me mettre sur les rails svp ?

  4. #4
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Le principe est d'ouvrir un reccordset, qui contient les données t ensuite les mettre dans word.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  5. #5
    Membre du Club Avatar de PhRey
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 197
    Points : 67
    Points
    67
    Par défaut
    Oui mais j'arrive dejà a mettre les données dans Word..
    Mon pb se situe plutot aprés, pour lier ce fichier Word à une fiche client située dans Access...

  6. #6
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
     
    Sub autonew()
    '***********************************************
    ' autonew Macro
    ' Macro created 30/10/02 by LEBEAUO
    ' Modifiée le 30/11/06 par Lebeau
    '***********************************************
    '
    Dim Utilisateur As String
    Dim dbdonnees As DAO.database
    Dim rec As DAO.Recordset
    Dim sql As String
    Dim lenom As String
    Dim lepren As String
    Dim legra As String
    Dim lemat As String
    Dim letel As String
    Dim lemail As String
    Dim leno As String
    Dim corres  As String
    Utilisateur = Environ("username")
    sql = "SELECT * FROM person WHERE LogOnName = "
    sql = sql & "'" & Utilisateur & "'" & ";"
    'Debug.Print sql
    Set dbdonnees = DAO.opendatabase("l:\access\donnees.mdb")
    Set rec = dbdonnees.openrecordset(sql, DAO.dbOpenSnapshot)
    lenom = rec!nom
    lepren = rec!pren
    legra = rec!gra
    letel = rec!tel
    lemail = rec!mail
    leno = rec!num
    corres = lenom & " " & lepren
     
        If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
            ActiveWindow.Panes(2).Close
        End If
        If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _
            ActivePane.View.Type = wdOutlineView Or ActiveWindow.ActivePane.View.Type _
             = wdMasterView Then
            ActiveWindow.ActivePane.View.Type = wdPageView
        End If
        ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
        If Selection.HeaderFooter.IsHeader = True Then
            ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter
        Else
            ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
        End If
     
     
        Selection.Find.ClearFormatting
        Selection.Find.Replacement.ClearFormatting
        With Selection.Find
            .Text = "%%telo%%"
            .Replacement.Text = letel
            .Forward = True
            .Wrap = wdFindContinue
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
     
            With Selection.Find
            .Text = "%%corres%%"
            .Replacement.Text = corres
            .Forward = True
            .Wrap = wdFindContinue
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
     
    Selection.Find.Execute Replace:=wdReplaceAll
            With Selection.Find
            .Text = "%%mail%%"
            .Replacement.Text = lemail
            .Forward = True
            .Wrap = wdFindContinue
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
     
        Selection.Find.Execute Replace:=wdReplaceAll
            With Selection.Find
            .Text = "%%grad%%"
            .Replacement.Text = legra
            .Forward = True
            .Wrap = wdFindContinue
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
     
    ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
        With Selection.Find
            .Text = "%%team%%"
            .Replacement.Text = leno
            .Forward = True
            .Wrap = wdFindContinue
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
     
    Debug.Print lenom; vbLf; legra; vbLf; lepren; vbLf; lemail
     
    rec.Close
    dbdonnees.Close
    Set rec = Nothing
    Set dbdonnees = Nothing
    End Sub
    Voilà le code complet que j'utilise en Word.

    Cette macro fonctionne sur le principe du login name. Suivant le login, certaines informations sont changées pour correspondre aux données des différent individus.
    Ces informations sont situées dans une table sur le réseau.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  7. #7
    Membre du Club Avatar de PhRey
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 197
    Points : 67
    Points
    67
    Par défaut
    Oulaaa bcp d'infos pour moi ! Je cherche un truc plus dans ce genre ci dessous, mais ici j'ai un message d'erreur, le ".edit" lui plait pas...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Dim rst1 As Recordset
     
    ' selection de mon enregistrement dans ma table "Contacts" correspondant a l'enregistrement actif dans le formulaire d'aprés le numero de client (unique)
     
    strSQL = "SELECT * FROM Contacts " _
    & "WHERE [Numéro]=" & Me!Numéro
     
    ' J'ouvre mon enregistrement dans ma table (enfin je crois !) 
    Set rst1 = CurrentDb.OpenRecordset(strSQL)
     
    ' Je tente de mettre a jour le champs "fiche" de mon enregistrement, en y copiant le contenu du champs "Numero"
     
    If rst1("fiche") = "" Then
    rst1.Edit
    rst1("fiche") = ("Numéro")
    rst1.Update
    End If
    Mais ca coince à l'execution sur "rst1.edit" : "Erreur de compilation. Membre de methode ou données introuvable" ?

    O secours sivoplé

  8. #8
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Essaie avec
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 710
    Points : 847
    Points
    847
    Par défaut
    Salut,

    <Mode modérateur>
    Merci de penser aux balises de code !!
    <\Mode modérateur>

    <Mode forumeur>
    Déclare ton recordset avec DAO.Recordset
    <\Mode forumeur>

    A+

  10. #10
    Membre du Club Avatar de PhRey
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 197
    Points : 67
    Points
    67
    Par défaut
    Merci à vous 2 !
    J'avance, lentement mais surement !
    (avec DAO.Recordset c'est ok ! Genial ! )

    Dernier petit soucis, je n'arrive pas a me placer sur l'enregistrement en court..
    Ma requete mets à jour un autre enregistrement situé 6 lignes plus loin dans ma table ! ???

    Comment lui faire dire que c'est l'enregistrement en court qui doit etre modifié svp ? (suuuuueurs !) J'ai beau essauer des str1.seek et compagnie, rien à faire !

    J'ai tenté des trucs comme ca, mais il me dit que "numero" n'est pas l'index de cette table, or il l'est !

    rst1.Index = "Numéro"
    rst1.Seek "=", Me!Numéro

  11. #11
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    En cherchant, j'y étais arrivé avec le SQL.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  12. #12
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 710
    Points : 847
    Points
    847
    Par défaut
    Re,

    Pour mettre à jour un enregistrement avec DAO il y a plusieurs solutions. Ce qu'il faut comprendre c'est que ton recordset est complétement indépendant de ton formulaire. C'est pas parce que ton formulaire est sur un enregistrement que le recordset sera sur le même !

    Dans ton cas, puisque tu semble vouloir mettre à jour un seul enregistrement de la table, la solution que je choisirais et d'ouvrir un recordset qui ne contient que l'enregistrement que tu veux éditer. Donc mettre une condition dans ton sql du recordset (comme tu semble l'avoir fait):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strSQL = "SELECT * FROM Contacts WHERE [Numéro]=" & Me!Numéro
    Si Numéro est une clef, elle doit être unique et ton recordset ne doit contenir qu'un seul enregistrement.
    Pour le tester tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    if rs.eof = false then
        'rst1 contient au moins 1 enregistrement
        rst1.movelast
        if rst1.recordcount = 1 then
               'il y a bien un seul enregistrement
               rst1.edit
               rst1("fiche") = ("Numéro")
               rst1.Update
               msgbox "enregistrement modifié"
         else
               'il y a plusieurs enregistrements
               msgbox "enregistrement multiples"
         end if
    else
         'il n'y a aucun enregistrement
         msgbox "aucun enregistrement"
    end if

    ne pas oublier de fermer et de libérer le recordset avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    rst1.close
    set rst1 = Nothing
    EN espérant t'aider

    A+

  13. #13
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 710
    Points : 847
    Points
    847
    Par défaut
    Citation Envoyé par Heureux-oli
    En cherchant, j'y étais arrivé avec le SQL.
    En Sql ce sera surement plus simple et plus rapide.
    Je ne voulais qu'aider à finaliser le code proposé.

    A+

  14. #14
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Je l'avais mis dans mon exemple.
    Chez moi ça fonctionne nickel.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  15. #15
    Membre du Club Avatar de PhRey
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 197
    Points : 67
    Points
    67
    Par défaut
    Je tente ca et je vous dis !
    Vous etes precieux les amis !
    Je reviens !

    --------------------
    APRES ESSAIS j'ai une nouvelle erreur :



    surement dûe à la commande du debut :
    strSQL = "SELECT * FROM Contacts " _
    & "WHERE [Numéro]=" & Me!Numéro
    Car je ne vois pas apparaitre les messages box...

    Mon champs Numéro est un champs NumeroAuto généré par Access (numerotation automatique, numero unique...)

    Dailleurs qd je fais la requete a la main ca ne fonctionne pas non plus...
    Je suis proche de l'implosion.... une journée sur ce truc....

    -------------------------------

    Autre truc que je comprends pas dans le meme ordre d'idée :
    je fais un select * from contacts where 'departement' = "13"
    (pour avoir tout mes clients du departement 13)
    Ca ne me ramene qu'un enregistrement vide.... ?? alors que j'en ai pas mal en 13 !
    Par contre si je saisi > "12" là je les vois..................
    (y a mur ici, où on se cogne la tete habituellement ?)

  16. #16
    Membre du Club Avatar de PhRey
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 197
    Points : 67
    Points
    67
    Par défaut
    Tout le monde est parti ? Bouhhouuuuuu....

    Bon j'ai encore un peu fouillé, ca pourra peut etre vous aider à m'aider (!)

    Si je vire le DAO. de l'expression :
    Dim rst1 As DAO.Recordset
    ..alors j'ai l'impression d'aller un peu plus loin, mais je bloque a nouveau sur l'expression :
    rst1.Edit
    Il n'accepte pas le .Edit

    Par contre si je laisse le DAO. je bloque des le debut sur l'expression :
    strSQL = "SELECT * FROM Contacts WHERE numero = " & Me!Numero
    Il ne trouve pas l'objet du SELECT (comme décrit plus avant)

    Bref je me demande si tout ca ne serait pas un pb de "Références" manquante par hasard ? C'est juste une idée... Et si oui, laquelle ?

    La Microsoft DAO 3.6 est installée mais a part ca...

    Avez vous une idée svp (bha oui encore, je sais... ) ?

  17. #17
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Ton code est dans Word ou dans Access ?
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  18. #18
    Membre du Club Avatar de PhRey
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 197
    Points : 67
    Points
    67
    Par défaut
    Dans Access... mais je commence a piger que mon language sql n'est pas tjrs adaptable au language sql d'access.. d'ou mes surprises sur certains resultats de requetes de SELECT entre autre !
    (surtout au niveau des "" ou des ''... parfois on en met parfois non.. bref, des betises de debutant !)


    J'ai qd meme resolu mon pb avec ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim str As String
    Dim Req As QueryDef
     
     
    str = "UPDATE contacts SET fiche = 'C:\Documents and Settings\Administrateur\Mes documents\DAVID\Fiches\' & numéro & '.doc' WHERE Numéro =" & Me!Numéro
    Set Req = CurrentDb.CreateQueryDef("", str)
    Req.Execute dbFailOnError
    A l'arrivée j'ai donc un champs "fiche" contenant le chemin du document word.

    Ensuite je me sert de cette valeur pou l'ouvrir depuis mon formulaire (si le champs fiche est rempli bien sur):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CR = Me!fiche
     
    Set WordApp = CreateObject("Word.Application")
        WordApp.Visible = True
        Set WordDoc = WordApp.Documents.Open(CR, ReadOnly:=False)
    Je vous la fait courte mais ca marche !
    Peut etre pas trés catholique mais ma foi....

    Merci a vous !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. export d'un enregistrement vers word
    Par zougna dans le forum VBA Access
    Réponses: 4
    Dernier message: 09/05/2007, 15h51
  2. export état vers word problème sur l'en-tête
    Par bucasso dans le forum Access
    Réponses: 7
    Dernier message: 08/09/2006, 16h51
  3. Problème de fusion de ACCESS 9.0 vers WORD 2003
    Par kristal_972 dans le forum Access
    Réponses: 2
    Dernier message: 12/07/2006, 20h16
  4. access export etat vers un modele de document word
    Par dougzacker dans le forum Access
    Réponses: 6
    Dernier message: 07/03/2006, 02h01
  5. Exporter DataReport vers Word
    Par badrel dans le forum VBA Word
    Réponses: 2
    Dernier message: 23/12/2005, 08h33

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