Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/08/2011, 19h05   #1
Futur Membre du Club
 
Inscription : août 2005
Messages : 60
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 60
Points : 17
Points : 17
Par défaut Erreur syntaxe paramètre sql

Bonjour,
J'ai utilisé un exemple de code dans le tutoriel sur les requêtes sql paramétrées dans VBA (ArticleDAO.pdf), mais je bute sur une erreur (de syntaxe ?). Sans critère paramétré, le code fonctionne bien, mais je dois mal écrire mes paramètres, et bien que j'ai fouillé, je n'y arrive pas. Voici le code-type que j'utilise :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
' Ci-dessous, L'expression qui fonctionnait pour une seule table +
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 '   DoCmd.SelectObject acTable, "T_MaTable", True
 '   DoCmd.RunSQL "SELECT [T_MaTable].* INTO [T_MaTable] IN 'P:\AutreBaseExemple.mdb'  FROM [T_MaTable];", -1
Public Function Exporter_versAutreBase()
On Error GoTo Exporter_versBASEINDIVIDU_Err
Dim oRst As DAO.Recordset
Dim oDb As DAO.database
Dim strRst As String
Set oDb = CurrentDb
Set oRst = oDb.OpenRecordset("SELECT T_MaTable.NomTable FROM T_MaTable", dbOpenDynaset)
'DoCmd.SetWarnings False
'Tant que non fin du recordset
While Not oRst.EOF
strRst = oRst.Fields("NomTable").Value
    ' Employés(NewRPT)tb
    DoCmd.SelectObject acTable, strRst, True
    DoCmd.RunSQL "SELECT strRst INTO strRst IN 'P:\AutreBaseExemple.mdb' FROM strRst ;", -1
Wend
 
 
Exporter_versBASEINDIVIDU_Exit:
    Exit Function
 
Exporter_versBASEINDIVIDU_Err:
    MsgBox Error$
    Resume Exporter_versBASEINDIVIDU_Exit
 
End Function
Le message d'erreur que j'obtiens est : "Le moteur de base de données Microsoft Jet ne peut pas trouver la table ou la requête source 'stRst'. Assurez-vous...."
Il doit manquer des guillemets ou crochets, mais je ne trouve pas.

Merci de votre aide.

Choridally
chordially est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/08/2011, 19h41   #2
Rédacteur
 
Avatar de LedZeppII
 
Homme
Maintenance données produits
Inscription : décembre 2005
Messages : 3 939
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Maintenance données produits
Secteur : Distribution

Informations forums :
Inscription : décembre 2005
Messages : 3 939
Points : 6 278
Points : 6 278
Bonjour,

Essaie en concaténant de cette manière :
Code :
DoCmd.RunSQL "SELECT [" & strRst & "].* INTO [" & strRst & "] IN 'P:\AutreBaseExemple.mdb'  FROM [" & strRst & "];", -1
A+
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/08/2011, 20h58   #3
Futur Membre du Club
 
Inscription : août 2005
Messages : 60
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 60
Points : 17
Points : 17
Bonjour LedZepII,
Merci pour la réponse et la rapidité.
Je l'essaie de suite et vous en redonne des nouvelles.
Chordially
chordially est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/08/2011, 21h06   #4
Futur Membre du Club
 
Inscription : août 2005
Messages : 60
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 60
Points : 17
Points : 17
Comme on dit dans la "Loutre-Atlantique" : ItWorkse
mille merci(s)
Chordially
chordially est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/08/2011, 22h26   #5
Futur Membre du Club
 
Inscription : août 2005
Messages : 60
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 60
Points : 17
Points : 17
Un dernier petit détail...

J'avais omis d'écrire (en noir et en gras ci-dessous)
Code :
1
2
3
4
5
6
7
8
9
10
11
    While Not oRst.EOF
strRst = oRst.Fields("NomTable").Value
    DoCmd.SelectObject acTable, strRst, True
    DoCmd.RunSQL "SELECT [" & strRst & "].* INTO [" & strRst & "] IN 'P:\AutreBaseExemple.mdb' FROM [" & strRst & "] ;", -1    
oRst.MoveNext
Wend
oRst.Close
oDb.Close
Set oRst = Nothing
Set oDb = Nothing
dans mon code, ce qui expliquerait (il me semble... ) que le code se ré-exécutait en boucle, sans vraiment arrêter.

Bon, au lit...
Encore Merci.
Chordially
chordially est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h43.


 
 
 
 
Partenaires

Hébergement Web