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 :

Update sur une Table Oracle


Sujet :

VBScript

  1. #1
    Inscrit
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    992
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 992
    Points : 217
    Points
    217
    Par défaut Update sur une Table Oracle
    J'ai trouvé un code pour se connecter sur une table d'une base de donnée,
    pour mettre à jour les données d'un champ, tous celà sous Access,

    je ne sais pas si il y"a une similitude entre VB Script et Access,
    mais est ce qu'on pourrait l'adapter afin qu'il fonctionne sous VB Script (compilateur VBS Edit) ?

    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
    Dim oRst as DAO.Recordset
    Dim oDb as DAO.Database
    Set oDb=CurrentDb
    Set oRst=oDb.OpenRecordset("REQ",dbOpenTable)
    While Not oRst.EOF
      'Passe en mode modification
      oRst.Edit
      'Affecte la nouvelle Valeur
      oRst.Fields("RQ_REQ_AUTHOR").Value="Créée Par"
        'Met à Jour
      oRst.Update
      'Passe au suivant
      oRst.MoveNext
    Wend
     
    'Libération des objets
    oRst.Close
    oDb.Close
    Set oRst=Nothing
    Set oDb=Nothing
    Merci d'avance.

  2. #2
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Sous Access c'est du VBA. Donc oui forcément il y a une similitude avec le VBS, après tout c'est du VB nan ?

    compilateur VBS Edit
    Un compilateur en VB ?
    VBS est un langage de script il utilise un interpréteur !

    Je pense que cette partie est à réadapter.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim oRst as DAO.Recordset
    Dim oDb as DAO.Database
    Set oDb=CurrentDb
    Set oRst=oDb.OpenRecordset("REQ",dbOpenTable)
    Bonne chance
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  3. #3
    Inscrit
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    992
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 992
    Points : 217
    Points
    217
    Par défaut
    Non en faite j'ai oublié de mentionner, que on ne connait pas trop
    cet environnelent, et que ça va être mission impossible de reprendre ce code access en VBS, vu qu'on sent bien que ce code là fait l'affaire,
    mais on voudrait à tous prix le transformer en VBS.

    Merci encore une fois pour vôtre aide.

  4. #4
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Le problème est là :
    Je ne sais pas si CurrentDb est un objet fournis par Access ou autre chose.
    Si c'est le premier cas, en VBS il n'est aps disponible directement, il faut le récupérer à partir d'un objet parent peut être (méthode createobject de VBS).
    Sur l'exemple de code ci-dessous les choses sont faite différement, on se connecte à la database à partir du driver :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    'database
    Set dbAccess = CreateObject("ADODB.Connection")
    StrAccess = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & PathMDB
    dbAccess.Open(StrAccess)
    'Recordset
    Set Rs = CreateObject("ADODB.Recordset")
    Rs.Open "SELECT * FROM TableClient" , Straccess
    Essayer cela voir si cela marche.

    Je vous mets tout le code que j'ai trouvé sur l'utilisation d'Access en VBS :
    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
    '---- CursorTypeEnum Values ----
    Const adOpenForwardOnly = 0 , adOpenKeyset = 1, adOpenDynamic = 2, adOpenStatic = 3
    '---- LockTypeEnum Values ----
    Const adLockReadOnly = 1, adLockPessimistic = 2, adLockOptimistic = 3, adLockBatchOptimistic = 4
    Const ForReading=1, ForWriting =2
    'Main
    Call UpdateMDB(WScript.Arguments(0),WScript.Arguments(1)
    ' exemple d'appel :
    ' updateMDB.vbs "C:\Temp\MaBase.mdb" "C:\Temp\Donnees\clients.txt"
    ' End Main ------------------------------------------------------
    Sub UpdateMDB(PathMDB,PathFile)
    Dim DBAccess, Rs, NameField, DataToAdd
    'database
    Set dbAccess = CreateObject("ADODB.Connection")
    StrAccess = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & PathMDB
    dbAccess.Open(StrAccess)
    'Recordset
    Set Rs = CreateObject("ADODB.Recordset")
    Rs.CursorType = adOpenStatic
    Rs.LockType = adLockOptimistic
    Rs.Open "SELECT * FROM TableClient" , Straccess
    Rs.AddNew
    'Text file
    Set FSO = CreateObject("Scripting.FileSystemObject")
    Set FileRead = FSO.openTextFile(PathFile ,ForReading, True)
    		Do While Not FileRead.AtEndOfStream 	
        		NameField = FileRead.ReadLine ' lecture ligne impaire = nom du champ
        		DataToAdd = FileRead.ReadLine ' lecture ligne paire = donnée correspondante
        	' fill database fields
    		Rs.Fields(NameField) = DataToAdd
        	Loop
    FileRead.Close
    Next 
    Rs.Update
    Rs.Close
    Set Rs = Nothing
    dbaccess.Close
    Set dbaccess= Nothing
    End Sub


    Pour ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim oRst as DAO.Recordset
    Dim oDb as DAO.Database
    Cela donne ça en VBS :
    Pas de typage des variables.

    Après je ne peux pas vous aider plus, moi Access je n'en ai jamais fait
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

Discussions similaires

  1. [SQL] update sur une table de la relation
    Par comme de bien entendu dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 07/01/2009, 14h24
  2. Réponses: 2
    Dernier message: 15/07/2008, 09h00
  3. UPDATE sur une table (mot réservé)
    Par calp25 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 20/04/2008, 22h33
  4. Problème de requête Access sur une table Oracle
    Par Poulki dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 31/01/2008, 16h57
  5. Réponses: 5
    Dernier message: 08/01/2007, 21h03

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