Commande valider access
sya21
Messages postés
426
Date d'inscription
Statut
Membre
Dernière intervention
-
sya21 Messages postés 426 Date d'inscription Statut Membre Dernière intervention -
sya21 Messages postés 426 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
jai du code vb qui me permet d'inserer ou de supprimer des enregistrements dans une table lorque je clique sur le bouton valider , cependant mon code ne marche pas et je ne trouve pas l'erreur mercu de m'aider
Private Sub Cmd_valid_Click()
On Error GoTo Err_cmd_valid_Click
If chx <> "a" Then
lst_id.Visible = False
lst_nom = ""
Else
lst_id.Visible = True
lst_nom.Visible = False
End If
If chx <> "s" Then
If chx = "a" Then
End If
End If
DoCmd.RunCommand acCmdRecordsGoToNew
lst_id.Requery
lst_id = ""
Now.RowSource = "SELECT avril09.* from avril09; "
Me.Refresh
If chx = "m" Or "a" Then
dmcmd.RunSQL "insert into avril09(division,section,entité_pilotage,identifiant,UP,Nom,Prenom,Agent_Sexe,Grade,Clasniv_grade,n°_fonction,libelle_fonction,clasniv_fct,Agent_Statut,Date_naissance,quotite) values('" & Me.division & "," & Me.section & " , " & Me.[entité pilotage] & " , " & Me.identifiant & " , " & Me.UP & " , " & Me.Prenom & " , " & Me.[Agent Sexe] & " , " & Me.Grade & " , " & Me.clasniv_grade & " , " & Me.[n° fonction] & " , " & Me.Libelle_fonction & " , " & Me.clasniv_fct & " , " & Me.[Agent Statut] & " , " & Me.[Date naissance] & " , " & Me.quotite & "' )"
End If
If chx = "s" Then
dmcmd.RunSQL "delete avril09.* from avril09 where identifiant = " & CLng(lst_id.Value)
DoCmd.RunSQL req
DoCmd.Close acForm, "frm_personnel"
End Sub
merci!!!
jai du code vb qui me permet d'inserer ou de supprimer des enregistrements dans une table lorque je clique sur le bouton valider , cependant mon code ne marche pas et je ne trouve pas l'erreur mercu de m'aider
Private Sub Cmd_valid_Click()
On Error GoTo Err_cmd_valid_Click
If chx <> "a" Then
lst_id.Visible = False
lst_nom = ""
Else
lst_id.Visible = True
lst_nom.Visible = False
End If
If chx <> "s" Then
If chx = "a" Then
End If
End If
DoCmd.RunCommand acCmdRecordsGoToNew
lst_id.Requery
lst_id = ""
Now.RowSource = "SELECT avril09.* from avril09; "
Me.Refresh
If chx = "m" Or "a" Then
dmcmd.RunSQL "insert into avril09(division,section,entité_pilotage,identifiant,UP,Nom,Prenom,Agent_Sexe,Grade,Clasniv_grade,n°_fonction,libelle_fonction,clasniv_fct,Agent_Statut,Date_naissance,quotite) values('" & Me.division & "," & Me.section & " , " & Me.[entité pilotage] & " , " & Me.identifiant & " , " & Me.UP & " , " & Me.Prenom & " , " & Me.[Agent Sexe] & " , " & Me.Grade & " , " & Me.clasniv_grade & " , " & Me.[n° fonction] & " , " & Me.Libelle_fonction & " , " & Me.clasniv_fct & " , " & Me.[Agent Statut] & " , " & Me.[Date naissance] & " , " & Me.quotite & "' )"
End If
If chx = "s" Then
dmcmd.RunSQL "delete avril09.* from avril09 where identifiant = " & CLng(lst_id.Value)
DoCmd.RunSQL req
DoCmd.Close acForm, "frm_personnel"
End Sub
merci!!!
A voir également:
- Commande valider access
- Invite de commande - Guide
- Commande terminal mac - Guide
- Commande dism - Guide
- Acer quick access - Forum Logiciels
- Commande scannow - Guide
83 réponses
ton code est bien trop long pour moi, mais voici la solution, il faut tout d'abord détecter l'erreur je te propose de commencer par soit mettre des points d'arrêts soit des msgbox pour savoir ce qu'il y a dans tes variables
une fois l'erreur ciblé on pourras intervenir que mieux au lieu d'en créer, comme cela peut être le cas maintenant
une fois l'erreur ciblé on pourras intervenir que mieux au lieu d'en créer, comme cela peut être le cas maintenant
déjà un problème la dessus
If chx <> "s" Then
If chx = "a" Then
End If
End If
DoCmd.RunCommand acCmdRecordsGoToNew
lst_id.Requery
lst_id = ""
tu fait deux if et tu les ferme sans rien mettre dedans est ce normal?
de plus à quoi te sert
DoCmd.RunCommand acCmdRecordsGoToNew
lst_id.Requery
lst_id = ""
je ne connais pas la commande que tu utilise mais j'ai un doute éclaire moi la dessus
If chx <> "s" Then
If chx = "a" Then
End If
End If
DoCmd.RunCommand acCmdRecordsGoToNew
lst_id.Requery
lst_id = ""
tu fait deux if et tu les ferme sans rien mettre dedans est ce normal?
de plus à quoi te sert
DoCmd.RunCommand acCmdRecordsGoToNew
lst_id.Requery
lst_id = ""
je ne connais pas la commande que tu utilise mais j'ai un doute éclaire moi la dessus
si le problème viendrais de ta requête tu aurais sûrement un message d'erreur mais il y a un cas ou ce ne marche pas comme ça c'est vrai
mets des msgbox avant et après chaque variables
et un points d'arrêts sur ta ligne de requête
et enfin donne moi les types des valeurs que tu passe dans ta requêtes
mets des msgbox avant et après chaque variables
et un points d'arrêts sur ta ligne de requête
et enfin donne moi les types des valeurs que tu passe dans ta requêtes
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
je pense que ces instructions ne me servent plus.en faite jai une liste déroulante lst_id lorsque je clique dessus toutes les informations concernant les personnes se remplissent . je peux ainsi modifier supprimer des informations
cest la qu intervient le bouton valider dont mon code est faux
cest la qu intervient le bouton valider dont mon code est faux
il me faut impérativement les valeurs que tu rentre dans tes champs, a savoir si tu rentre des chaînes de caractère ou un format date ect
values('" & Me.division & "," & Me.section & " , " & Me.[entité pilotage] & " , " & Me.identifiant & " , " & Me.UP & " , " & Me.Prenom & " , " & Me.[Agent Sexe] & " , " & Me.Grade & " , " & Me.clasniv_grade & " , " & Me.[n° fonction] & " , " & Me.Libelle_fonction & " , " & Me.clasniv_fct & " , " & Me.[Agent Statut] & " , " & Me.[Date naissance] & " , " & Me.quotite & "' )"
l'erreur réside sûrement dedans
values('" & Me.division & "," & Me.section & " , " & Me.[entité pilotage] & " , " & Me.identifiant & " , " & Me.UP & " , " & Me.Prenom & " , " & Me.[Agent Sexe] & " , " & Me.Grade & " , " & Me.clasniv_grade & " , " & Me.[n° fonction] & " , " & Me.Libelle_fonction & " , " & Me.clasniv_fct & " , " & Me.[Agent Statut] & " , " & Me.[Date naissance] & " , " & Me.quotite & "' )"
l'erreur réside sûrement dedans
cest que du texte ou des nombres
date de naissace cest type date
quotité sexe up entite pilotage cest du nombre le reste du texte
date de naissace cest type date
quotité sexe up entite pilotage cest du nombre le reste du texte
si tu veux je tenvoi mon formulaire par mail
jai le meme formulaire avec la requete qui marche mais le code est le meme jai fait un copier coller dans celui la et sa ne marche pas
jai changé certains champ depuis.mais jai gardé des meme nom
jai le meme formulaire avec la requete qui marche mais le code est le meme jai fait un copier coller dans celui la et sa ne marche pas
jai changé certains champ depuis.mais jai gardé des meme nom
nan c'est pas la peine merci je vais t'expliquer la syntaxe est très rigoureuse dans un "insert to" et en plus il faut ajouter des cochoneries
alors part étape tu dois :
vérifier que tout les champs de ta table sont bien orthographier comme dans ta requête
fait de même pour tes values
ensuite vérifie que tes values reçoivent bien les valeurs que tu rentre dans ton formulaires ( avec un points d'arrêts)
vérifie que tes values correspondent bien à tes champs
ensuite lorsque tu devra remplir un champ qui contient du texte tu devra utiliser la syntaxe suivante:
ça : '" & Me.Libelle_fonction & "' au lieu de ça " & Me.Libelle_fonction & "
différence de simple quote
de même pour les champ de format date
ça : #" & Me.Libelle_fonction & "# au lieu de ça " & Me.Libelle_fonction & "
et enfin ajoute un ; à la fin
] & " , " & Me.quotite & "' );"
et regarde par la peut être que .....
http://www.commentcamarche.net/forum/affich 12903676 il me faut une paire d yeux?#14
alors part étape tu dois :
vérifier que tout les champs de ta table sont bien orthographier comme dans ta requête
fait de même pour tes values
ensuite vérifie que tes values reçoivent bien les valeurs que tu rentre dans ton formulaires ( avec un points d'arrêts)
vérifie que tes values correspondent bien à tes champs
ensuite lorsque tu devra remplir un champ qui contient du texte tu devra utiliser la syntaxe suivante:
ça : '" & Me.Libelle_fonction & "' au lieu de ça " & Me.Libelle_fonction & "
différence de simple quote
de même pour les champ de format date
ça : #" & Me.Libelle_fonction & "# au lieu de ça " & Me.Libelle_fonction & "
et enfin ajoute un ; à la fin
] & " , " & Me.quotite & "' );"
et regarde par la peut être que .....
http://www.commentcamarche.net/forum/affich 12903676 il me faut une paire d yeux?#14
que je t'explique mon enfant (:)) quand je dit values c'est pour me la péter je devrais dire valeur, par contre quand je dis values c'est que ça correspond à VALUES de ton insert to, la dedans il y a tout tes items comme une zone de texte ou liste déroulante et que sais je encore. bref le problème est que tu a une erreur mais que rien ne s'affiche pour te l'indiquer donc cela peut venir de ta syntaxe de ton insert to
si tu a une zone de texte pour prendre un exemple
le champ prénom tu dois avoir une zone de texte ou une liste déroulante pour saisir le prénom ce que tu a choisis est un item que tu utilise dans VALUES de cette façon " & Me.Prenom & "
pour une chaine de caractère tu dois impérativement entouré par des guillemets sinon rien ne s'affiche dans ta table
de même pour la date que tu dois entourer de #....#
bref ça tu l'as compris
maintenant pour mettre un points d'arrêts ( et ce une fois que tu sauras l'utiliser tu verra c'est très utiles )
il suffit que tu aille dans la fenêtre de code vb tu vas sur la ligne de code ( ici la ligne de ta commande INSERT TO ) et dans la marge tu click et normalement tu dois avoir un point rouge écarlate et ta ligne se surlignera de la même couleur
en espérant que tu ais tout compris
si tu a une zone de texte pour prendre un exemple
le champ prénom tu dois avoir une zone de texte ou une liste déroulante pour saisir le prénom ce que tu a choisis est un item que tu utilise dans VALUES de cette façon " & Me.Prenom & "
pour une chaine de caractère tu dois impérativement entouré par des guillemets sinon rien ne s'affiche dans ta table
de même pour la date que tu dois entourer de #....#
bref ça tu l'as compris
maintenant pour mettre un points d'arrêts ( et ce une fois que tu sauras l'utiliser tu verra c'est très utiles )
il suffit que tu aille dans la fenêtre de code vb tu vas sur la ligne de code ( ici la ligne de ta commande INSERT TO ) et dans la marge tu click et normalement tu dois avoir un point rouge écarlate et ta ligne se surlignera de la même couleur
en espérant que tu ais tout compris
jai changé comme tu m'as dit jai mis un point d'arret sur la ligne de ma commande mais tj rien ne se passe
Private Sub Cmd_valid_Click()
On Error GoTo Err_cmd_valid_Click
DoCmd.RunCommand acCmdRecordsGoToNew
lst_id.Requery
lst_id = ""
'renvoi les données de la requete
Now.RowSource = "SELECT avril09.* from avril09; "
Me.Refresh
If chx = "m" Or "a" Then
dmcmd.RunSQL "INSERT INTO avril09(division,section,entité_pilotage,identifiant,UP,Nom,Prenom,Agent_Sexe,Grade,Clasniv_grade,n°_fonction,libelle_fonction,clasniv_fct,Agent_Statut,Date_naissance,quotite) VALUES ('" & Me.division & " ' , ' " & Me.section & " ' , " & Me.[entité pilotage] & " , " & Me.identifiant & " , ' " & Me.Nom & " ' , " & Me.UP & " , ' " & Me.Prenom & " ' , " & Me.[Agent_Sexe] & " , ' " & Me.Grade & " ' , " & Me.clasniv_grade & " , " & Me.[n°_fonction] & " , ' " & Me.Libelle_fonction & " ' , " & Me.clasniv_fct & " , ' " & Me.[Agent_Statut] & " ' , # " & Me.[Date_naissance] & " # , " & Me.quotite & " )"
End If
If chx = "s" Then
dmcmd.RunSQL "DELETE avril09.* FROM avril09 WHERE identifiant = " & CLng(lst_id.Value)
DoCmd.RunSQL req
End If
DoCmd.Close acForm, "frm_personnel"
End Sub
Private Sub Cmd_valid_Click()
On Error GoTo Err_cmd_valid_Click
DoCmd.RunCommand acCmdRecordsGoToNew
lst_id.Requery
lst_id = ""
'renvoi les données de la requete
Now.RowSource = "SELECT avril09.* from avril09; "
Me.Refresh
If chx = "m" Or "a" Then
dmcmd.RunSQL "INSERT INTO avril09(division,section,entité_pilotage,identifiant,UP,Nom,Prenom,Agent_Sexe,Grade,Clasniv_grade,n°_fonction,libelle_fonction,clasniv_fct,Agent_Statut,Date_naissance,quotite) VALUES ('" & Me.division & " ' , ' " & Me.section & " ' , " & Me.[entité pilotage] & " , " & Me.identifiant & " , ' " & Me.Nom & " ' , " & Me.UP & " , ' " & Me.Prenom & " ' , " & Me.[Agent_Sexe] & " , ' " & Me.Grade & " ' , " & Me.clasniv_grade & " , " & Me.[n°_fonction] & " , ' " & Me.Libelle_fonction & " ' , " & Me.clasniv_fct & " , ' " & Me.[Agent_Statut] & " ' , # " & Me.[Date_naissance] & " # , " & Me.quotite & " )"
End If
If chx = "s" Then
dmcmd.RunSQL "DELETE avril09.* FROM avril09 WHERE identifiant = " & CLng(lst_id.Value)
DoCmd.RunSQL req
End If
DoCmd.Close acForm, "frm_personnel"
End Sub
autant pour moi j'ai oublié de te donner une explication essentielle , lorsque tu passe ton curseur sur une variable tu peux voir ce qu'elle contiens
exemple
je met un points d'arrêts sur la ligne en question je ferme et j'ouvre mon formulaire ( si il n'est pas déjà ouvert) ensuite je remplis mes champs normalement rien ne se passe mais maintenant j'appuie sur le bouton valider ( bouton ou se situe mon code et donc mon points d'arrêts ) maintenant l'ordinateur exécute chaque instruction jusqu'à la ligne de code ou est le point d'arrêt, la le programme s'arrête et la fenêtre de vb s'ouvre tu es directement positionné sur la ligne de code arrêter, tu l'a verra en jaune et la tu pourras passer la souris sur les champs tel que " & Me.quotite & " et tu verra une sorte d'infobule qui te donneras le contenu de ta variable, si il y a ce que tu as rentré c'est déjà très encourageant
exemple
je met un points d'arrêts sur la ligne en question je ferme et j'ouvre mon formulaire ( si il n'est pas déjà ouvert) ensuite je remplis mes champs normalement rien ne se passe mais maintenant j'appuie sur le bouton valider ( bouton ou se situe mon code et donc mon points d'arrêts ) maintenant l'ordinateur exécute chaque instruction jusqu'à la ligne de code ou est le point d'arrêt, la le programme s'arrête et la fenêtre de vb s'ouvre tu es directement positionné sur la ligne de code arrêter, tu l'a verra en jaune et la tu pourras passer la souris sur les champs tel que " & Me.quotite & " et tu verra une sorte d'infobule qui te donneras le contenu de ta variable, si il y a ce que tu as rentré c'est déjà très encourageant
alors déjà il y a une anomalie car au niveau du champ up correspond la valeur de nom et au niveau du champ nom correspond la valeur de up
maintenant qu'est ce qu'es division dans ta table ta clé?, ou alors tu ne saisie pas la valeur de division dans ton formulaire
je vais me renseigner sur l'erreur
maintenant qu'est ce qu'es division dans ta table ta clé?, ou alors tu ne saisie pas la valeur de division dans ton formulaire
je vais me renseigner sur l'erreur
Pourtant ma requete fonctionnait parfaitement hier avant que je modifie certains cahmp du formulaire
jai insérer des prédicats d'expression dans les listes déroulantes
jai insérer des prédicats d'expression dans les listes déroulantes
un truc con mais
dmcmd.RunSQL "INSERT INTO avril09(division,section,entité_pilotage,identifiant,UP,Nom,Prenom,Agent_Sexe,Grade,Clasniv_grade,n°_fonction,libelle_fonction,clasniv_fct,Agent_Statut,Date_naissance,quotite) VALUES ('" & Me.division & " ' , ' " & Me.section & " ' , " & Me.[entité pilotage] & " , " & Me.identifiant & " , ' " & Me.Nom & " ' , " & Me.UP & " , ' " & Me.Prenom & " ' , " & Me.[Agent_Sexe] & " , ' " & Me.Grade & " ' , " & Me.clasniv_grade & " , " & Me.[n°_fonction] & " , ' " & Me.Libelle_fonction & " ' , " & Me.clasniv_fct & " , ' " & Me.[Agent_Statut] & " ' , # " & Me.[Date_naissance] & " # , " & Me.quotite & " )"
End If
If chx = "s" Then
dmcmd.RunSQL "DELETE avril09.* FROM avril09 WHERE identifiant = " & CLng(lst_id.Value)
ce n'est pas DoCmd à la place?
dmcmd.RunSQL "INSERT INTO avril09(division,section,entité_pilotage,identifiant,UP,Nom,Prenom,Agent_Sexe,Grade,Clasniv_grade,n°_fonction,libelle_fonction,clasniv_fct,Agent_Statut,Date_naissance,quotite) VALUES ('" & Me.division & " ' , ' " & Me.section & " ' , " & Me.[entité pilotage] & " , " & Me.identifiant & " , ' " & Me.Nom & " ' , " & Me.UP & " , ' " & Me.Prenom & " ' , " & Me.[Agent_Sexe] & " , ' " & Me.Grade & " ' , " & Me.clasniv_grade & " , " & Me.[n°_fonction] & " , ' " & Me.Libelle_fonction & " ' , " & Me.clasniv_fct & " , ' " & Me.[Agent_Statut] & " ' , # " & Me.[Date_naissance] & " # , " & Me.quotite & " )"
End If
If chx = "s" Then
dmcmd.RunSQL "DELETE avril09.* FROM avril09 WHERE identifiant = " & CLng(lst_id.Value)
ce n'est pas DoCmd à la place?