tedtheOrs
Messages postés37Date d'inscriptionsamedi 12 avril 2008StatutMembreDernière intervention27 janvier 2010
-
12 avril 2008 à 21:35
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 2018
-
13 avril 2008 à 18:13
Yop
Voilà la situation:
Une feuille Excel avec 2 colonnes "Articles" et "Tarif". Chaque article est défini par une référence à 8 chiffres.
Exemple:
ligne1: l'article 12345678 coute 1 ? donne A1=12345678 et B1=1
ligne2: l'article 87654321 coute 5 ? donne A1=87654321 et B1=5
Une base Access (que j'appellerai "Mabase") avec (entre autres) une
table (que j'appellerai "MaTable") avec (entre autres) 2 colonnes:
[Articles] et [Tarifs]...
Mon but est de faire une macro (VBA donc) sous Excel qui me permettent
de "mettre à jour" la colonne [Tarif] à partir de la valeur "Article"...
Le net regorge de tuto pour l'export de données Excel vers Access, mais
il est généralement question d'export "massif" à savoir: à partir d'une
feuille Excel, génération d'une table excel...
J'ai cependant trouvé ça sur les tutos du site:
<!-- BEGIN TEMPLATE: bbcode_code -->
Code :
<!--[if !IE]><-->
<!---->
<!--[endif]-->
<!--[if IE]>
<![endif]-->
Sub exportDonnées_DAO()
Dim Db As DAO.Database
Dim strSQL AsString
Set Db = DAO.OpenDatabase("C:\dossier\Mabase.mdb", False, False)
strSQL = "INSERT INTO [MaTable] VALUES('999','8','DVP','7','mimi','22/10/2007')"
Db.Execute strSQL
Db.Close
EndSub
<!-- END TEMPLATE: bbcode_code -->
Comment faut il coder la requete pour une mise à jour ? Sachant qu'il faudrait balayer l'ensemble de la colonne A
D'avance merci!
Bonne soirée
@+
Ted
[EDIT] Au fait, c'est mon premier message, donc si j'ai dérogé d'une manière ou d'une autre à la charte du forum, il n'est pas trop tard pour me remettre dans le droit chemin!
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201822 13 avril 2008 à 15:01
Bienvenue,
Je ne pense pas que tu aies dérogé de façon quelconque... Le message est clair et posté dans la bonne section (VBA), ce qui est assez rare...
Pour ton problème, tu peux utiliser l'Automation, c'est-à-dire que tu crées dans Excel des variables qui pointent vers Access et ta base. Tu pourrais faire des recherches sur
Access.Application
Ensuite, tu peux utiliser DoCmd.TransferSpreadsheet pour exporter d'un coup les données de ta feuille. Recherche aussi cette commande...
MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
tedtheOrs
Messages postés37Date d'inscriptionsamedi 12 avril 2008StatutMembreDernière intervention27 janvier 2010 13 avril 2008 à 18:02
Bon, j'ai essayé avec ca, mais ca plante sur l'instruction en gras...
Dim Db As DAO.Database
Dim strSQL As String
Dim demande
Dim commentaire
Dim i
For i = 4 To 30
demande = Range("B" & i)
commentaire = Range("E" & i)
Do Until demande = Null
Set Db = DAO.OpenDatabase("F:\Generali\ma_bas.mdb", False, False) strSQL "UPDATE Demande ou Projet SET Réponse commentaire WHERE IdDemande = '" & demande & "'"
Db.Execute strSQL Db.Close
Loop
Next i
End Sub
Des idées?
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201822 13 avril 2008 à 18:13
Si tu tiens à y aller avec le SQL, j'essaierais comme ceci pour la connexion
Set Db = Workspaces(0).OpenDatabase("F:\Generali\ma_bas.mdb", False, False)
Pour la requête, je ne sais pas... Je n'utilise jamais ce genre de requête...
J'y vais plutôt avec Edit (modification) ou AddNew (ajout) puis Update pour mettre à jour.
MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI