OVH Cloud OVH Cloud

Fonction SQL UPDATE

15 réponses
Avatar
velekinca
Bonjour,

j'ai un problème avec du code sql dans ma base Access, pouvez-vous m'aider
svp...

j'ai donc le même code dans mes requêtes, et ca fonctionne parfaitement,

j'ai n'ai fait que copié collé dans un module, et ca ne marche pas, il y a
un message qui apparait dès le départ.

voici le message d'erreur : "Erreur d'exécution '3075' : Erreur de syntaxe
(opérateur absent) dans l'expression '0WHERE [C1a-Entretiens].[Rdv] is Null'.

pouvez-vous m'aider svp.

Merci

voici mon code :

Sub MàJetAjout()

Dim sql1, sql2, sql3, sql4, sql5, sql6, sql7, sql8, sql9, sql10 As String


sql1 = "INSERT INTO [C1b-Codification FdR glob]" & "SELECT [R1b -
Codification Global].*" & "FROM [R1b - Codification Global];"

sql2 = "UPDATE [C1a-Entretiens] SET [C1a-Entretiens].Rdv = 0" & "WHERE
[C1a-Entretiens].[Rdv] is Null;"

sql3 = "INSERT INTO [C3a-TTM 4-5 mois] ( Agence, [Lieu], CP, [No-Pers],
[NomAss], [PreNomAss], SP, [Date-Entree-Poss] )" & "SELECT [M-DEMA].[Agence],
[M-DEMA].[Lieu], [M-DEMA].[CP], [M-DEMA].[No-Pers], [M-DEMA].[NomAss],
[M-DEMA].[PreNomAss], [M-DEMA].[SP], [M-DEMA].[Date-Entree-Poss]" & "FROM
[M-DEMA]" & "GROUP BY [M-DEMA].[Agence], [M-DEMA].[Lieu], [M-DEMA].[CP],
[M-DEMA].[No-Pers], [M-DEMA].[NomAss], [M-DEMA].[PreNomAss], [M-DEMA].[SP],
[M-DEMA].[Date-Entree-Poss]" & "ORDER BY [M-DEMA].[Agence], [M-DEMA].[Lieu],
[M-DEMA].[CP], [M-DEMA].[No-Pers];"

sql4 = "INSERT INTO [C3a-TTM 5-6 mois] ( Agence, [Lieu], CP, [No-Pers],
[NomAss], [PreNomAss], SP, [Date-Entree-Poss] )" & "SELECT
[M-DEMAb].[Agence], [M-DEMAb].[Lieu], [M-DEMAb].[CP], [M-DEMAb].[No-Pers],
[M-DEMAb].[NomAss], [M-DEMAb].[PreNomAss], [M-DEMAb].[SP],
[M-DEMAb].[Date-Entree-Poss]" & "FROM [M-DEMAb]" & "GROUP BY
[M-DEMAb].[Agence], [M-DEMAb].[Lieu], [M-DEMAb].[CP], [M-DEMAb].[No-Pers],
[M-DEMAb].[NomAss], [M-DEMAb].[PreNomAss], [M-DEMAb].[SP],
[M-DEMAb].[Date-Entree-Poss]" & "ORDER BY [M-DEMAb].[Agence],
[M-DEMAb].[Lieu], [M-DEMAb].[CP], [M-DEMAb].[No-Pers];"

sql5 = "UPDATE [C3a-TTM 4-5 mois], [M-TIA] SET [C3a-TTM 4-5 mois].TIA = Yes"
& "WHERE ((([C3a-TTM 4-5 mois].[No-Pers])=[M-TIA].[No-Pers]));"

sql6 = "UPDATE [C3a-TTM 5-6 mois], [M-TIAb] SET [C3a-TTM 5-6 mois].TIA =
Yes" & "WHERE ((([C3a-TTM 5-6 mois].[No-Pers])=[M-TIAb].[No-Pers]));"

sql7 = "UPDATE [C3a-TTM 4-5 mois], [M-COUR] SET [C3a-TTM 4-5 mois].Cours =
Yes" & "WHERE ((([C3a-TTM 4-5 mois].[No-Pers])=[M-COUR].[No-Pers]));"

sql8 = "UPDATE [C3a-TTM 5-6 mois], [M-COURb] SET [C3a-TTM 5-6 mois].Cours =
Yes" & "WHERE ((([C3a-TTM 5-6 mois].[No-Pers])=[M-COURb].[No-Pers]));"

sql9 = "UPDATE [C3a-TTM 4-5 mois], [M-INDE] SET [C3a-TTM 4-5 mois].[M-Indep]
= Yes" & "WHERE ((([C3a-TTM 4-5 mois].[No-Pers])=[M-INDE].[No-Pers]));"

