GNT sans publicité, site mobile, fonctionnalitées exclusives...

Import access, traitement, puis ré-export dans access.

Le
Thorkhas
Bonjour !

Alors voila Mon problème concerne dans un premier temps Microsoft Query
(version 2002, avec access et excel 2002).

Actuellement, j'extrais des données d'une base access vers excel pour
procéder à un retraitement. J'ai créé une requête pour l'occasion, assez
complexe (elle se base sur d'autres requetes croisées dynamiques, des
requetes union, et deux tables plates classiques), que j'exporte manuellement
vers un fichier excel dans lequel je fais mon traitement.

J'aimerais automatiser cette tache (ie, avoir en real time le résultat de ma
requete dans un onglet de mon fichier excel).

Le problème, c'est que quand je fais outil/données externes/créer une
requete, que je selectionne ma base (sur un lecteur réseau mais ca ne pose a
priori pas de probleme) puis ma requete, ca me dit : "impossible d'accéder à
la table : <monchemin>\<monfichier>.<marequete>"

Je décide alors de créer ma requete en manuel directement dans query.

J'ajoute les tables (du fichier access donc) dont j'ai besoin. Puis une
requete croisé qui passe sans probleme. Puis une autre requete croisée. La
probleme : il me dit qu'il ne peut pas y accéder. Comme il s'agit d'une
requete croisée utilisant les données d'une autre requete, de type UNION
écrite directement en SQL dans accessn je me dis que le probleme vient de la.
J'essaie alors d'importer cette requete et la surprise, elle marche.

Je suis donc coincé à ce niveau la ! je ne peut pas inclure une des requetes
n,écessaires à ma requete finale Je ne comprends vraiment pas pourquoi
elle coince !

Si quelqu'un a une idée (utiliser autre chose dans query? propriétés de
cette requete croisée? )

Sinon ma deuxieme question.. en anticipant..

J'ai trouvé sur ce newsgroup une macro permettant d'exporter des données
excel vers access. C'est bien mais vous avez du comprendre que je voulais
retraiter des données sous excel pour les réexporter dans Access (pour
certaines raisons il est plus simple de procéder comme cela plutot que
d'aller directement modifier dans l'application access). Probleme, je veux
faire une mise a jour, pas ajouter des données.

Je connais le SQL "classique", à mon avis il faudrait une requete du style
(en adaptant d'apres ce que j'ai compris en lisant la requete exemple) :

UPDATE table IN c:\fuichieaccess.mdb SELECT champ1,champ2 FROM
[MaPlageDeDonnées] WHERE table.cle = [MaPlageDeDonnées].cle

Ie, je veux faire en sorte de mettre a jour champ1 et champ2 dans access
sachant qu'on a le meme champ pour la clé.

exactement l'equivalent en SQL "classique" : UPDATE a.champ1,a.champ2 FROM
tableAccess a,tableExcel e WHERE t.cle=a.cle SET
a.champ1=e.champ1,a.champ2=e.champ2

Voici la requete exemple que j'ai trouvée et qui permet de simplement
introduire des données (et pas de mettre a jour) :

