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 :

erreur sur modification de la source d'un état


Sujet :

Access

  1. #1
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut erreur sur modification de la source d'un état
    Bonjour !!
    J'ai le code suivant qui bugge lorsque je souhaite changer la source de l'état.
    Le petit message d'erreur :
    Erreur d'exécution '2451':
    Le nom d'état 'xxxx' entré dans votre expression est mal orthographié ou fait référence à un état qui n'est pas ouvert ou qui n'existe pas.
    L'état est bien orthographié et il existe, faut-il qu'il soit ouvert ?? parce qu'il ne l'est pas et que je n'ai pas envie qu'il s'ouvre.
    Je suis peut être exigeant
    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
        Dim NewDb As Database
        Dim NomTable As String
     
        NomTable = "XX"
     
        ' Teste l'existance de la base, si elle existe : on la supprime et on la recrée
        If Dir("\\Chemindelabase\Base.mdb") <> "" Then
            Kill "\\Chemindelabase\Base.mdb"
        End If
        Set NewDb = DBEngine.CreateDatabase("\\Chemindelabase\Base.mdb", dbLangGeneral)
        ' Crée la table "xx" basé sur la requête "Etat xxxx"
        DoCmd.SetWarnings False
        DoCmd.RunSQL "SELECT [Etat xxxx].* INTO XX IN '\\Chemindelabase\Base.mdb'" & _
            "FROM [Etat xxxx];"
        DoCmd.SetWarnings True
        ' Modifie la source de l'état avant exportation dans la base Base.mdb puis rétablit la source
        Application.Reports("Etat xxxx").RecordSource = ("zz")
        DoCmd.TransferDatabase acExport, "Microsoft Access", "\\Chemindelabase\Base.mdb" & _
            acReport, "Etat xxxx", "xx", False
        Application.Reports("Etat xxxx").RecordSource = ("Etat yyyy")
        ' Ferme l'objet NewDb
        NewDb.Close
        'Envoi du message Lotus
        SendNotesMail "Liste des xxxxxxxx", "\\Chemindelabase\Base.mdb", "xxxxxxxx@xxxxx.fr", "", "", "Veuillez trouver ci-joint l'état concernant les xxxxxxx agréés." & vbLf & vbLf & "Salutations", True, "pwd"

  2. #2
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    N'ayant pas trouvé de solution qui me permette de régler ce pb j'ai simplement créé la base une 1ère fois puis je me contente d'écraser la table et de compacter la base.
    Je mets en résolu mais si quelqu'un a une solution je suis toujours preneur
    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
        Dim sNomBase As String
        Dim sNomBaseTmp As String
        Dim UnionDb As Database
     
        Set UnionDb = DBEngine.OpenDatabase("\\Chemindelabase\Base.mdb")
        ' Crée la table "CS" 
        DoCmd.SetWarnings False 
        DoCmd.RunSQL "SELECT [Etat xxxx].* INTO XX IN '\\Chemindelabase\Base.mdb'" & _ 
            "FROM [Etat xxxx];" 
        DoCmd.SetWarnings True 
        UnionDb .Close
        sNomBase = "\\Chemindelabase\Base.mdb"
        sNomBaseTmp = "\\Chemindelabase\Base.mdb"
        DBEngine.CompactDatabase sNomBase, sNomBaseTmp '1. Compactage dans une nouvelle base
        Kill sNomBase '2. Suppression de la base originale
        Name sNomBaseTmp As sNomBase '3. Renommer la base compactée avec le nom de la base originale
     
        'Envoi du message Lotus 
        SendNotesMail "Liste des xxxxxxxx", "\\Chemindelabase\Base.mdb", "xxxxxxxx@xxxxx.fr", "", "", "Veuillez trouver ci-joint l'état concernant les xxxxxxx agréés." & vbLf & vbLf & "Salutations", True, "pwd"

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

Discussions similaires

  1. Besoin d'aide sur modif source flash
    Par delavega dans le forum Flash
    Réponses: 0
    Dernier message: 13/12/2008, 21h32
  2. [ADO] Erreur sur modification
    Par femtosa dans le forum Bases de données
    Réponses: 9
    Dernier message: 06/06/2007, 10h35
  3. Réponses: 6
    Dernier message: 25/08/2006, 14h09
  4. erreur sur un code source basique
    Par helix_tp dans le forum Langage
    Réponses: 4
    Dernier message: 23/01/2006, 21h55
  5. [VBA] Modification de la source d'un état (report)
    Par gripoil dans le forum Access
    Réponses: 9
    Dernier message: 19/10/2005, 20h22

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