sql10 = "UPDATE [C3a-TTM 5-6 mois], [M-INDEb] SET [C3a-TTM 5-6
mois].[M-Indep] = Yes" & "WHERE ((([C3a-TTM 5-6
mois].[No-Pers])=[M-INDEb].[No-Pers]));"

CurrentDb.Execute (sql1)
CurrentDb.Execute (sql2)
CurrentDb.Execute (sql3)
CurrentDb.Execute (sql4)
CurrentDb.Execute (sql5)
CurrentDb.Execute (sql6)
CurrentDb.Execute (sql7)
CurrentDb.Execute (sql8)
CurrentDb.Execute (sql9)
CurrentDb.Execute (sql10)

End Sub

5 réponses

1 2
Avatar
ymer.hyseni
On 19 mai, 10:10, Eric wrote:
.../... Parti trop vite.


... toutes sont déclarées comme string... sinon ca ne
marche pas....


Ca marcherait car une variable Variant peut recevoir n'importe quel type
de données, et seul ce type peut recevoir le marqueur Null ;-)

--
A+
Erichttp://www.mpfa.info/
Archives :http://groups.google.fr/group/microsoft.public.fr.access?hl=fr


Je m'excuses, mais ça ne marche toujours pas... mon update, j'ai un
autre erreur là : Erreur d'exécution 3065, Impossible d'exécuter une
requête de sélection.


et pourtant voilà mon code que j'ai :

'*******************************************
Sub tstsaqual()

Dim sql11 As String
Dim sql12 As String

sql11 = "INSERT INTO [C1b-Codification FdR glob]" & _
"SELECT [R1b - Codification Global].*" & _
"FROM [R1b - Codification Global];"

sql12 = "SELECT DISTINCT [T1a - DE inscrit depuis 6 mois].[Agence],
[T1a - DE inscrit depuis 6 mois].[Zone-OT] AS [Zone-OT], Count([T1a -
DE inscrit depuis 6 mois].[No-Pers]) AS [DE-inscrit 3-6 mois], (select
distinct count(b.[No-Pers]) from [T1a - Nombre DE inscrit depuis 6
mois / Entretien < 2] AS b WHERE b.[Zone-OT] = [T1a - DE inscrit
depuis 6 mois].[Zone-OT] AND b.[SP] in
('1A','1B','1C','1F','2A','2B','2C','2F','3A', '3F', '3H', '3I',
'6D','6E','7D', '7E', '8D', '8E', '9B','9C') and b.[Code-IC] Like
'**0') AS [Dont entre 0-2 EC], ([Dont entre 0-2 EC]*100/[DE-inscrit
3-6 mois]) AS [% DE entre 0-2 EC]" & _
"FROM [T1a - DE inscrit depuis 6 mois]" & _
"WHERE [T1a - DE inscrit depuis 6 mois].[SP] In
('1A','1B','1C','1F','2A','2B','2C','2F','3A','3F','3H','3I','6D','6E','7D' ,'7E','8D','8E','9B','9C')
And [T1a - DE inscrit depuis 6 mois].[Code-IC] Like '**0'" & _
"GROUP BY [T1a - DE inscrit depuis 6 mois].[Agence],
[T1a - DE inscrit depuis 6 mois].[Zone-OT];"

CurrentDb.Execute (sql11)
CurrentDb.Execute (sql12)


End Sub

'********************************************

de plus, j'ai donc la même fonction SQL dans une requête normale, et
4a marche...

que faire????


Avatar
Michel_D
On 19 mai, 10:10, Eric wrote:

.../... Parti trop vite.



... toutes sont déclarées comme string... sinon ca ne
marche pas....


Ca marcherait car une variable Variant peut recevoir n'importe quel type
de données, et seul ce type peut recevoir le marqueur Null ;-)

--
A+
Erichttp://www.mpfa.info/
Archives :http://groups.google.fr/group/microsoft.public.fr.access?hl=fr



Je m'excuses, mais ça ne marche toujours pas... mon update, j'ai un
autre erreur là : Erreur d'exécution 3065, Impossible d'exécuter une
requête de sélection.


et pourtant voilà mon code que j'ai :

'*******************************************
Sub tstsaqual()

Dim sql11 As String
Dim sql12 As String

sql11 = "INSERT INTO [C1b-Codification FdR glob]" & _
"SELECT [R1b - Codification Global].*" & _
"FROM [R1b - Codification Global];"

