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

VBScript Discussion :

VBs probleme avec Docmd


Sujet :

VBScript

  1. #1
    Invité
    Invité(e)
    Par défaut VBs probleme avec Docmd
    Bonjour a tous, voici jai un probleme pour delete une table et la réimporter.

    c'est la commande docmd qui me pose problème. (j'ai mis en gras ou ca bloque)

    si quelqu'un"un pourrais me donner des conseils , merci de votre comprehension
    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
    Dim objConnection
     
    Dim strConnODBC
     
    Dim strSce, strDest
     
    Dim arrTables, i
     
    DIM query
     
    Set objConnection = CreateObject("ADODB.Connection")
     
    set ars = CreateObject("ADODB.Recordset")
     
    objConnection.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=S:\COUTVPF\ImportTablePDM.mdb"
     
    set ars = CreateObject("ADODB.Recordset")
     
     
     
    ' Chaîne de connexion ODBC
     
    strConnODBC = "ODBC;DSN=PDMTEST;APP=Microsoft Office 2003;WSID=PC0905-6;DATABASE=PDM;Trusted_Connection=Yes"
     
     
     
    ' Créer liste des tables à importer
     
    arrTables = Array( "Circuit", "Concurrence", "Entrees", "Programmes_Salles", "Films", "Salles", "Resultat_Journalier", "Format")
     
     
     
    ' Boucler sur les tables et les importer une par une
     
    For i = LBound(arrTables) To UBound(arrTables)
     
     
     
        strSce = arrTables(i)
     
        strDest = Replace(strSce, ".", "_")
     
     
     
            If vbYes = MsgBox("Importer la table " & strDest & "?", vbYesNo, "Import de  PDM") Then
     
     
    '*******************Problème ICI *************************************
                   On Error Resume Next
     
                    DoCmd.DeleteObject acTable, strDest
     
                    On Error GoTo 0
     
     
     
                    On Error Resume Next
     
                    DoCmd.TransferDatabase acImport, "Base de données ODBC", strConnODBC, acTable, strSce, strDest
     
                    On Error GoTo 0
    '******************* fin Problème ICI *************************************
            End If
     
    Next
    L'erreur que j'ai
    Objet requis "docmd"

    source= erreur d'executions Microsoft Vbscript

    Edit : J'ai essayer plusieurs syntaxes toujours rien ...
    Dernière modification par Overcrash ; 21/12/2010 à 20h01. Motif: Motif: Pour le code, bouton # en haut à droite de l'éditeur, NON FACULTATIF. Et pensez au bouton Editer.

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    et ou as tu trouvé cette commande "docmd " ? c'est pas du vbscript ! access peu-être ?

  3. #3
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par bbil Voir le message
    et ou as tu trouvé cette commande "docmd " ? c'est pas du vbscript ! access peu-être ?

    oui sur acees ca fonctionne tres bien , jai juste copier coller le source et fais quelque modif, mais moi j'aimerais qui se lance en vbs pour le lancer en tache automatiser la nuit

    et cette commande ne fonctionne pas et je cherche son equivalent sur vbs , mais pas de sql ni de table lié.

    ca bloke juste sur cette commande

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Je ne comprends pas ce que tu veux faire.

    Dans un premier temps tu fais une connexion sur la base, cela va te permettre de lancer des requêtes par exemple, mais pas d'utiliser les méthodes Access comme DoCmd ou autre.

    Pour utiliser ces méthodes il faut créer une instance d'Access, ce que tu ne fais pas ici.

    Philippe

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Philippe JOCHMANS Voir le message
    Bonjour

    Je ne comprends pas ce que tu veux faire.

    Dans un premier temps tu fais une connexion sur la base, cela va te permettre de lancer des requêtes par exemple, mais pas d'utiliser les méthodes Access comme DoCmd ou autre.

    Pour utiliser ces méthodes il faut créer une instance d'Access, ce que tu ne fais pas ici.

    Philippe

    Le code que j'ai mis vient d'acces, et marche , je veut juste en faire un script vbs, et quand je le met en vbs, ça bloque sur "doCmd"

    je voudrais juste savoir pourquoi ça marche pas et comment résoudre le problème ?
    Dernière modification par Overcrash ; 21/12/2010 à 20h02. Motif: evitons un maximum le sms :)

  6. #6
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    bien je crois que l'on te l'as déjà dit .. doCmd est une commande Access ...tu ne peu l'utiliser que si tu as acces sur ton PC.

    et dans ce cas comme te la dis plus haut philippe tu doit créer une instance d'access..



    ou bien .. tu commence par te demander à quoi servent ces commandes et si c'est possible de faire cela sans acces.

  7. #7
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par bbil Voir le message
    bien je crois que l'on te l'as déjà dit .. doCmd est une commande Access ...tu ne peu l'utiliser que si tu as acces sur ton PC.

    et dans ce cas comme te la dis plus haut philippe tu doit créer une instance d'access..



    ou bien .. tu commence par te demander à quoi servent ces commandes et si c'est possible de faire cela sans acces.

    le problème c'est que j'ai acces vu ma base est une base .mdb, et oui j'ai tres bien acces, donc voila en vbs, je voudrais remplacer cette commande docmd, en quelque chose en vbs.

  8. #8
    Invité
    Invité(e)
    Par défaut
    Re

    Comme je l'ai dit et que confirme bbil tu ne crées pas une instance d'Access, mais une connexion à une base de données pour interroger les données des tables ou autres.

    Le code que tu veux est de détruire une table et d'en importé une autre. Comme tu travailles en ADO je te conseille de lire les tutos sur le sujet : ADO, et c'est le modèle ADOX (il y a un tuto) qui pourrait t'aider à faire ce que tu veux.

    Philippe

  9. #9
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Philippe JOCHMANS Voir le message
    Re

    Comme je l'ai dit et que confirme bbil tu ne crées pas une instance d'Access, mais une connexion à une base de données pour interroger les données des tables ou autres.

    Le code que tu veux est de détruire une table et d'en importé une autre. Comme tu travailles en ADO je te conseille de lire les tutos sur le sujet : ADO, et c'est le modèle ADOX (il y a un tuto) qui pourrait t'aider à faire ce que tu veux.

    Philippe
    Bonjour a tous

    ok mais pour exporte une table en adox d'après la faq

    Il faut utiliser la commande DoCmd.TransferDatabase pour transférer une table.
    Il vous suffit de créer un tableau contenant le nom de toutes les tables, et d'inclure la commande précédente dans une boucle qui lira un à un chaque nom de table.

    donc je suppose que dans mon script ca fonctionne normalement , mais pour supprimer

    d'après le modèle adox je dois faire ca?

    Tout d'abord ajouter les références suivantes dans votre projet :

    Microsot ADO Ext 2.X for dll and security Microsof ActiveX Data Object 2.X Library
    Puis dans un module, écrire le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Function SupprimerTable(NomTable As String) As Boolean
    On Error GoTo err
    Dim MCat As New ADOX.Catalog
    Set MCat.ActiveConnection = CurrentProject.Connection
    MCat.Tables.Delete (NomTable)
    SupprimerTable = True
    err:
    Set MCat = Nothing
    End Function
    Utilisation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox SupprimerTable("test")
    mais est ce que en le mettant dans mon vbs ça va fonctionner, je ne vois pas comment l'implanter dans mon code

    j'aurais besoin encore de plus de conseil pour l'instant je lis , mais je comprend pas comment l'implanter dans mon vbs
    Dernière modification par Overcrash ; 21/12/2010 à 20h04. Motif: Balises code. Correction fautes de frappe et mise en forme

  10. #10
    Invité
    Invité(e)
    Par défaut
    Bonjour personne n'a de conseil ? car je suis vraiment perdu

  11. #11
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par lesquate04 Voir le message
    Bonjour personne n'a de conseil ? car je suis vraiment perdu
    Bonjour
    Un petit up s'il vous plait, j'ai beau faire des effort mais je ne comprend pas comment implanter la suppression de table pour remplacer docmd delete

    grace a l'exemple cité avec le modele adox

  12. #12
    Modérateur
    Avatar de Overcrash
    Homme Profil pro
    Architecte Logiciel et responsable CRM (Salesforce)
    Inscrit en
    Mai 2008
    Messages
    1 254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Architecte Logiciel et responsable CRM (Salesforce)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 254
    Points : 1 875
    Points
    1 875
    Par défaut
    Bonjour,

    Ben au lieu d'utiliser ta méthode tu utilises l'autre je comprends pas ou tu as du mal ?

  13. #13
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Overcrash3181 Voir le message
    Bonjour,

    Ben au lieu d'utiliser ta méthode tu utilises l'autre je comprends pas ou tu as du mal ?
    Tout simplement a l'implanter ,j'ai supprimer ma ligne do cmd delete

    apres ya pas que du copier coller a faire ? les variables faut que lé déclare?

    enfin je veut juste savoir l'implanter merci
    Dernière modification par Invité ; 27/12/2010 à 17h31.

  14. #14
    Invité
    Invité(e)
    Par défaut
    Bonjour et puis je ne comprend pas pourquoi ajouter une référence, j'utilise notpad pour mon vbs,enfin je suis pas sous visual basic,

    enfin c'est vraiment important, c'est surement simple de supprimer une table?

    comment le mettre dans mon Vbs s'il vous plait et m'expliquer , j'ai beau cherché ca rentre pas .

    sur acces mon code source fonctionne tres bien mais pour le faire passer en vbs ca fonctionne pas.

  15. #15
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    inspire toi de ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Option explicit
    Dim  conn,rs
    Set conn = CreateObject("ADODB.Connection")
    conn.Open   "Driver={Microsoft Access Driver (*.mdb)};Dbq=D:\Dvp\VBS\ADO\maBase.mdb;Uid=;Pwd=;"
    Conn.Execute "Drop TABLE MATABLE"

Discussions similaires

  1. [XL-2010] Probleme avec Docmd.transferspreadsheet
    Par stargates01 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 17/02/2014, 11h19
  2. [AC-2010] Probleme avec DoCmd.TransferText acExportDelim
    Par lololebricoleur dans le forum VBA Access
    Réponses: 6
    Dernier message: 07/04/2013, 23h01
  3. [AC-2003] probleme avec DoCmd.CopyObject
    Par cacit_boss dans le forum VBA Access
    Réponses: 1
    Dernier message: 25/03/2012, 08h16
  4. batch - probleme avec Prndrvr.vbs
    Par kiko26 dans le forum Windows
    Réponses: 3
    Dernier message: 17/08/2006, 10h25
  5. probleme avec DoCmd.RunSQL
    Par Didier77 dans le forum Access
    Réponses: 5
    Dernier message: 21/07/2006, 16h09

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