Lancer une requete (UPDATE et DELETE) access depuis Excel

j79

XLDnaute Nouveau
Bonjour à tous,

Je récupère dans mon fichier excel, une liste de valeur issue d'un table 'data' elle même dans une base ACCESS.

Jusque là pas de soucis, j'ai créé un bouton qui actualise la page puisque la table ACCESS est en alimentation continue.

Je voudrais créer un deuxième bouton qui fasse deux choses :
1 - Copier les donnée de ma table ACCESS data dans la table ACCESS data_histo
2 - Supprimer les données de la table data

J'ai testé deux solutions :
1 - J'ai créé les requêtes dans ACCESS, les ai testées, elles sont fonctionnelles. Mais je ne réussi pas à les appeler via VBA.
2- J'ai créé les requêtes qui vont bien dans MS SQL QUERY et ai enregistré le tout dans des fichiers .dqy mais je en sais pas comment appeler ces fichiers depuis VBA.

Voilà je suis complètement débutant dans VBA, c'est mon premier jour et je bloque un peu là, si quelqu'un pouvait me donner un conseil, je lui en serait très reconnaissant.

Jé'
 

j79

XLDnaute Nouveau
Re : Lancer une requete (UPDATE et DELETE) access depuis Excel

Bonjour,

Merci mais avec mon petit niveau ça me parait pas si simple que ça.

Dans les thèmes abordés :
Attachement Excel/Access
Lecture DAO
Saisie Formulaire
Interrogation DAO
Scrutation Table
Lecture ADO
Mise à jour ADO
Création ADO

Je ne vois pas de notions se rapportant à ma problématique il me semble.
Chaque thématique met en évidence une interaction de données entre Excel et ACCESS.
Dans mon cas, je veux juste exécuter du SQL sur ma table Access sans importer de données dans Excel.

Jé'
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Lancer une requete (UPDATE et DELETE) access depuis Excel

>Dans mon cas, je veux juste exécuter du SQL sur ma table Access sans importer de données dans Excel.

Code:
Sub UpdateAccess()
  ChDir ActiveWorkbook.Path
  Set cnn = New ADODB.Connection
  cnn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=Access2000.mdb"
  Sql = "UPDATE client SET Nom_Client=Ucase(Nom_Client) "
  cnn.Execute Sql
  cnn.Close
End Sub

Sub UpdateAccessADO2()
   ChDir ActiveWorkbook.Path
   Set cnn = New ADODB.Connection
   cnn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=Access2000.mdb"
   Sql = "UPDATE client SET Salaire=3500 WHERE Nom_Client='Dupont'"
   cnn.Execute Sql
   cnn.Close
End Sub

Pour mettre à jour le salaire et la ville de Dupont:

UPDATE client SET Salaire=5500, Ville='Bordeaux' WHERE Nom_Client='Dupont'

Code:
Sub UpdateAccessADO3()
  repertoire = ThisWorkbook.Path & "\"
  Set cnn = New ADODB.Connection
  cnn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & repertoire & "Access2000.mdb"
  msalaire = 5500
  mville = "Bordeaux"
  mnom = "Dupont"
  Sql = "UPDATE client SET Salaire=" & msalaire & ", Ville='" & mville & "' WHERE Nom_Client='" & mnom & "'"
  [A1] = Sql
  MsgBox Sql
  cnn.Execute Sql
  cnn.Close
End Sub
 
Dernière édition:

j79

XLDnaute Nouveau
Re : Lancer une requete (UPDATE et DELETE) access depuis Excel

Au cas ou cela pourrait aider d'autres personnes, voici le code de @BOISGONTIER que j'ai modifié pour l'adapter à mon cas :

>Envoi de code SQL à la base de donnée pour copier les nouvelles données de la table ALIM_SVI vers la table ALIM_SVI_histo

Sub histo()
Set cnn = New ADODB.Connection
cnn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\\FRER0666\routage_hdx$\routage.mdb"
Sql = "INSERT INTO ALIM_SVI_histo SELECT ALIM_SVI.Id, ALIM_SVI.CLID, ALIM_SVI.SAISIE, ALIM_SVI.date_heure FROM ALIM_SVI;"
cnn.Execute Sql
cnn.Close
End Sub

>Envoi de code SQL à la base de donnée pour purger la table ALIM_SVI

Sub freshSVI()
Set cnn = New ADODB.Connection
cnn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\\FRER0666\routage_hdx$\routage.mdb"
Sql = "DELETE ALIM_SVI.Id, ALIM_SVI.CLID, ALIM_SVI.SAISIE, ALIM_SVI.date_heure FROM ALIM_SVI;"
cnn.Execute Sql
cnn.Close
End Sub


Bonnes fêtes de fin d'année à tous,
Jé'
 

Discussions similaires

Réponses
2
Affichages
395
Réponses
3
Affichages
749

Statistiques des forums

Discussions
312 156
Messages
2 085 815
Membres
102 991
dernier inscrit
remyexcel