sql12 = "SELECT DISTINCT [T1a - DE inscrit depuis 6 mois].[Agence],
[T1a - DE inscrit depuis 6 mois].[Zone-OT] AS [Zone-OT], Count([T1a -
DE inscrit depuis 6 mois].[No-Pers]) AS [DE-inscrit 3-6 mois], (select
distinct count(b.[No-Pers]) from [T1a - Nombre DE inscrit depuis 6
mois / Entretien < 2] AS b WHERE b.[Zone-OT] = [T1a - DE inscrit
depuis 6 mois].[Zone-OT] AND b.[SP] in
('1A','1B','1C','1F','2A','2B','2C','2F','3A', '3F', '3H', '3I',
'6D','6E','7D', '7E', '8D', '8E', '9B','9C') and b.[Code-IC] Like
'**0') AS [Dont entre 0-2 EC], ([Dont entre 0-2 EC]*100/[DE-inscrit
3-6 mois]) AS [% DE entre 0-2 EC]" & _
"FROM [T1a - DE inscrit depuis 6 mois]" & _
"WHERE [T1a - DE inscrit depuis 6 mois].[SP] In
('1A','1B','1C','1F','2A','2B','2C','2F','3A','3F','3H','3I','6D','6E','7D','7E','8D','8E','9B','9C')
And [T1a - DE inscrit depuis 6 mois].[Code-IC] Like '**0'" & _
"GROUP BY [T1a - DE inscrit depuis 6 mois].[Agence],
[T1a - DE inscrit depuis 6 mois].[Zone-OT];"

CurrentDb.Execute (sql11)
CurrentDb.Execute (sql12)


End Sub

'********************************************

de plus, j'ai donc la même fonction SQL dans une requête normale, et
4a marche...

que faire????



Même punition (manque des espaces d'espace) :

sql11 = "INSERT INTO [C1b-Codification FdR glob]" & _
"SELECT [R1b - Codification Global].*" & _
"FROM [R1b - Codification Global];"
[..]
3-6 mois]) AS [% DE entre 0-2 EC]" & _
"FROM [T1a - DE inscrit depuis 6 mois]" & _
"WHERE [T1a - DE inscrit depuis 6 mois].[SP] In
[..]
And [T1a - DE inscrit depuis 6 mois].[Code-IC] Like '**0'" & _
"GROUP BY [T1a - DE inscrit depuis 6 mois].[Agence],



Avatar
Eric
re,

En plus du manque d'espaces signalé par Michel (1 après le nom de la
1ere table et un après le caractère générique * dans le sql11, tu ne
peux pas exécuter la requête définie par le sql12 car il s'agit d'une
requête sélection qu'on ne peut qu'ouvrir.


On 19 mai, 10:10, Eric wrote:
.../... Parti trop vite.


... toutes sont déclarées comme string... sinon ca ne
marche pas....
Ca marcherait car une variable Variant peut recevoir n'importe quel type

de données, et seul ce type peut recevoir le marqueur Null ;-)

--
A+
Erichttp://www.mpfa.info/
Archives :http://groups.google.fr/group/microsoft.public.fr.access?hl=fr


Je m'excuses, mais ça ne marche toujours pas... mon update, j'ai un
autre erreur là : Erreur d'exécution 3065, Impossible d'exécuter une
requête de sélection.


et pourtant voilà mon code que j'ai :

'*******************************************
Sub tstsaqual()

Dim sql11 As String
Dim sql12 As String

sql11 = "INSERT INTO [C1b-Codification FdR glob]" & _
"SELECT [R1b - Codification Global].*" & _
"FROM [R1b - Codification Global];"

sql12 = "SELECT DISTINCT [T1a - DE inscrit depuis 6 mois].[Agence],
[T1a - DE inscrit depuis 6 mois].[Zone-OT] AS [Zone-OT], Count([T1a -
DE inscrit depuis 6 mois].[No-Pers]) AS [DE-inscrit 3-6 mois], (select
distinct count(b.[No-Pers]) from [T1a - Nombre DE inscrit depuis 6
mois / Entretien < 2] AS b WHERE b.[Zone-OT] = [T1a - DE inscrit
depuis 6 mois].[Zone-OT] AND b.[SP] in
('1A','1B','1C','1F','2A','2B','2C','2F','3A', '3F', '3H', '3I',
'6D','6E','7D', '7E', '8D', '8E', '9B','9C') and b.[Code-IC] Like
'**0') AS [Dont entre 0-2 EC], ([Dont entre 0-2 EC]*100/[DE-inscrit
3-6 mois]) AS [% DE entre 0-2 EC]" & _
"FROM [T1a - DE inscrit depuis 6 mois]" & _
"WHERE [T1a - DE inscrit depuis 6 mois].[SP] In
('1A','1B','1C','1F','2A','2B','2C','2F','3A','3F','3H','3I','6D','6E','7D','7E','8D','8E','9B','9C')
And [T1a - DE inscrit depuis 6 mois].[Code-IC] Like '**0'" & _
"GROUP BY [T1a - DE inscrit depuis 6 mois].[Agence],
[T1a - DE inscrit depuis 6 mois].[Zone-OT];"