INSERT INTO toto IN (c:\machin.mdb' SELECT * FROM [Plage]

Merci beaucoup !

Cordialement,

JC Montigny
Lire les 8 réponses

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
JB
Le #4080271
Bonsoir,

-Requête de Maj d'une table Access en DAO:

Sub MajAccessUpdate()
'cocher Microsoft DAO 3.6 dans Outils/Références
Dim bd As DAO.Database
Set bd = OpenDatabase(ActiveWorkbook.FullName, False, False, "excel
8.0")
Sql = "UPDATE client IN
'C:mesdocexcelmacronouveau1001exemplesaccess2000.mdb' SET
Nom_Client=Ucase(Nom_Client) "
bd.Execute Sql
bd.Close
Set bd = Nothing
End Sub

(Je n'ai jamais rencontré de pb lors de connection à des requêtes
Access d'une BD en réseau)

Cordialement JB


Bonjour !

Alors voila... Mon problème concerne dans un premier temps Microsoft Qu ery
(version 2002, avec access et excel 2002).

Actuellement, j'extrais des données d'une base access vers excel pour
procéder à un retraitement. J'ai créé une requête pour l'occasi on, assez
complexe (elle se base sur d'autres requetes croisées dynamiques, des
requetes union, et deux tables plates classiques), que j'exporte manuelle ment
vers un fichier excel dans lequel je fais mon traitement.

J'aimerais automatiser cette tache (ie, avoir en real time le résultat de ma
requete dans un onglet de mon fichier excel).

Le problème, c'est que quand je fais outil/données externes/créer u ne
requete, que je selectionne ma base (sur un lecteur réseau mais ca ne p ose a
priori pas de probleme) puis ma requete, ca me dit : "impossible d'accé der à
la table :
Je décide alors de créer ma requete en manuel directement dans query.

J'ajoute les tables (du fichier access donc) dont j'ai besoin. Puis une
requete croisé qui passe sans probleme. Puis une autre requete croisé e. La
probleme : il me dit qu'il ne peut pas y accéder. Comme il s'agit d'une
requete croisée utilisant les données d'une autre requete, de type UN ION
écrite directement en SQL dans accessn je me dis que le probleme vient de la.
J'essaie alors d'importer cette requete et la surprise, elle marche.

Je suis donc coincé à ce niveau la ! je ne peut pas inclure une des r equetes
n,écessaires à ma requete finale... Je ne comprends vraiment pas pour quoi
elle coince !

Si quelqu'un a une idée (utiliser autre chose dans query? propriété s de
cette requete croisée? ...)

Sinon ma deuxieme question.. en anticipant..

J'ai trouvé sur ce newsgroup une macro permettant d'exporter des donn ées
excel vers access. C'est bien mais vous avez du comprendre que je voulais
retraiter des données sous excel pour les réexporter dans Access (pour
certaines raisons il est plus simple de procéder comme cela plutot que
d'aller directement modifier dans l'application access...). Probleme, je veux
faire une mise a jour, pas ajouter des données.

Je connais le SQL "classique", à mon avis il faudrait une requete du st yle
(en adaptant d'apres ce que j'ai compris en lisant la requete exemple) :

UPDATE table IN c:fuichieaccess.mdb SELECT champ1,champ2 FROM
[MaPlageDeDonnées] WHERE table.cle = [MaPlageDeDonnées].cle

Ie, je veux faire en sorte de mettre a jour champ1 et champ2 dans access
sachant qu'on a le meme champ pour la clé.

exactement l'equivalent en SQL "classique" : UPDATE a.champ1,a.champ2 FROM
tableAccess a,tableExcel e WHERE t.cle=a.cle SET
a.champ1=e.champ1,a.champ2=e.champ2

Voici la requete exemple que j'ai trouvée et qui permet de simplement
introduire des données (et pas de mettre a jour) :

INSERT INTO toto IN (c:machin.mdb' SELECT * FROM [Plage]

Merci beaucoup !

Cordialement,

JC Montigny


JB
Le #4080241
Update en ADO:

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

JB


Bonjour !

Alors voila... Mon problème concerne dans un premier temps Microsoft Qu ery
(version 2002, avec access et excel 2002).

Actuellement, j'extrais des données d'une base access vers excel pour
procéder à un retraitement. J'ai créé une requête pour l'occasi on, assez
complexe (elle se base sur d'autres requetes croisées dynamiques, des
requetes union, et deux tables plates classiques), que j'exporte manuelle ment
vers un fichier excel dans lequel je fais mon traitement.

J'aimerais automatiser cette tache (ie, avoir en real time le résultat de ma
requete dans un onglet de mon fichier excel).

Le problème, c'est que quand je fais outil/données externes/créer u ne
requete, que je selectionne ma base (sur un lecteur réseau mais ca ne p ose a
priori pas de probleme) puis ma requete, ca me dit : "impossible d'accé der à
la table :
Je décide alors de créer ma requete en manuel directement dans query.

J'ajoute les tables (du fichier access donc) dont j'ai besoin. Puis une
requete croisé qui passe sans probleme. Puis une autre requete croisé e. La
probleme : il me dit qu'il ne peut pas y accéder. Comme il s'agit d'une
requete croisée utilisant les données d'une autre requete, de type UN ION
écrite directement en SQL dans accessn je me dis que le probleme vient de la.
J'essaie alors d'importer cette requete et la surprise, elle marche.

Je suis donc coincé à ce niveau la ! je ne peut pas inclure une des r equetes
n,écessaires à ma requete finale... Je ne comprends vraiment pas pour quoi
elle coince !

Si quelqu'un a une idée (utiliser autre chose dans query? propriété s de
cette requete croisée? ...)

Sinon ma deuxieme question.. en anticipant..

J'ai trouvé sur ce newsgroup une macro permettant d'exporter des donn ées
excel vers access. C'est bien mais vous avez du comprendre que je voulais
retraiter des données sous excel pour les réexporter dans Access (pour
certaines raisons il est plus simple de procéder comme cela plutot que
d'aller directement modifier dans l'application access...). Probleme, je veux
faire une mise a jour, pas ajouter des données.

Je connais le SQL "classique", à mon avis il faudrait une requete du st yle
(en adaptant d'apres ce que j'ai compris en lisant la requete exemple) :

UPDATE table IN c:fuichieaccess.mdb SELECT champ1,champ2 FROM
[MaPlageDeDonnées] WHERE table.cle = [MaPlageDeDonnées].cle

Ie, je veux faire en sorte de mettre a jour champ1 et champ2 dans access
sachant qu'on a le meme champ pour la clé.

exactement l'equivalent en SQL "classique" : UPDATE a.champ1,a.champ2 FROM
tableAccess a,tableExcel e WHERE t.cle=a.cle SET
a.champ1=e.champ1,a.champ2=e.champ2

Voici la requete exemple que j'ai trouvée et qui permet de simplement
introduire des données (et pas de mettre a jour) :

INSERT INTO toto IN (c:machin.mdb' SELECT * FROM [Plage]

Merci beaucoup !

Cordialement,

JC Montigny


MichDenis
Le #4080151
Utilisation ADO et utilisation d'une requête stockée

Tu peux faire ta requête directement dans Acces et utiliser ADO et lui demander
d'exécuter ta requête et te retourner les enregistrements dans un recordset.

Un petit exemple de code ... comme Acces est planté, je n'ai pas
pu effectuer de test ...

Évidemment, tu dois ajouter la bibliothèque : "Microsoft Activex Data 2.x Librairy"
'---------------------------------------
Sub test()
Dim C As Integer
Dim cnt As New ADODB.Connection
Dim Rst As New ADODB.Recordset

BaseAccess = ThisWorkbook.Path & "" & "Comptoir.mdb"
'Création d'une connection avec la base de données.
cnt.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & BaseAccess

'[Ten Most Expensive Products] = Nom de la requête
'existant dans Access, les crochets sont là à cause
'des espaces dans le nom de la requête...

cnt.CommandText = "[Ten Most Expensive Products]"
cnt.CommandType = adCmdStoredProc
Set Rst = com.Execute

If (Rst.State & adStateOpen) Then
MsgBox "Recordset is open... records returned."
'Pour récupérer le nom des champs
Do
Range("A1").Offset(, C) = Rst.Fields(C).Name
C = C + 1
X = X + 1
Loop Until X = Rst.Fields.Count
'Récupérer les enregistrements
Range("A1").Offset(1).CopyFromRecordset Rst
Rst.Close: Set Rst = Nothing: cnt.Close: Set cnt = Nothing
Else
MsgBox "Recordset not open... no records."
cnt.Close: Set cnt = Nothing
End If

End Sub
'---------------------------------------




"Thorkhas"
Bonjour !

Alors voila... Mon problème concerne dans un premier temps Microsoft Query
(version 2002, avec access et excel 2002).

Actuellement, j'extrais des données d'une base access vers excel pour
procéder à un retraitement. J'ai créé une requête pour l'occasion, assez
complexe (elle se base sur d'autres requetes croisées dynamiques, des
requetes union, et deux tables plates classiques), que j'exporte manuellement
vers un fichier excel dans lequel je fais mon traitement.

J'aimerais automatiser cette tache (ie, avoir en real time le résultat de ma
requete dans un onglet de mon fichier excel).

Le problème, c'est que quand je fais outil/données externes/créer une
requete, que je selectionne ma base (sur un lecteur réseau mais ca ne pose a
priori pas de probleme) puis ma requete, ca me dit : "impossible d'accéder à
la table :
Je décide alors de créer ma requete en manuel directement dans query.

