Se connecter avec
S'enregistrer | Connectez-vous

Comment écrire dans une base de données ODBC via Excel (VBA)

Dernière réponse : dans Programmation


Bonjour à tous,

Je travail avec une base de données ODBC du nom de CACHÉ (de la compagnie Intersystems). Jusqu'à maintenant j'avais seulement à faire des requêtes via Excel (menu DATA ... ) pour extraire des data de la BDD. Cependant, pour un nouveau projet, j'aurais besoin de pouvoir écrire de nouvelles informations dans la base de données en utilisants EXCEL / VBA.

En résumé,
Requête initiale ... modifications et /ou ajout de données ... upload des infos à partir EXCEL vers la BDD

Y'a-t-il des fonctions d'EXCEL / VBA qui me permettraient d'écrire dans la BDD directement ?
Dois-je intégrer du SQL dans des macros VBA ???

Par ou dois-je commencer pour apprendre à écrire dans ma base de données ???

Merci de votre aide

Shark
Lassé par la pub ? Créez un compte

Pour attaquer une base de données via Excel :

  1. Private wrk As workspace
  2. Private connect As Connection
  3.  
  4. Public Function Connection() As Boolean
  5. On Error GoTo sortie_erreur
  6.  
  7. Connection = False
  8. ' Create ODBCDirect Workspace object.
  9. Set wrk = CreateWorkspace("NewODBCWorkspace", "admin", "", dbUseODBC)
  10. Set connect = wrk.OpenConnection("BASE", dbDriverComplete, , "ODBC;DSN=BASE;UID=toto;PWD=toto;DBQ=BASE")
  11. If Not connect Is Nothing Then Connection = True
  12.  
  13. sortie:
  14. Exit Function
  15. sortie_erreur:
  16. MsgBox "Connection : " & Err.Description
  17. Resume sortie
  18. End Function
  19.  
  20. Private Sub FinConnection()
  21. On Error GoTo sortie_erreur
  22.  
  23. connect.Close
  24. Set connect = Nothing
  25.  
  26. sortie:
  27. Exit Sub
  28. sortie_erreur:
  29. MsgBox "FinConnection: " & Err.Description
  30. Resume sortie
  31. End Sub


Il suffit de changer BASE et par la base de données et les toto par les infos de connection ODBC.

Ensuite à partir de connect tu peux utiliser toutes les fonctions qui permettre de travailler avec la base de données, voir dans currentdb.CreateQueryDef, OpenRecordset, currentdb.Exceute.
Lassé par la pub ? Créez un compte