CurrentDb.Execute (sql11)
CurrentDb.Execute (sql12)


End Sub

'********************************************

de plus, j'ai donc la même fonction SQL dans une requête normale, et
4a marche...

que faire????



--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr



Avatar
ymer.hyseni
On 19 mai, 15:45, Eric wrote:
re,

En plus du manque d'espaces signalé par Michel (1 après le nom de la
1ere table et un après le caractère générique * dans le sql11, tu ne
peux pas exécuter la requête définie par le sql12 car il s'agit d'u ne
requête sélection qu'on ne peut qu'ouvrir.




On 19 mai, 10:10, Eric wrote:
.../... Parti trop vite.




... toutes sont déclarées comme string... sinon ca ne
marche pas....
Ca marcherait car une variable Variant peut recevoir n'importe quel ty pe

de données, et seul ce type peut recevoir le marqueur Null ;-)

--
A+
Erichttp://www.mpfa.info/
Archives :http://groups.google.fr/group/microsoft.public.fr.access?hl =fr


Je m'excuses, mais ça ne marche toujours pas... mon update, j'ai un
autre erreur là : Erreur d'exécution 3065, Impossible d'exécuter une
requête de sélection.

et pourtant voilà mon code que j'ai :

'*******************************************
Sub tstsaqual()

Dim sql11 As String
Dim sql12 As String

sql11 = "INSERT INTO [C1b-Codification FdR glob]" & _
"SELECT [R1b - Codification Global].*" & _
"FROM [R1b - Codification Global];"

sql12 = "SELECT DISTINCT [T1a - DE inscrit depuis 6 mois].[Agence],
[T1a - DE inscrit depuis 6 mois].[Zone-OT] AS [Zone-OT], Count([T1a -
DE inscrit depuis 6 mois].[No-Pers]) AS [DE-inscrit 3-6 mois], (select
distinct count(b.[No-Pers]) from [T1a - Nombre DE inscrit depuis 6
mois / Entretien < 2] AS b WHERE b.[Zone-OT] = [T1a - DE inscrit
depuis 6 mois].[Zone-OT] AND b.[SP] in
('1A','1B','1C','1F','2A','2B','2C','2F','3A', '3F', '3H', '3I',
'6D','6E','7D', '7E', '8D', '8E', '9B','9C') and b.[Code-IC] Like
'**0') AS [Dont entre 0-2 EC], ([Dont entre 0-2 EC]*100/[DE-inscrit
3-6 mois]) AS [% DE entre 0-2 EC]" & _
"FROM [T1a - DE inscrit depuis 6 mois]" & _
"WHERE [T1a - DE inscrit depuis 6 mois].[SP] In
('1A','1B','1C','1F','2A','2B','2C','2F','3A','3F','3H','3I','6D','6E', '7D','7E','8D','8E','9B','9C')
And [T1a - DE inscrit depuis 6 mois].[Code-IC] Like '**0'" & _
"GROUP BY [T1a - DE inscrit depuis 6 mois].[Agence],
[T1a - DE inscrit depuis 6 mois].[Zone-OT];"

CurrentDb.Execute (sql11)
CurrentDb.Execute (sql12)

End Sub

'********************************************

de plus, j'ai donc la même fonction SQL dans une requête normale, et
4a marche...

que faire????


--
A+
Erichttp://www.mpfa.info/
Archives :http://groups.google.fr/group/microsoft.public.fr.access?hl=fr


Hello, j'ai omis de vous donner plus de précision, en fait, le
problème n'est pas dans la sql11, car là c'est vrai, j'avais oublié de
le noter, les espaces existent bien, et cette fonction marche
correctement, mais par contre mon problème est à la sql12...

merci pour vos réponses et à bientôt.

velekinca




Avatar
Eric
re,

On 19 mai, 15:45, Eric wrote:
re,

En plus du manque d'espaces signalé par Michel (1 après le nom de la
1ere table et un après le caractère générique * dans le sql11, tu ne
peux pas exécuter la requête définie par le sql12 car il s'agit d'une
requête sélection qu'on ne peut qu'ouvrir.




Hello, j'ai omis de vous donner plus de précision, en fait, le
problème n'est pas dans la sql11, car là c'est vrai, j'avais oublié de
le noter, les espaces existent bien, et cette fonction marche
correctement, mais par contre mon problème est à la sql12...

merci pour vos réponses et à bientôt.

velekinca



Comme indiqué précédemment, tu ne peux pas exécuter une requête
Sélection, seulement l'ouvrir.
Si tu veux ajouter à une table, il te manque le Insert Into
LaTable(leschamps) avant le select
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr


1 2