J'ajoute les tables (du fichier access donc) dont j'ai besoin. Puis une
requete croisé qui passe sans probleme. Puis une autre requete croisée. La
probleme : il me dit qu'il ne peut pas y accéder. Comme il s'agit d'une
requete croisée utilisant les données d'une autre requete, de type UNION
écrite directement en SQL dans accessn je me dis que le probleme vient de la.
J'essaie alors d'importer cette requete et la surprise, elle marche.

Je suis donc coincé à ce niveau la ! je ne peut pas inclure une des requetes
n,écessaires à ma requete finale... Je ne comprends vraiment pas pourquoi
elle coince !

Si quelqu'un a une idée (utiliser autre chose dans query? propriétés de
cette requete croisée? ...)

Sinon ma deuxieme question.. en anticipant..

J'ai trouvé sur ce newsgroup une macro permettant d'exporter des données
excel vers access. C'est bien mais vous avez du comprendre que je voulais
retraiter des données sous excel pour les réexporter dans Access (pour
certaines raisons il est plus simple de procéder comme cela plutot que
d'aller directement modifier dans l'application access...). Probleme, je veux
faire une mise a jour, pas ajouter des données.

Je connais le SQL "classique", à mon avis il faudrait une requete du style
(en adaptant d'apres ce que j'ai compris en lisant la requete exemple) :

UPDATE table IN c:fuichieaccess.mdb SELECT champ1,champ2 FROM
[MaPlageDeDonnées] WHERE table.cle = [MaPlageDeDonnées].cle

Ie, je veux faire en sorte de mettre a jour champ1 et champ2 dans access
sachant qu'on a le meme champ pour la clé.

exactement l'equivalent en SQL "classique" : UPDATE a.champ1,a.champ2 FROM
tableAccess a,tableExcel e WHERE t.cle=a.cle SET
a.champ1=e.champ1,a.champ2=e.champ2

Voici la requete exemple que j'ai trouvée et qui permet de simplement
introduire des données (et pas de mettre a jour) :

INSERT INTO toto IN (c:machin.mdb' SELECT * FROM [Plage]

Merci beaucoup !

Cordialement,

JC Montigny
Thorkhas
Le #4079921
Re,

Merci beaucoup pour ta réponse !

J'ai créé ma procédure et je l'ai modifiée mais par contre il plante au
niveau des
commandes cnt. pour définir le type de requête et le texte de la requête en
me disant : "erreur 446 : cet objet ne gère pas les arguments nommés".
bizarre...

Il suffit bien d'avoir la lib Microsoft Activex Data Objects 2.x Library ?
(j'ai la 2.7)

D'autre part cela veut dire qu'avec cette méthode il faudra que je mette
plus ou moins un timer pour que la table reste mise à jour automatiquement
par la procédure ? (ou alors un petit bouton...)

Je continue à chercher..

Merci encore !

JCM


Utilisation ADO et utilisation d'une requête stockée

Tu peux faire ta requête directement dans Acces et utiliser ADO et lui demander
d'exécuter ta requête et te retourner les enregistrements dans un recordset.

Un petit exemple de code ... comme Acces est planté, je n'ai pas
pu effectuer de test ...

Évidemment, tu dois ajouter la bibliothèque : "Microsoft Activex Data 2.x Librairy"
'---------------------------------------
Sub test()
Dim C As Integer
Dim cnt As New ADODB.Connection
Dim Rst As New ADODB.Recordset

BaseAccess = ThisWorkbook.Path & "" & "Comptoir.mdb"
'Création d'une connection avec la base de données.
cnt.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & BaseAccess

'[Ten Most Expensive Products] = Nom de la requête
'existant dans Access, les crochets sont là à cause
'des espaces dans le nom de la requête...

cnt.CommandText = "[Ten Most Expensive Products]"
cnt.CommandType = adCmdStoredProc
Set Rst = com.Execute

If (Rst.State & adStateOpen) Then
MsgBox "Recordset is open... records returned."
'Pour récupérer le nom des champs
Do
Range("A1").Offset(, C) = Rst.Fields(C).Name
C = C + 1
X = X + 1
Loop Until X = Rst.Fields.Count
'Récupérer les enregistrements
Range("A1").Offset(1).CopyFromRecordset Rst
Rst.Close: Set Rst = Nothing: cnt.Close: Set cnt = Nothing
Else
MsgBox "Recordset not open... no records."
cnt.Close: Set cnt = Nothing
End If

End Sub
'---------------------------------------




"Thorkhas"
Bonjour !

Alors voila... Mon problème concerne dans un premier temps Microsoft Query
(version 2002, avec access et excel 2002).

Actuellement, j'extrais des données d'une base access vers excel pour
procéder à un retraitement. J'ai créé une requête pour l'occasion, assez
complexe (elle se base sur d'autres requetes croisées dynamiques, des
requetes union, et deux tables plates classiques), que j'exporte manuellement
vers un fichier excel dans lequel je fais mon traitement.

J'aimerais automatiser cette tache (ie, avoir en real time le résultat de ma
requete dans un onglet de mon fichier excel).

Le problème, c'est que quand je fais outil/données externes/créer une
requete, que je selectionne ma base (sur un lecteur réseau mais ca ne pose a
priori pas de probleme) puis ma requete, ca me dit : "impossible d'accéder à
la table :
Je décide alors de créer ma requete en manuel directement dans query.

J'ajoute les tables (du fichier access donc) dont j'ai besoin. Puis une
requete croisé qui passe sans probleme. Puis une autre requete croisée. La
probleme : il me dit qu'il ne peut pas y accéder. Comme il s'agit d'une
requete croisée utilisant les données d'une autre requete, de type UNION
écrite directement en SQL dans accessn je me dis que le probleme vient de la.
J'essaie alors d'importer cette requete et la surprise, elle marche.

Je suis donc coincé à ce niveau la ! je ne peut pas inclure une des requetes
n,écessaires à ma requete finale... Je ne comprends vraiment pas pourquoi
elle coince !

Si quelqu'un a une idée (utiliser autre chose dans query? propriétés de
cette requete croisée? ...)

