Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Nom de fichier avec espaces dans un RunCmd.RunSQL

20 réponses
Avatar
Maurice KRAIT
Bonjour,

J'utilise ACCESS 97.
Je veux effacer tous les enregistrements d'une table nommée :
Table FGF Résultat Synchro
Ce nom comporte des caractères espaces, aussi j'entoure le nom de la
table par des apostrophes. Il me semble que c'est la syntaxe pour les
requêtes SQL, ce qui donne ceci :

DoCmd.RunSQL "Delete * FROM 'Table FGF Résultat Synchro';"

Je reçois le message d'erreur suivant : "Erreur de syntaxe dans la
requête. La clause de la requête est incomplète"

Si je change le nom de la table en supprimant les espaces inclus dans le

nom et les apostrophes entourant le nom de la table, ça fonctionne !
DoCmd.RunSQL "Delete * FROM TableFGFRésultatSynchro;"

Malheureusement, le concepteur de la base a défini le nom de la table
avec des espaces inclus et je ne peux modifier les noms.
Quelqu'un aurait-il une solution ?
Si oui, merci d'avance

Maurice

10 réponses

1 2
Avatar
Daniel Carollo
Bonjour Maurice!

Il suffit d'entourer le nom de la table avec des crochets. Et bien sur de
faire passer le concepteur au pelotton d'execution...

--
Daniel :-)

Computing Technologies International - www.computing-tech.com - We
provide solutions...

"Maurice KRAIT" wrote in message
news:
Bonjour,

J'utilise ACCESS 97.
Je veux effacer tous les enregistrements d'une table nommée :
Table FGF Résultat Synchro
Ce nom comporte des caractères espaces, aussi j'entoure le nom de la
table par des apostrophes. Il me semble que c'est la syntaxe pour les
requêtes SQL, ce qui donne ceci :

DoCmd.RunSQL "Delete * FROM 'Table FGF Résultat Synchro';"

Je reçois le message d'erreur suivant : "Erreur de syntaxe dans la
requête. La clause de la requête est incomplète"

Si je change le nom de la table en supprimant les espaces inclus dans le

nom et les apostrophes entourant le nom de la table, ça fonctionne !
DoCmd.RunSQL "Delete * FROM TableFGFRésultatSynchro;"

Malheureusement, le concepteur de la base a défini le nom de la table
avec des espaces inclus et je ne peux modifier les noms.
Quelqu'un aurait-il une solution ?
Si oui, merci d'avance

Maurice





Avatar
Maurice KRAIT

Bonjour Maurice!

Il suffit d'entourer le nom de la table avec des crochets. Et bien sur de
faire passer le concepteur au pelotton d'execution...

--
Daniel :-)



En effet, ça marche. J'avais trouvé l'utilisation d'apostrophes dans des
exemples en Visual Basic pur, et il me semble que ça fonctionnait, mais
apparemment ce n'est pas le cas pour le Visual Basic d'ACCESS.

Merci pour la solution.

Amicalement



Computing Technologies International - www.computing-tech.com - We
provide solutions...

"Maurice KRAIT" wrote in message
news:
Bonjour,

J'utilise ACCESS 97.
Je veux effacer tous les enregistrements d'une table nommée :
Table FGF Résultat Synchro
Ce nom comporte des caractères espaces, aussi j'entoure le nom de la
table par des apostrophes. Il me semble que c'est la syntaxe pour les
requêtes SQL, ce qui donne ceci :

DoCmd.RunSQL "Delete * FROM 'Table FGF Résultat Synchro';"

Je reçois le message d'erreur suivant : "Erreur de syntaxe dans la
requête. La clause de la requête est incomplète"

Si je change le nom de la table en supprimant les espaces inclus dans le

nom et les apostrophes entourant le nom de la table, ça fonctionne !
DoCmd.RunSQL "Delete * FROM TableFGFRésultatSynchro;"

Malheureusement, le concepteur de la base a défini le nom de la table
avec des espaces inclus et je ne peux modifier les noms.
Quelqu'un aurait-il une solution ?
Si oui, merci d'avance

Maurice







Avatar
Maurice KRAIT

Bonjour Maurice!

Il suffit d'entourer le nom de la table avec des crochets. Et bien sur de
faire passer le concepteur au pelotton d'execution...

--
Daniel :-)



Je vais abuser en vous posant encore une question sur le même sujet.
Je voudrais mettre l'instruction en sous-programme; j'ai essayé :
Public Function RAZTable(NomTab As String)
DoCmd.RunSQL "Delete * FROM NomTab;"
End Function

Access me répond que la table NomTab n'est pas trouvée. Connaissez-vous un
moyen de transmettre le paramètre NomTab.

Merci d'avance

Amicalement

Maurice

Avatar
Raymond [mvp]
Bonsoir.

il faut indiquer:

Public Function RAZTable(NomTab As String)
DoCmd.RunSQL "Delete * FROM " & NomTab & ";"
End Function

& ";" étant facultatif.

si on ne veut pas passer les crochets en cas d'espace il faut indiquer:

Public Function RAZTable(NomTab As String)
DoCmd.RunSQL "Delete * FROM [" & NomTab & "];"
End Function

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour une meilleure
efficacité de tes interventions sur MPFA


"Maurice KRAIT" a écrit dans le message de
news:
Je vais abuser en vous posant encore une question sur le même sujet.
Je voudrais mettre l'instruction en sous-programme; j'ai essayé :
Public Function RAZTable(NomTab As String)
DoCmd.RunSQL "Delete * FROM NomTab;"
End Function

Access me répond que la table NomTab n'est pas trouvée. Connaissez-vous un
moyen de transmettre le paramètre NomTab.



Avatar
Anor
Bonjour,

Maurice KRAIT :
|
| Je vais abuser en vous posant encore une question sur le même sujet.
| Je voudrais mettre l'instruction en sous-programme; j'ai essayé :
| Public Function RAZTable(NomTab As String)
| DoCmd.RunSQL "Delete * FROM NomTab;"
| End Function
|
| Access me répond que la table NomTab n'est pas trouvée.
| Connaissez-vous un moyen de transmettre le paramètre NomTab.
|
| Merci d'avance
| Amicalement
| Maurice

Pour les noms de tables *en 1 seul mot* (sans espace), j'écrirais :

Public Function RAZTable(NomTab As String)
DoCmd.RunSQL "Delete * FROM " & NomTab & " ;"
End Function

--
à+
Arnaud
--------------------------------------------------
*Avant toute chose* : http://users.skynet.be/mpfa/
Access Memorandum - http://memoaccess.free.fr
/Réponses souhaitées sur ce forum, merci/
--------------------------------------------------
Avatar
3stone
Salut,

"Maurice KRAIT"
Je vais abuser en vous posant encore une question sur le même sujet.
Je voudrais mettre l'instruction en sous-programme; j'ai essayé :
Public Function RAZTable(NomTab As String)
DoCmd.RunSQL "Delete * FROM NomTab;"
End Function



DoCmd.RunSQL "Delete * From '" & NomTab & "';"


--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/charte.htm
--------------------------------------

Avatar
Maurice KRAIT

Salut,

"Maurice KRAIT"
Je vais abuser en vous posant encore une question sur le même sujet.
Je voudrais mettre l'instruction en sous-programme; j'ai essayé :
Public Function RAZTable(NomTab As String)
DoCmd.RunSQL "Delete * FROM NomTab;"
End Function


DoCmd.RunSQL "Delete * From '" & NomTab & "';"

--
A+
Pierre (3stone) Access MVP


Ca devrait marcher, mais, désolé, mais ça ne marche pas, j'ai le message
suivant :
" Erreur de syntaxe dans la requête. La clause de la requête est
incomplète".
Ceci même avec un nom de fichier sans espaces.
J'ai essayé de mettre Nomtab entre crochets, comme on me l'avais suggéré
quand le nom de la table avec des espaces est écrit directement dans la
commande Run.SQL, mais ça ne marche pas non plus.
Avez-vous une autre idée ?

Merci quand même.


Avatar
Anor
Bonjour,

Maurice KRAIT :
| J'ai essayé de mettre Nomtab entre crochets, comme on me l'avais
| suggéré quand le nom de la table avec des espaces est écrit
| directement dans la commande Run.SQL, mais ça ne marche pas non plus.
| Avez-vous une autre idée ?
|
| Merci quand même.

Celle-ci fonctionne (testée) :

DoCmd.RunSQL "Delete * From [" & NomTab & "] ;"
--
à+
Arnaud
--------------------------------------------------
*Avant toute chose* : http://users.skynet.be/mpfa/
Access Memorandum - http://memoaccess.free.fr
/Réponses souhaitées sur ce forum, merci/
--------------------------------------------------
Avatar
3stone
Salut,

"Anor"
Celle-ci fonctionne (testée) :

DoCmd.RunSQL "Delete * From [" & NomTab & "] ;"



Et celles-ci également...

DoCmd.RunSQL "Delete * From " & strNomTable
DoCmd.RunSQL "Delete * From " & strNomTable & ";"

(les simples cotes étaient superflues...)


;-))


--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/charte.htm
--------------------------------------

Avatar
Maurice KRAIT

Bonjour,

Maurice KRAIT :
| J'ai essayé de mettre Nomtab entre crochets, comme on me l'avais
| suggéré quand le nom de la table avec des espaces est écrit
| directement dans la commande Run.SQL, mais ça ne marche pas non plus.
| Avez-vous une autre idée ?
|
| Merci quand même.

Celle-ci fonctionne (testée) :

DoCmd.RunSQL "Delete * From [" & NomTab & "] ;"
--
à+
Arnaud
----------------


Bon sang, mais c'est bien sûr ! je n' avais pas mis les crochets au bon
endroit !

Merci beaucoup, en effet ça fonctionne parfaitement, mêmesi le nom de la
table à effacer est passé en paramètre à une fonction qui réalise la
fonction Delete.

Merci

Maurice

1 2