OVH Cloud OVH Cloud

Erreur de syntaxe urgent svp...

12 réponses
Avatar
Baptiste
Bonjour,

J’ai un petit problème, pour cela je vous explique ma base

J'ai une table "Horaire" qui est relie par une relation 1 a plusieurs a une
table "Contenu Horaire". Cette derniere est relie a la table employe par une
relation plusieurs a 1. En fait, je veux creer un nouvel enregistrement
horaire correspondant a une date precise. Cette enregistrement contiendra un
sous formulaire (cont horaire). Chaque ligne du sous formulaire fera
reference a un employe. Je sais creer tout cela et ca fonctionne, mais ce que
je veux, c'est que chaque nouvel enregistrememt "horaire" contiennent deja
l'ensemble des employes avec par exemple le champ "Heure_normale" de la table
cont horaire egal a 8 pour chaque employe. Ce qui m'eviterait de
reselectionner + de 100 employes par jour...

Mon code VB pour generer un nouvel enregistrement automatiquement
correspondant a chaque ligne de la table employe en assignant par defaut une
valeur au champ "Heure_normale" ne fonctionne pas…

Voilà le code que j'ai appliqué sur l'évenement Click d'un bouton dans mon
formulaire Horaire.

Dim dbsCurrent As Database
Dim rstEmp As Recordset
Set dbsCurrent = OpenDatabase(CurrentDb.Name)
Set rstEmp = dbsCurrent.OpenRecordset("SELECT * FROM [Employé];")

Do While Not rstEmp.EOF

