VBA SQL Access Erreur de syntaxe

  • Auteur de la discussion darkspoilt
  • Date de début

darkspoilt

Expert
Bonjou,
Je voudrai savoir si vous pouviez me dire d'ou provient l'erreur alors que j'ai recopier exactement ma requete SQL généré par Access et en VBA il me met une erreur (erreur dans la compilation)

[cpp]SQL = "INSERT INTO CA ( année, france ) SELECT " 2007 " AS Année, Temp.F1 FROM Temp"[/cpp]
Merci d'avance :)
 

zeb

Modérateur
Avant que ce ne soit du SQL, c'est du VB.
Regarde ce que voit VB, qui lui n'interprête pas le SQL :
[fixed]SQL = "INSERT INTO CA ( année, france ) SELECT " 2007 " AS Année, Temp.F1 FROM Temp"
SQL = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" 2007 "xxxxxxxxxxxxxxxxxxxxxxxxxxxx"[/fixed]

Tu ne trouves pas qu'il y a comme un problème ?
 

darkspoilt

Expert
OUi j'ai modifer mon code je doit mettre des '2007' au lieu de "2007"
Mais il importe toujours pas dans ma table.
En plus après c'est pour importer une table dans Excel a la suite d'un tableau déja présent sans rien effacer c'est possible??
 

zeb

Modérateur
grrrr. RTFM TransferMachinTruc Export.
Tu vas aller me lire cette doc, oui ou $^*#
 

darkspoilt

Expert
j'ai lu l'aide de Access et ils disent rien sur le fait de faire un export Access vers Excel sans rien effacer et pour le mettre a un endroit précis sur la feuille mais de toute maniere mon code SQL ne fonctionne pas du tout alors qu'il fonctionne bien sans Access

voila mon code

[cpp]Sub Commande0_Click()

'Déclaration des variables
Dim l As Long
Dim Chiffre As String
Dim SQL As String

'Recherche a l'intérieur du fichier chiffre d'affaire de la cellule a importer
Chiffre = "D:\Test\Essai.xls"
l = Ligne()
DoCmd.DeleteObject acTable, "Temp"
DoCmd.TransferSpreadsheet acImport, , "Temp", "D:\Eric\dossier_projets\TDB\Chiffres-Affaires\a-Activité paiement porteurs CA an2007.xls", 0, "K" & l & ":K" & l
DoCmd.OpenQuery "Req_CA"
SQL = "INSERT INTO CA ( année, [Paiement france] ) SELECT [2007] AS Année, Temp.F1FROM Temp;"
MsgBox SQL


End Sub[/cpp]
 

darkspoilt

Expert
j'ai trouvé la réponse ""2007"" au lieu de [2007]
et j'ai oublié de taperl a commande [cpp]CurrentDb.Execute SQL[/cpp]

J'ai un porbleme de syntaxe j'aimerais exporter ma table Access cers un tableau Excel est ce bien commet cela??
[cpp]
DoCmd.TransferSpreadsheet acExport, , CA, TDB
[/cpp]
Il requiet un argument nom de Table
 

Freeman23

Expert
Quand tu dois donner un argument de type string ou variant correspondant au nom d'une table ou autre il faut des guillemets...
Code:
DoCmd.TransferSpreadsheet acExport, , "CA", "TD"
Puis avec TD tout court ca fonctionnera pas.
Regarde l'aide de la fonction

NomFichier Variant facultatif. Expression chaîne qui représente le nom et le chemin du fichier de feuille de calcul dont vous voulez importer les données, dans lequel vous voulez exporter des données ou auquel vous voulez attacher des données.


 

darkspoilt

Expert
TD est une variable c'est vrai que je ne l'ai pas précisé par contre il me fait rien du tout j'essai d'exporter dans un tableau Excel existant et il y' a rien de modifier. (J'aimerais ajouter la table a la suite d'un tableau déja présent)
C'est une erreur de ma commande??
 

zeb

Modérateur
As-tu mis l'Option Explicit ?
Interdit de demander ce que c'est avant d'avoir lu la doc.
Interdit de répondre "NON CAR JE M'EN FOUS" (ou n'importe quelle autre raison)

En plus, on te l'a déjà dit. Soit CA est une variable, et elle doit contenir le nom de la table, soit c'est le nom de la table, et elle doit être entre guillemets.
 

zeb

Modérateur
:)

Bon, alors c'est que CA est bien une variable. Qu'y a-t-il dedans ?
 

darkspoilt

Expert
non pardon c'est pas CA qui est une variable mais TDB qui contient le cehmin de mon fichier Excel
Ca soit avoir des guillemet car c'est la table de ma base que je veux exporter
 

hoegarden31

Expert
zeb svp tu peux m'aider ?
si oui regarde mon nouveau topic plz
 

darkspoilt

Expert
Mais apparement c impossible de exporter une table sur un fichier excel existant sans l'écraser
 

Freeman23

Expert
Effectivement transferSpreadSheet est une fonction basique d'import export, il ne faut pas s'attendre à mes miracles.

Maintenant on a parlé des méthodes pour ouvrir Excel et travaillé directement dessus depuis Access dans un autre topic avec cette méthode c'est très simple de faire ce que tu recherches.
 

hoegarden31

Expert
[strike]vous pouvez jeter un coups d'oeil sur mon topic plz[/strike]
 

zeb

Modérateur
Hoegarden31» Je lis TOUS les sujets parce que je suis modérateur. Donc je lirai ton autre sujet. et si je jugerai ma contribution opportune, je n'hésiterais pas.

darksploilt» Ah bon, c'est impossible. Et à quoi sert le sixième paramètre de la fonction TransferSpreadsheet.

VOUS ALLEZ ME LIRE CES P*****S DE MANUELS AVANT DE POSER UNE QUESTION OU DONNER UNE REPONSE [:zeb]

(Ce n'est pas bon pour mon karma de m'énerver comme ça :whistle: )
 

hoegarden31

Expert
ok bon dsl je m'excuse pour avoir ete si impatient je retire ce que j'ai dit.
 

darkspoilt

Expert
zeb J'ai lu ce manuel!!! le sixieme argument est valable seulement pour une importation (c'est écris noir sur blanc a moins qu'on est pas le même) moi c'est une exportation que je veux faire Acces vers Excel. et le dernier n'est pas spécifié a quoi il sert. Après j'ai lu sur d'autre forum ou tuto que ce n'est pas possible avec cette fonction donc c'est pour cela que je demande une méthode.
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 128
Messages
6 717 846
Membres
1 586 373
Dernier membre
https://forum.tomshardwar
Partager cette page
Haut