Sinon ma deuxieme question.. en anticipant..

J'ai trouvé sur ce newsgroup une macro permettant d'exporter des données
excel vers access. C'est bien mais vous avez du comprendre que je voulais
retraiter des données sous excel pour les réexporter dans Access (pour
certaines raisons il est plus simple de procéder comme cela plutot que
d'aller directement modifier dans l'application access...). Probleme, je veux
faire une mise a jour, pas ajouter des données.

Je connais le SQL "classique", à mon avis il faudrait une requete du style
(en adaptant d'apres ce que j'ai compris en lisant la requete exemple) :

UPDATE table IN c:fuichieaccess.mdb SELECT champ1,champ2 FROM
[MaPlageDeDonnées] WHERE table.cle = [MaPlageDeDonnées].cle

Ie, je veux faire en sorte de mettre a jour champ1 et champ2 dans access
sachant qu'on a le meme champ pour la clé.

exactement l'equivalent en SQL "classique" : UPDATE a.champ1,a.champ2 FROM
tableAccess a,tableExcel e WHERE t.cle=a.cle SET
a.champ1=e.champ1,a.champ2=e.champ2

Voici la requete exemple que j'ai trouvée et qui permet de simplement
introduire des données (et pas de mettre a jour) :

INSERT INTO toto IN (c:machin.mdb' SELECT * FROM [Plage]

Merci beaucoup !

Cordialement,

JC Montigny





MichDenis
Le #4079781
Je n'ai toujours pas testé la procédure mais
il y a une faute là :

Set Rst = com.Execute

On devrait lire évidemment :

Set Rst = CNT.Execute



"Thorkhas"
Re,

Merci beaucoup pour ta réponse !

J'ai créé ma procédure et je l'ai modifiée mais par contre il plante au
niveau des
commandes cnt. pour définir le type de requête et le texte de la requête en
me disant : "erreur 446 : cet objet ne gère pas les arguments nommés".
bizarre...

Il suffit bien d'avoir la lib Microsoft Activex Data Objects 2.x Library ?
(j'ai la 2.7)

D'autre part cela veut dire qu'avec cette méthode il faudra que je mette
plus ou moins un timer pour que la table reste mise à jour automatiquement
par la procédure ? (ou alors un petit bouton...)

Je continue à chercher..

Merci encore !

JCM


Utilisation ADO et utilisation d'une requête stockée

Tu peux faire ta requête directement dans Acces et utiliser ADO et lui demander
d'exécuter ta requête et te retourner les enregistrements dans un recordset.

Un petit exemple de code ... comme Acces est planté, je n'ai pas
pu effectuer de test ...

Évidemment, tu dois ajouter la bibliothèque : "Microsoft Activex Data 2.x Librairy"
'---------------------------------------
Sub test()
Dim C As Integer
Dim cnt As New ADODB.Connection
Dim Rst As New ADODB.Recordset

BaseAccess = ThisWorkbook.Path & "" & "Comptoir.mdb"
'Création d'une connection avec la base de données.
cnt.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & BaseAccess

'[Ten Most Expensive Products] = Nom de la requête
'existant dans Access, les crochets sont là à cause
'des espaces dans le nom de la requête...

cnt.CommandText = "[Ten Most Expensive Products]"
cnt.CommandType = adCmdStoredProc
Set Rst = com.Execute

If (Rst.State & adStateOpen) Then
MsgBox "Recordset is open... records returned."
'Pour récupérer le nom des champs
Do
Range("A1").Offset(, C) = Rst.Fields(C).Name
C = C + 1
X = X + 1
Loop Until X = Rst.Fields.Count
'Récupérer les enregistrements
Range("A1").Offset(1).CopyFromRecordset Rst
Rst.Close: Set Rst = Nothing: cnt.Close: Set cnt = Nothing
Else
MsgBox "Recordset not open... no records."
cnt.Close: Set cnt = Nothing
End If

End Sub
'---------------------------------------




"Thorkhas"
Bonjour !

Alors voila... Mon problème concerne dans un premier temps Microsoft Query
(version 2002, avec access et excel 2002).

Actuellement, j'extrais des données d'une base access vers excel pour
procéder à un retraitement. J'ai créé une requête pour l'occasion, assez
complexe (elle se base sur d'autres requetes croisées dynamiques, des
requetes union, et deux tables plates classiques), que j'exporte manuellement
vers un fichier excel dans lequel je fais mon traitement.

J'aimerais automatiser cette tache (ie, avoir en real time le résultat de ma
requete dans un onglet de mon fichier excel).

Le problème, c'est que quand je fais outil/données externes/créer une
requete, que je selectionne ma base (sur un lecteur réseau mais ca ne pose a
priori pas de probleme) puis ma requete, ca me dit : "impossible d'accéder à
la table :
Je décide alors de créer ma requete en manuel directement dans query.

J'ajoute les tables (du fichier access donc) dont j'ai besoin. Puis une
requete croisé qui passe sans probleme. Puis une autre requete croisée. La
probleme : il me dit qu'il ne peut pas y accéder. Comme il s'agit d'une
requete croisée utilisant les données d'une autre requete, de type UNION
écrite directement en SQL dans accessn je me dis que le probleme vient de la.
J'essaie alors d'importer cette requete et la surprise, elle marche.

Je suis donc coincé à ce niveau la ! je ne peut pas inclure une des requetes
n,écessaires à ma requete finale... Je ne comprends vraiment pas pourquoi
elle coince !

Si quelqu'un a une idée (utiliser autre chose dans query? propriétés de
cette requete croisée? ...)