dbsCurrent.Execute "INSERT INTO [Cont horaire]
(Heure_normale,Ref_employé)"
VALUES (" & 8 & "," & rstEmp.Fields("Ref_employé") & ";")
rstEmp.MoveNext

Loop

Set rstEmp = Nothing
Set dbsCurrent = Nothing

Lors de l'execution, j'obtiens une erreur qui me ramène à la ligne suivante :
VALUES (" & 8 & "," & rstEmp.Fields("Ref_employé") & ";")
et plus particulièrement sur ("Ref_employé") en disant :
erreur de compilation, séparateur de liste attendu.

J'ai essayé de changer plein de trucs mais pas de solution

Voici le détail de ma base pour plus de clareté

Tables : Horaire

Ref_horaire
Date

Cont horaire

Ref_cont_horaire
Ref_employé
Ref_horaire
Heure_normale
Heure_supp

Employé

Ref_employé
Nom

Formulaire : Horaire
Sous-formulaire : Cont horaire Sous-formulaire


D'avance merci beaucoup car je ne peux m'en sortir seul...

Baptiste

10 réponses

1 2
Avatar
Pierre CFI [mvp]
bonjour
ici
VALUES (" & 8 & "," & rstEmp.Fields("Ref_employé") & ")"
tu n'as pas besoin de mettre 8 en dehors de la chaine
VALUES (8," & rstEmp.Fields("Ref_employé") & ")"


--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
Site perso
http://access.cfi.free.fr
"Baptiste" a écrit dans le message de
news:
Bonjour,

J'ai un petit problème, pour cela je vous explique ma base

J'ai une table "Horaire" qui est relie par une relation 1 a plusieurs a une
table "Contenu Horaire". Cette derniere est relie a la table employe par une
relation plusieurs a 1. En fait, je veux creer un nouvel enregistrement
horaire correspondant a une date precise. Cette enregistrement contiendra un
sous formulaire (cont horaire). Chaque ligne du sous formulaire fera
reference a un employe. Je sais creer tout cela et ca fonctionne, mais ce que
je veux, c'est que chaque nouvel enregistrememt "horaire" contiennent deja
l'ensemble des employes avec par exemple le champ "Heure_normale" de la table
cont horaire egal a 8 pour chaque employe. Ce qui m'eviterait de
reselectionner + de 100 employes par jour...

Mon code VB pour generer un nouvel enregistrement automatiquement
correspondant a chaque ligne de la table employe en assignant par defaut une
valeur au champ "Heure_normale" ne fonctionne pas.

Voilà le code que j'ai appliqué sur l'évenement Click d'un bouton dans mon
formulaire Horaire.

Dim dbsCurrent As Database
Dim rstEmp As Recordset
Set dbsCurrent = OpenDatabase(CurrentDb.Name)
Set rstEmp = dbsCurrent.OpenRecordset("SELECT * FROM [Employé];")

Do While Not rstEmp.EOF

dbsCurrent.Execute "INSERT INTO [Cont horaire]
(Heure_normale,Ref_employé)"
VALUES (" & 8 & "," & rstEmp.Fields("Ref_employé") & ";")
rstEmp.MoveNext

Loop

Set rstEmp = Nothing
Set dbsCurrent = Nothing

Lors de l'execution, j'obtiens une erreur qui me ramène à la ligne suivante :
VALUES (" & 8 & "," & rstEmp.Fields("Ref_employé") & ";")
et plus particulièrement sur ("Ref_employé") en disant :
erreur de compilation, séparateur de liste attendu.

J'ai essayé de changer plein de trucs mais pas de solution

Voici le détail de ma base pour plus de clareté

Tables : Horaire

Ref_horaire
Date

Cont horaire

Ref_cont_horaire
Ref_employé
Ref_horaire
Heure_normale
Heure_supp

Employé

Ref_employé
Nom

Formulaire : Horaire
Sous-formulaire : Cont horaire Sous-formulaire


D'avance merci beaucoup car je ne peux m'en sortir seul...

Baptiste






Avatar
Baptiste
Merci pour ta réponse, mais il affiche toujours toute la ligne en rouge et il
indique erreur de syntaxe...une autre idée?

Merci

Baptiste


bonjour
ici
VALUES (" & 8 & "," & rstEmp.Fields("Ref_employé") & ")"
tu n'as pas besoin de mettre 8 en dehors de la chaine
VALUES (8," & rstEmp.Fields("Ref_employé") & ")"


--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
Site perso
http://access.cfi.free.fr
"Baptiste" a écrit dans le message de
news:
Bonjour,

J'ai un petit problème, pour cela je vous explique ma base

J'ai une table "Horaire" qui est relie par une relation 1 a plusieurs a une
table "Contenu Horaire". Cette derniere est relie a la table employe par une
relation plusieurs a 1. En fait, je veux creer un nouvel enregistrement
horaire correspondant a une date precise. Cette enregistrement contiendra un
sous formulaire (cont horaire). Chaque ligne du sous formulaire fera
reference a un employe. Je sais creer tout cela et ca fonctionne, mais ce que
je veux, c'est que chaque nouvel enregistrememt "horaire" contiennent deja
l'ensemble des employes avec par exemple le champ "Heure_normale" de la table
cont horaire egal a 8 pour chaque employe. Ce qui m'eviterait de
reselectionner + de 100 employes par jour...

Mon code VB pour generer un nouvel enregistrement automatiquement
correspondant a chaque ligne de la table employe en assignant par defaut une
valeur au champ "Heure_normale" ne fonctionne pas.

Voilà le code que j'ai appliqué sur l'évenement Click d'un bouton dans mon
formulaire Horaire.

Dim dbsCurrent As Database
Dim rstEmp As Recordset
Set dbsCurrent = OpenDatabase(CurrentDb.Name)
Set rstEmp = dbsCurrent.OpenRecordset("SELECT * FROM [Employé];")

Do While Not rstEmp.EOF

dbsCurrent.Execute "INSERT INTO [Cont horaire]
(Heure_normale,Ref_employé)"
VALUES (" & 8 & "," & rstEmp.Fields("Ref_employé") & ";")
rstEmp.MoveNext

Loop

Set rstEmp = Nothing
Set dbsCurrent = Nothing

Lors de l'execution, j'obtiens une erreur qui me ramène à la ligne suivante :
VALUES (" & 8 & "," & rstEmp.Fields("Ref_employé") & ";")
et plus particulièrement sur ("Ref_employé") en disant :
erreur de compilation, séparateur de liste attendu.

J'ai essayé de changer plein de trucs mais pas de solution

Voici le détail de ma base pour plus de clareté

Tables : Horaire

Ref_horaire
Date

Cont horaire

Ref_cont_horaire
Ref_employé
Ref_horaire
Heure_normale
Heure_supp

Employé

Ref_employé
Nom

Formulaire : Horaire
Sous-formulaire : Cont horaire Sous-formulaire


D'avance merci beaucoup car je ne peux m'en sortir seul...

Baptiste











Avatar
Pierre CFI [mvp]
ref_emplyé ne serait pas du texte ? si oui mets des '
VALUES (8,'" & rstEmp.Fields("Ref_employé") & "')"


--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
Site perso
http://access.cfi.free.fr
"Baptiste" a écrit dans le message de
news:
Merci pour ta réponse, mais il affiche toujours toute la ligne en rouge et il
indique erreur de syntaxe...une autre idée?

Merci

Baptiste


bonjour
ici
VALUES (" & 8 & "," & rstEmp.Fields("Ref_employé") & ")"
tu n'as pas besoin de mettre 8 en dehors de la chaine
VALUES (8," & rstEmp.Fields("Ref_employé") & ")"


--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
Site perso
http://access.cfi.free.fr
"Baptiste" a écrit dans le message de
news:
Bonjour,

J'ai un petit problème, pour cela je vous explique ma base

J'ai une table "Horaire" qui est relie par une relation 1 a plusieurs a une
table "Contenu Horaire". Cette derniere est relie a la table employe par une
relation plusieurs a 1. En fait, je veux creer un nouvel enregistrement
horaire correspondant a une date precise. Cette enregistrement contiendra un
sous formulaire (cont horaire). Chaque ligne du sous formulaire fera
reference a un employe. Je sais creer tout cela et ca fonctionne, mais ce que
je veux, c'est que chaque nouvel enregistrememt "horaire" contiennent deja
l'ensemble des employes avec par exemple le champ "Heure_normale" de la table
cont horaire egal a 8 pour chaque employe. Ce qui m'eviterait de
reselectionner + de 100 employes par jour...

Mon code VB pour generer un nouvel enregistrement automatiquement
correspondant a chaque ligne de la table employe en assignant par defaut une
valeur au champ "Heure_normale" ne fonctionne pas.

Voilà le code que j'ai appliqué sur l'évenement Click d'un bouton dans mon
formulaire Horaire.

Dim dbsCurrent As Database
Dim rstEmp As Recordset
Set dbsCurrent = OpenDatabase(CurrentDb.Name)
Set rstEmp = dbsCurrent.OpenRecordset("SELECT * FROM [Employé];")

Do While Not rstEmp.EOF

dbsCurrent.Execute "INSERT INTO [Cont horaire]
(Heure_normale,Ref_employé)"
VALUES (" & 8 & "," & rstEmp.Fields("Ref_employé") & ";")
rstEmp.MoveNext

Loop

Set rstEmp = Nothing
Set dbsCurrent = Nothing

Lors de l'execution, j'obtiens une erreur qui me ramène à la ligne suivante :
VALUES (" & 8 & "," & rstEmp.Fields("Ref_employé") & ";")
et plus particulièrement sur ("Ref_employé") en disant :
erreur de compilation, séparateur de liste attendu.

J'ai essayé de changer plein de trucs mais pas de solution

Voici le détail de ma base pour plus de clareté

Tables : Horaire

Ref_horaire
Date

Cont horaire

Ref_cont_horaire
Ref_employé
Ref_horaire
Heure_normale
Heure_supp

Employé

Ref_employé
Nom

Formulaire : Horaire
Sous-formulaire : Cont horaire Sous-formulaire


D'avance merci beaucoup car je ne peux m'en sortir seul...

Baptiste













Avatar
Baptiste
Non, Ref_employé est un num auto donc de type numérique...je ne comprend pas
et ça me bloque vraiment dans mon travail...une autre idée peut etre?

Merci pour ton aide

Baptiste


ref_emplyé ne serait pas du texte ? si oui mets des '
VALUES (8,'" & rstEmp.Fields("Ref_employé") & "')"


--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
Site perso
http://access.cfi.free.fr
"Baptiste" a écrit dans le message de
news:
Merci pour ta réponse, mais il affiche toujours toute la ligne en rouge et il
indique erreur de syntaxe...une autre idée?

Merci

Baptiste


bonjour
ici
VALUES (" & 8 & "," & rstEmp.Fields("Ref_employé") & ")"
tu n'as pas besoin de mettre 8 en dehors de la chaine
VALUES (8," & rstEmp.Fields("Ref_employé") & ")"


--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
Site perso
http://access.cfi.free.fr
"Baptiste" a écrit dans le message de
news:
Bonjour,

J'ai un petit problème, pour cela je vous explique ma base

J'ai une table "Horaire" qui est relie par une relation 1 a plusieurs a une
table "Contenu Horaire". Cette derniere est relie a la table employe par une
relation plusieurs a 1. En fait, je veux creer un nouvel enregistrement
horaire correspondant a une date precise. Cette enregistrement contiendra un
sous formulaire (cont horaire). Chaque ligne du sous formulaire fera
reference a un employe. Je sais creer tout cela et ca fonctionne, mais ce que
je veux, c'est que chaque nouvel enregistrememt "horaire" contiennent deja
l'ensemble des employes avec par exemple le champ "Heure_normale" de la table
cont horaire egal a 8 pour chaque employe. Ce qui m'eviterait de
reselectionner + de 100 employes par jour...

Mon code VB pour generer un nouvel enregistrement automatiquement
correspondant a chaque ligne de la table employe en assignant par defaut une
valeur au champ "Heure_normale" ne fonctionne pas.

Voilà le code que j'ai appliqué sur l'évenement Click d'un bouton dans mon
formulaire Horaire.

Dim dbsCurrent As Database
Dim rstEmp As Recordset
Set dbsCurrent = OpenDatabase(CurrentDb.Name)
Set rstEmp = dbsCurrent.OpenRecordset("SELECT * FROM [Employé];")

Do While Not rstEmp.EOF

dbsCurrent.Execute "INSERT INTO [Cont horaire]
(Heure_normale,Ref_employé)"
VALUES (" & 8 & "," & rstEmp.Fields("Ref_employé") & ";")
rstEmp.MoveNext

Loop

Set rstEmp = Nothing
Set dbsCurrent = Nothing

Lors de l'execution, j'obtiens une erreur qui me ramène à la ligne suivante :
VALUES (" & 8 & "," & rstEmp.Fields("Ref_employé") & ";")
et plus particulièrement sur ("Ref_employé") en disant :
erreur de compilation, séparateur de liste attendu.

J'ai essayé de changer plein de trucs mais pas de solution

Voici le détail de ma base pour plus de clareté

Tables : Horaire

Ref_horaire
Date

Cont horaire

Ref_cont_horaire
Ref_employé
Ref_horaire
Heure_normale
Heure_supp

Employé

Ref_employé
Nom

Formulaire : Horaire
Sous-formulaire : Cont horaire Sous-formulaire


D'avance merci beaucoup car je ne peux m'en sortir seul...

Baptiste


















Avatar
3stone
Salut,

"Baptiste"
J’ai un petit problème, pour cela je vous explique ma base
[...]

dbsCurrent.Execute "INSERT INTO [Cont horaire]
(Heure_normale,Ref_employé)"
VALUES (" & 8 & "," & rstEmp.Fields("Ref_employé") & ";")



"Insert Into table (......) Values (".......


Values *doit* se trouver DANS la chaîne de caractères !!


--
A+
Pierre (3stone) Access MVP
~~~~~~~~~~~~~~~~~~~~~~~
http://users.skynet.be/mpfa
http://users.skynet.be/accesshome

Avatar
Baptiste
Bonjour,

L'erreur de syntase est enfin réparée, merci beaucoup !
Lorsque j'appuye sur le bouton, pas d'erreur mais aucune action ne se
produit dans mon sous-formulaire...j'ai pourtant les 2 champs qui sont créés,
je ne sais pas quoi faire...une petite idée peut etre...

Merci

Baptiste


Salut,

"Baptiste"
J’ai un petit problème, pour cela je vous explique ma base
[...]

dbsCurrent.Execute "INSERT INTO [Cont horaire]
(Heure_normale,Ref_employé)"
VALUES (" & 8 & "," & rstEmp.Fields("Ref_employé") & ";")



"Insert Into table (......) Values (".......


Values *doit* se trouver DANS la chaîne de caractères !!


--
A+
Pierre (3stone) Access MVP
~~~~~~~~~~~~~~~~~~~~~~~
http://users.skynet.be/mpfa
http://users.skynet.be/accesshome







Avatar
3stone
Salut,

"Baptiste"

L'erreur de syntase est enfin réparée, merci beaucoup !
Lorsque j'appuye sur le bouton, pas d'erreur mais aucune action ne se
produit dans mon sous-formulaire...j'ai pourtant les 2 champs qui sont créés,
je ne sais pas quoi faire...une petite idée peut etre...



Mettre à jour le sous-form...

Me!NomSousForm.Requery



--
A+
Pierre (3stone) Access MVP
~~~~~~~~~~~~~~~~~~~~~~~
http://users.skynet.be/mpfa
http://users.skynet.be/accesshome

Avatar
Baptiste
ça marche pas, je desespère.....

Baptiste


Salut,

"Baptiste"

L'erreur de syntase est enfin réparée, merci beaucoup !
Lorsque j'appuye sur le bouton, pas d'erreur mais aucune action ne se
produit dans mon sous-formulaire...j'ai pourtant les 2 champs qui sont créés,
je ne sais pas quoi faire...une petite idée peut etre...



Mettre à jour le sous-form...

Me!NomSousForm.Requery



--
A+
Pierre (3stone) Access MVP
~~~~~~~~~~~~~~~~~~~~~~~
http://users.skynet.be/mpfa
http://users.skynet.be/accesshome







Avatar
3stone
Salut,

"Baptiste"

ça marche pas, je desespère.....




Un peu court pour décrire le problème, non ?

Qu'est ce que tu as écrit ? et ou ?



Après ton:

dbsCurrent.Execute "INSERT INTO [Cont horaire]
(Heure_normale,Ref_employé)"
VALUES (" & 8 & "," & rstEmp.Fields("Ref_employé") & ";")


Si ce que tu ajoute à [Cont horaire] est bien la source du sous-formulaire, tu ajoute:


Me!NomDuSousFormulaire.Requery


et le sous formulaire devrait se raffraichir...

--
A+
Pierre (3stone) Access MVP
~~~~~~~~~~~~~~~~~~~~~~~
http://users.skynet.be/mpfa
http://users.skynet.be/accesshome

Avatar
Baptiste
Désolé...il n'y a plus d'erreur de syntaxe mais rien ne se passe...
Je crée une nouvelle fiche horaire, je clique sur mon bouton qui contient le
code pour générer automatiquement un enregistrement par employé et rien ne se
passe..
J'ai pourtant bien mes deux champs qui sont crées dans mon sous formulaire...

Voici à nouveau le code que j'utilise :

Private Sub Commande22_Click()
On Error GoTo Err_Commande22_Click

Dim dbsCurrent As Database
Dim rstEmp As Recordset
Set dbsCurrent = OpenDatabase(CurrentDb.Name)
Set rstEmp = dbsCurrent.OpenRecordset("SELECT * FROM [Employé];")

Do While Not rstEmp.EOF
dbsCurrent.Execute "INSERT INTO [Cont horaire] (Heure_normale,
Ref_employé) VALUES (" & 8 & "," & rstEmp.Fields("Ref_employé") & ")"
rstEmp.MoveNext
Loop

Set rstEmp = Nothing
Set dbsCurrent = Nothing


Exit_Commande22_Click:
Exit Sub

Err_Commande22_Click:
MsgBox Err.Description
Resume Exit_Commande22_Click

End Sub

Le bouton est placé dans mon formulaire, et j'ai aussi tenté de le placer
dans mon sous formulaire au cas ou, mais pas de différence...
Le num auto de la table Cont_horaire est censé se générer tout seul lors de
l'execution de la boucle ou il faut qu'il fasse parti de la boucle?! Si oui
quel est le code...

Merci beaucoup pour le temps que tu consacres à mon problème.

Baptiste



Salut,

"Baptiste"

ça marche pas, je desespère.....




Un peu court pour décrire le problème, non ?

Qu'est ce que tu as écrit ? et ou ?



Après ton:

dbsCurrent.Execute "INSERT INTO [Cont horaire]
(Heure_normale,Ref_employé)"
VALUES (" & 8 & "," & rstEmp.Fields("Ref_employé") & ";")


Si ce que tu ajoute à [Cont horaire] est bien la source du sous-formulaire, tu ajoute:


Me!NomDuSousFormulaire.Requery


et le sous formulaire devrait se raffraichir...

--
A+
Pierre (3stone) Access MVP
~~~~~~~~~~~~~~~~~~~~~~~
http://users.skynet.be/mpfa
http://users.skynet.be/accesshome







1 2