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

VBA Access Discussion :

problème update de table VBA vers table oracle


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 47
    Points : 23
    Points
    23
    Par défaut problème update de table VBA vers table oracle
    Bonjour
    j'ai une difficulté je n'arrive pas à la déceler.
    la version de oracle que j'utilise est la 10g
    j'ai effectué ma connexion ODBC avec le driver, maintenant
    j'ai une table liée (agis_insured) dans access et je voudrais enregistrer des données dans cette table liée à travers une autre table (client). mais ça bloque au niveau de la mise à jour. je ne sais pas vraiment ce qui bloque.
    je joins le code en bas, aidez moi SVP merci

    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
    Dim Bds As Database
    Dim rs As Recordset
    DoCmd.RunSQL "UPDATE cod_res_num INNER JOIN client ON cod_res_num.Accountt = client.OWNER_NUMM SET cod_res_num.statut_compte = -1, client.statut_compte=-1 WHERE (((client.OWNER_NUMM) Like [cod_res_num].[Accountt]));"
    DoCmd.SetWarnings False
    Set Bds = CurrentDb
    Set rs = Bds.OpenRecordset("AGIS_INSURED", dbOpenDynaset)
    rs.MoveFirst
    While Not rs.EOF
    rs.AddNew
    rs("BRANCHH") = 15
    rs("INSUREDD") = txtnumcompte.Value
    rs("INS_SUB_TYPEE") = 2
    rs("TITLEE") = txttitre.Value
    rs("NAMEE") = Nz(txtnom, "")
    rs("T_O_B") = Null
    rs("D_O_B") = txtdatenais.Value
    rs("NATIONALITY") = txtnationa.Value
    rs("ACTIVEE") = 1
    rs("PAYMENTT") = 1
    rs("COL_REF") = Null
    rs("ADDRESSS") = txtadresse.Value
    rs("COUNTRYY") = txtpays.Value
    rs("REGIONN") = Null
    rs("CITYY") = txtville.Value
    rs("STREETT") = txtrue.Value
    rs("BLOCKK") = txtimmeuble.Value
    rs("PBOXX") = txtbp.Value
    rs("D_O_B") = txtdatenais.Value
    rs.Update " ça bloque à ce niveau"
    Wend
    rs.Requery
    rs.Close
    Set rs = Nothing
    Set db = Nothing
    merci

  2. #2
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 108
    Points : 5 231
    Points
    5 231
    Par défaut
    bonsoir,

    As-tu bien les droits d'écriture et tout ? Arrives-tu à lire des infos sur la base

    Voici pour info la méthode que j'utilise avec succès après pas mal de tatonnements
    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 connect As ADODB.Connection 'crée connection vers base oracle
    Dim Cmd As ADODB.Command 'effectue commande sur la base
    Dim rso As ADODB.Recordset, rsp As ADODB.Recordset 'recordset pour base Oracle
     
      'initialisations pour requetes sur la base
      Set connect = New ADODB.Connection
      connect.Open "MaBase", "MonLogin", "MonPasword"
      connect.CursorLocation = adUseClient
      Set Cmd = New ADODB.Command
      Cmd.CommandType = adCmdText
      Set Cmd.ActiveConnection = connect
     
      'exemple de lecture
      Cmd.CommandText = "select cd_ofs, cd_gamme, n_lien from ofs where id_ofs=12"
      Set rso = Cmd.Execute
      If not rso.EOF Then  MsgBox "L'OF 12 utilise la gamme " & rso!cd_gamme
     
      'exemple d'écriture
      Cmd.CommandText = "INSERT INTO heure (cd_gamme, temps) VALUES (" & rso!cd_gamme & ", 2);"
      Cmd.Execute

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 47
    Points : 23
    Points
    23
    Par défaut
    Bonjour

    Merci de me répondre nico
    j'ai effectivement tous les droits puisque j'arrive à inserer des enregistrement par pl/sql.
    je vais faire comme toi, et je te tiens au courant.

  4. #4
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 47
    Points : 23
    Points
    23
    Par défaut
    je reviens sur mon problème, j'ai essayé avec ta méthode nico84 mais j'avais l'erreur" l'appel a echoué"
    j'ai recrée un ODBC avec pour pilote oracle for ora92
    j'ai liée la table maintenant j'ai cette erreur
    ODBC : Échec d’une insertion dans la table liée <table>. (Erreur 3155)
    et même je n'arrive plus à modifier quoi que ce soit dans la table liée en direct. Est ce un problème de droit. si oui pourquoi j'arrive à inserer dans pl/sql avec mon profil mais je ne puis le faire dans access?
    quelqu'un a-t-il une idée?

  5. #5
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 108
    Points : 5 231
    Points
    5 231
    Par défaut
    Bonjour,

    Arrives-tu à lire avec ma méthode ?

  6. #6
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 47
    Points : 23
    Points
    23
    Par défaut
    oui j'arrive à lire avec ta méthode mais ce n'est pas là où ça bloque le fait est que même lorsque j'ouvre la date et que je veux y insérer des données, ça ne prend pas ça me dit ECHEC DE CONNEXION A LA TABLE LIEE.
    je me demande bien où se situe le problème, l'administrateur de notre base de données m'a pourtant assuré que j'avais des droits de création dans la base. je prends toute suggestion

  7. #7
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 108
    Points : 5 231
    Points
    5 231
    Par défaut
    A l'époque de mémoire j'avais testé 4 protocles ADO, DAO, ADODB et OO4O

    Je n'avais réussi à écrire qu'avec ADODB et je suis donc resté avec cette méthode... Pour info j'utilise Access 2000

    Regarde du coté de tes références VB ou de ton fichier tnsname.ora ?

  8. #8
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 47
    Points : 23
    Points
    23
    Par défaut
    salut
    moi j'utilise access 2003.
    je vais encore chercher. je vais essayer de créer un etable vide dans oracle je vais la lier dans access et voir si je peux ajouter des enregistrements.
    merci.

  9. #9
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 108
    Points : 5 231
    Points
    5 231
    Par défaut
    Il se peut aussi que ton insert ne respecte pas les règles d'intégrité Oracle

  10. #10
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 47
    Points : 23
    Points
    23
    Par défaut
    comment est ce que je vais donc pour que mon insert respecte les règles d'integrité de oracle? y'a-til un code à écrire?

  11. #11
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 108
    Points : 5 231
    Points
    5 231
    Par défaut
    Et non, il faut aller voir dans les contraintes Oracle, par exemple tables liées entre elles, champ obligatoire... comme dans Access !

    Le plus simple est de faire la même écriture directement dans Oracle et de voir si elle est acceptée

Discussions similaires

  1. [XL-2007] Problème Requête avec Jointure de plusieurs Tables VBA
    Par fleur_d_eden dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 29/05/2012, 11h03
  2. [AC-2003] Découper une table en plusieurs tables VBA.
    Par Tinien dans le forum VBA Access
    Réponses: 6
    Dernier message: 07/12/2009, 09h48
  3. [WD14] Drag And Drop table hiérarchique vers table
    Par Thanor dans le forum WinDev
    Réponses: 6
    Dernier message: 24/11/2009, 12h20
  4. [VBA] Export table access vers fichier.txt
    Par fabiolous dans le forum VBA Access
    Réponses: 2
    Dernier message: 23/04/2007, 17h55
  5. Réponses: 6
    Dernier message: 09/05/2006, 10h21

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