Sinon ma deuxieme question.. en anticipant..

J'ai trouvé sur ce newsgroup une macro permettant d'exporter des données
excel vers access. C'est bien mais vous avez du comprendre que je voulais
retraiter des données sous excel pour les réexporter dans Access (pour
certaines raisons il est plus simple de procéder comme cela plutot que
d'aller directement modifier dans l'application access...). Probleme, je veux
faire une mise a jour, pas ajouter des données.

Je connais le SQL "classique", à mon avis il faudrait une requete du style
(en adaptant d'apres ce que j'ai compris en lisant la requete exemple) :

UPDATE table IN c:fuichieaccess.mdb SELECT champ1,champ2 FROM
[MaPlageDeDonnées] WHERE table.cle = [MaPlageDeDonnées].cle

Ie, je veux faire en sorte de mettre a jour champ1 et champ2 dans access
sachant qu'on a le meme champ pour la clé.

exactement l'equivalent en SQL "classique" : UPDATE a.champ1,a.champ2 FROM
tableAccess a,tableExcel e WHERE t.cle=a.cle SET
a.champ1=e.champ1,a.champ2=e.champ2

Voici la requete exemple que j'ai trouvée et qui permet de simplement
introduire des données (et pas de mettre a jour) :

INSERT INTO toto IN (c:machin.mdb' SELECT * FROM [Plage]

Merci beaucoup !

Cordialement,

JC Montigny





Publicité
Suivre les réponses
Poster une réponse
Anonyme