Précédent   Forum du club des développeurs et IT Pro > 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
 
Outils de la discussion
Publicité
'
Vieux 23/11/2012, 21h06   #1
julienivp
Invité de passage
 
julien
Étudiant
Inscription : novembre 2011
Messages : 17
Détails du profil
Informations personnelles :
Nom : julien
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Bâtiment Travaux Publics

Informations forums :
Inscription : novembre 2011
Messages : 17
Points : 2
Points : 2
Par défaut requête ajout vba via formulaire

Bonjour,

Je ne comprends pas pourquoi mon code est refusé:

J'aurais besoin d'aide s'il vous plait sur un code VBA pour:

découper un segment en n troncons
puis ajouter les n tronçons dans la table;

voici mon code:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Private Sub division()
Dim a As Integer
Dim i As interger
Dim b As Double
a = ([Forms]![ajout_tronçon]![cmbPk] - [Forms]![ajout_tronçon]![cmbPk_fin]) * 10
 
    For i = 1 To a
    b = [Forms]![ajout_tronçon]![cmbPk] + i * 0.1
 
CurrentDb.Execute (INSERT INTO Tronçon ( N°Tronçon, N°ligne, Point_kilométrique, N°voie, Type_Plante_1,) 
SELECT TOP 1 (Forms!Ajout_tronçon!cmbnumligne & "_V" & Forms!Ajout_tronçon!cmbnumvoie & "_Pk" & b) AS N°Tronçon, Forms!Ajout_tronçon!cmbnumligne AS N°ligne, b AS Point_kilométrique, [Forms]![ajout_tronçon]![cmbnumvoie] AS N°voie, [Forms]![ajout_tronçon]![cmbtypeplante1] AS Type_Plante_1, 
FROM Tronçon
    Next i
End Sub
Merci beaucoup
julienivp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2012, 18h20   #2
sebing
Membre du Club
 
Homme Seb
Inscription : février 2008
Messages : 193
Détails du profil
Informations personnelles :
Nom : Homme Seb
Localisation : France

Informations forums :
Inscription : février 2008
Messages : 193
Points : 61
Points : 61
Bonsoir ça viendrait pas du nom de ton formulaire?
Le ç doit poser un problème car après le on est en bleu réessaye en renommant le formulaire.

Bonne soirée
Seb
sebing est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2012, 18h23   #3
tee_grandbois
Membre Expert
 
Avatar de tee_grandbois
 
Homme
Ingénieur-Consultant
Inscription : novembre 2004
Messages : 668
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Ingénieur-Consultant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2004
Messages : 668
Points : 1 189
Points : 1 189
Bonsoir,
il y a quelques erreurs de syntaxe dans ton code et des oublis :
" " délimite la partie de type string dans la phrase SQL
& permet de lier des parties variables à la phrase SQL
_ le caractère de continuation d'une phrase SQL à la ligne suivante :
exemple :
Code :
1
2
3
SQL = "SELECT * FROM MATABLE WHERE codenum =" & _
 Monformulaire!mavaleurNum & " AND codealpha ='" Monformulaire!mavaleuralpha & "'" & _
" ORDER BY 1"
Voici ton code corrigé:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Private Sub division()
Dim a As Integer
Dim i As interger
Dim b As Double
a = ([Forms]![ajout_tronçon]![cmbPk] - [Forms]![ajout_tronçon]![cmbPk_fin]) * 10
 
    For i = 1 To a
        b = [Forms]![ajout_tronçon]![cmbPk] + i * 0.1
 
        CurrentDb.Execute ("INSERT INTO Tronçon ( N°Tronçon, N°ligne, Point_kilométrique, N°voie, Type_Plante_1) " & _
        "SELECT TOP 1 " & Forms!ajout_tronçon!cmbnumligne & "_V" & Forms!ajout_tronçon!cmbnumvoie & "_Pk" & b & " AS N°Tronçon," & Forms!ajout_tronçon!cmbnumligne & " AS N°ligne," & b & " AS Point_kilométrique, " & [Forms]![ajout_tronçon]![cmbnumvoie] & " AS N°voie, " & [Forms]![ajout_tronçon]![cmbtypeplante1] & " AS Type_Plante_1" & _
        " FROM Tronçon")
' Mais c'est mieux de l'écrire comme ceci :
        CurrentDb.Execute ("INSERT INTO Tronçon ( N°Tronçon, N°ligne, Point_kilométrique, N°voie, Type_Plante_1) " & _
        "VALUES(" & Forms!ajout_tronçon!cmbnumligne & "_V" & Forms!ajout_tronçon!cmbnumvoie & "_Pk" & b & ", " & Forms!ajout_tronçon!cmbnumligne & ", " & b & ", " & [Forms]![ajout_tronçon]![cmbnumvoie] & ", " & [Forms]![ajout_tronçon]![cmbtypeplante1] & ")")
 
    Next i
 
End Sub
tee_grandbois est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2012, 21h18   #4
julienivp
Invité de passage
 
julien
Étudiant
Inscription : novembre 2011
Messages : 17
Détails du profil
Informations personnelles :
Nom : julien
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Bâtiment Travaux Publics

Informations forums :
Inscription : novembre 2011
Messages : 17
Points : 2
Points : 2
Par défaut requête ajout VBA

Bonjour,

merci de vos réponses.

J'ai fait les modifications cependant lorsque je lance la macro rien ne se passe.

Avant j'avais fait la requête ajout via SQL et ça marchait, donc je ne comprends pas trop pourquoi ça bloque?

Une idée??

Merci d'avance de vos conseils!!
julienivp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2012, 22h26   #5
Djim33
Membre à l'essai
 
Homme
Ingénieur développement logiciels
Inscription : novembre 2012
Messages : 16
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Nouvelle-Calédonie

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : novembre 2012
Messages : 16
Points : 20
Points : 20
comme le dit Sebing essai d'enlever les "ç" de tout tes noms, y compris nom de table et nom de champ.
Djim33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2012, 23h37   #6
tee_grandbois
Membre Expert
 
Avatar de tee_grandbois
 
Homme
Ingénieur-Consultant
Inscription : novembre 2004
Messages : 668
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Ingénieur-Consultant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2004
Messages : 668
Points : 1 189
Points : 1 189
Bonsoir,
encore une erreur de syntaxe (que j'ai oublié) il faut des simples cotes pour délimiter les champs alphanumériques :
Code :
& Forms!ajout_tronçon!cmbnumligne & "_V" & Forms!ajout_tronçon!cmbnumvoie & "_Pk" & b
le champ N°Tronçon en est forcément un. Il faut le faire aussi pour les autres du même type :
Code :
1
2
3
       CurrentDb.Execute ("INSERT INTO Tronçon ( N°Tronçon, N°ligne, Point_kilométrique, N°voie, Type_Plante_1) " & _
        "SELECT TOP 1 '" & Forms!ajout_tronçon!cmbnumligne & "_V" & Forms!ajout_tronçon!cmbnumvoie & "_Pk" & b & "' AS N°Tronçon," & Forms!ajout_tronçon!cmbnumligne & " AS N°ligne," & b & " AS Point_kilométrique, " & [Forms]![ajout_tronçon]![cmbnumvoie] & " AS N°voie, " & [Forms]![ajout_tronçon]![cmbtypeplante1] & " AS Type_Plante_1" & _
        " FROM Tronçon")
ou bien :
Code :
1
2
        CurrentDb.Execute ("INSERT INTO Tronçon ( N°Tronçon, N°ligne, Point_kilométrique, N°voie, Type_Plante_1) " & _
        "VALUES('" & Forms!ajout_tronçon!cmbnumligne & "_V" & Forms!ajout_tronçon!cmbnumvoie & "_Pk" & b & "', " & Forms!ajout_tronçon!cmbnumligne & ", " & b & ", " & [Forms]![ajout_tronçon]![cmbnumvoie] & ", " & [Forms]![ajout_tronçon]![Cmbtypeplante1] & ")")
Note que l'utilisation du caractère 'ç', bien que déconseillé, n'empêche pas le fonctionnement de ton code.
tee_grandbois est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2012, 08h09   #7
julienivp
Invité de passage
 
julien
Étudiant
Inscription : novembre 2011
Messages : 17
Détails du profil
Informations personnelles :
Nom : julien
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Bâtiment Travaux Publics

Informations forums :
Inscription : novembre 2011
Messages : 17
Points : 2
Points : 2
Par défaut requête ajout VBA

Bonjour,

Je vous remercie encore une fois pour vos messages. Mais lorsque je clique sur mon bouton rien ne se passe.

J'ai essayé de supprimer la soustraction (J'ai supprimé - (([Forms]![ajout_tronçon]![cmbpkfin)) dans la boucle car je pense qu'il n'aime pas comment est écrit cette soustraction.
Mais même dans ce cas j'ai une erreure, j'ai un message qui dit : "Trop peu de paramètre. 1 attendus"

Je remets le code que j'utilise après vos conseils:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
Private Sub Commande70_Click()
Dim a As Integer
Dim i As Integer
Dim b As Double
a = (([Forms]![ajout_tronçon]![cmbPk])) * 10
 
    For i = 1 To a
        b = [Forms]![ajout_tronçon]![cmbPk] + i
 
' Mais c'est mieux de l'écrire comme ceci :
      CurrentDb.Execute ("INSERT INTO Tronçon ( N°Tronçon, N°ligne, Point_kilométrique, N°voie, Type_Plante_1) " & _
        "SELECT TOP 1 '" & Forms!ajout_tronçon!cmbnumligne & "_V" & Forms!ajout_tronçon!cmbnumvoie & "_Pk" & b & "' AS N°Tronçon," & Forms!ajout_tronçon!cmbnumligne & " AS N°ligne," & b & " AS Point_kilométrique, " & [Forms]![ajout_tronçon]![cmbnumvoie] & " AS N°voie, " & [Forms]![ajout_tronçon]![cmbtypeplante1] & " AS Type_Plante_1" & _
        " FROM Tronçon")
 
 
    Next i
End Sub

le code d'ajout est surligné en jaune.

Merci de votre aide.
julienivp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2012, 23h21   #8
tee_grandbois
Membre Expert
 
Avatar de tee_grandbois
 
Homme
Ingénieur-Consultant
Inscription : novembre 2004
Messages : 668
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Ingénieur-Consultant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2004
Messages : 668
Points : 1 189
Points : 1 189
Bonsoir,
j'ai testé ton code et je n'ai eu aucune erreur. Peux-tu me donner le type de données de chaque champ de la table Tronçon ?
tee_grandbois est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2012, 23h36   #9
tee_grandbois
Membre Expert
 
Avatar de tee_grandbois
 
Homme
Ingénieur-Consultant
Inscription : novembre 2004
Messages : 668
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Ingénieur-Consultant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2004
Messages : 668
Points : 1 189
Points : 1 189
re bonsoir,
Note qu'il vaut mieux utiliser ton INSERT avec VALUES, plutôt que SELECT TOP 1 car si ta table est vide, tu ne pourras jamais insérer le premier enregistrement.
tee_grandbois est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2012, 14h25   #10
julienivp
Invité de passage
 
julien
Étudiant
Inscription : novembre 2011
Messages : 17
Détails du profil
Informations personnelles :
Nom : julien
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Bâtiment Travaux Publics

Informations forums :
Inscription : novembre 2011
Messages : 17
Points : 2
Points : 2
Par défaut requête ajout VBA

Bonjour,

Je pense comprendre. En fait pour plus de simplicité je ne vous avez pas marqué tous les champs de ma table, j'avais gardé les principaux. Est ce que cela peut être le problème?

Ci dessous le code dans l'intégralité:


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
Private Sub Commande70_Click()
Dim a As Integer
Dim i As Integer
Dim b As Double
a = (([Forms]![ajout_tronçon]![cmbPk])) * 10
 
    For i = 1 To a
        b = [Forms]![ajout_tronçon]![cmbPk] + i
 
' Mais c'est mieux de l'écrire comme ceci :
      CurrentDb.Execute ("INSERT INTO Tronçon ( N°Tronçon, N°ligne, Point_kilométrique, secteur, N°voie, Profil, Débroussaillage, Type_Plante_1, Type_Plante_2, Type_plante_3, distance_plante_1, distance_plante_2, distance_plante_3, Intervention_sans_personnel_SNCF, Végétation_riverain_adresse, Caténaire_Feeder, Observations, Arbres_dangereux) " & _
        "VALUES('" & Forms!ajout_tronçon!cmbnumligne & "_V" & Forms!ajout_tronçon!cmbnumvoie & "_Pk" & b & "', " & Forms!ajout_tronçon!cmbnumligne & ", " & b & ", " & [Forms]![ajout_tronçon]![cmbsection] & " , " & [Forms]![ajout_tronçon]![cmbnumvoie] & ", " & [Forms]![ajout_tronçon]![cmbprofil] & ", " & [Forms]![ajout_tronçon]![cmbdébroussaillage] & ", " & [Forms]![ajout_tronçon]![cmbtypeplante1] & ", " & [Forms]![ajout_tronçon]![cmbtypeplante2] & ", " & [Forms]![ajout_tronçon]![cmbtypeplante3] & ", " & [Forms]![ajout_tronçon]![cmbdistanceplante1] & ", " & [Forms]![ajout_tronçon]![cmbdistanceplante2] & ", " & [Forms]![ajout_tronçon]![cmbdistanceplante3] & ", " & [Forms]![ajout_tronçon]![cmbintervention] & ", " & [Forms]![ajout_tronçon]![cmbriverain] & ", " & [Forms]![ajout_tronçon]![cmbcaténaire] & ", " & [Forms]![ajout_tronçon]![cmbobservations] & ", " & [Forms]![ajout_tronçon]![cmbarbres] & ")")
 
 
    Next i
End Sub
Deuxième chose:
Troncon--> texte
Pk--> réel double
Ligne--> réel double
Type plante 1 -->texte
Voie --> texte

Troisième point: Est ce qu'il comprends bien la valeur "b" de la boucle dans la requête ajout?

Merci de votre aide
julienivp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2012, 22h16   #11
tee_grandbois
Membre Expert
 
Avatar de tee_grandbois
 
Homme
Ingénieur-Consultant
Inscription : novembre 2004
Messages : 668
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Ingénieur-Consultant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2004
Messages : 668
Points : 1 189
Points : 1 189
Bonsoir,
avec INSERT INTO, tu peux énumérer uniquement les champs que tu souhaites ajouter, donc ce n'est pas là le problème. Par contre, comme je te l'ai signalé ici
Citation:
encore une erreur de syntaxe (que j'ai oublié) il faut des simples cotes pour délimiter les champs alphanumériques
il est problable que c'est ce qui provoque ton erreur
Citation:
Type plante 1 -->texte
Voie --> texte
Il te suffit de rajouter les simples cotes manquantes aux champs de type texte comme dans cet exemple :
Code :
", '" & [Forms]![ajout_tronçon]![cmbtypeplante1] & "', "
Je te confirme que la variable b est bien reconnue dans la boucle.
tee_grandbois est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2012, 17h02   #12
julienivp
Invité de passage
 
julien
Étudiant
Inscription : novembre 2011
Messages : 17
Détails du profil
Informations personnelles :
Nom : julien
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Bâtiment Travaux Publics

Informations forums :
Inscription : novembre 2011
Messages : 17
Points : 2
Points : 2
Par défaut requête ajout VBA

Bonsoir,

Merci ca marche,

cependant j'ai un problème du à la longueur de la ligne quand je mets tous les arguments. Il bloque au niveau du nombre de caractère et donc la deuxième ligne semble indépendant de la première. ce qui pose problème.

Merci!!

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
Private Sub Commande70_Click()
Dim a As Integer
Dim i As Integer
Dim b As Double
a = (([Forms]![ajout_tronçon]![cmb_pkfin]) - ([Forms]![ajout_tronçon]![cmbPk])) * 10
 
    For i = 1 To a
        b = [Forms]![ajout_tronçon]![cmbPk] + i * 0.1
 
' Mais c'est mieux de l'écrire comme ceci :
    CurrentDb.Execute ("INSERT INTO Tronçon (N°Tronçon, N°ligne, Point_kilométrique, secteur, N°voie, Profil, Débroussaillage, Type_Plante_1, Type_Plante_2, Type_plante_3, distance_plante_1, distance_plante_2, distance_plante_3, Intervention_sans_personnel_SNCF, Végétation_riverain_adresse, Caténaire_Feeder, Observations, Arbres_dangereux) " & _
        "SELECT TOP 1 '" & Forms!ajout_tronçon!cmbnumligne & "_V" & Forms!ajout_tronçon!cmbnumvoie & "_Pk" & b & "' AS N°Tronçon," & Forms!ajout_tronçon!cmbnumligne & " AS N°ligne," & b & " AS Point_kilométrique, '" & [Forms]![ajout_tronçon]![cmbsection] & "' AS secteur, '" & [Forms]![ajout_tronçon]![cmbnumvoie] & "' AS N°voie, '" & [Forms]![ajout_tronçon]![cmbprofil] & "' AS Profil, '" & [Forms]![ajout_tronçon]![cmbdébroussaillage] & "' AS Débroussaillage,  '" & [Forms]![ajout_tronçon]![cmbtypeplante1] & "' AS Type_Plante_1, '" & [Forms]![ajout_tronçon]![cmbtypeplante2] & "' AS Type_Plante_2, '" & [Forms]![ajout_tronçon]![cmbtypeplante3] & "' AS Type_Plante_3, '" & [Forms]![ajout_tronçon]![cmbdistanceplante1] & "' AS distance_plante_1, '" & [Forms]![ajout_tronçon]![cmbdistanceplante2] & "' AS distance_plante_2, '" & [Forms]![ajout_tronçon]![cmbdistanceplante3] & "' AS distance_plante_3, [Forms]![ajout_tronçon]![cmbintervention] AS Intervention_sans_personnel_SNCF, '" & [Forms]![ajout_tronçon]![cmbriverain]&
"' AS Végétation_riverain_adresse, [Forms]![ajout_tronçon]![cmbcaténaire]  AS Caténaire_Feeder, '" & [Forms]![ajout_tronçon]![cmbobservations] & "' AS Observations, '" &  [Forms]![ajout_tronçon]![cmbarbres] & "' AS Arbres_dangereux " & _
 " FROM Tronçon")
 
 
 
    Next i
End Sub

Merci!
julienivp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2012, 17h26   #13
tee_grandbois
Membre Expert
 
Avatar de tee_grandbois
 
Homme
Ingénieur-Consultant
Inscription : novembre 2004
Messages : 668
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Ingénieur-Consultant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2004
Messages : 668
Points : 1 189
Points : 1 189
Bonsoir,
comme je l'explique un peu plus haut :
Citation:
& permet de lier des parties variables à la phrase SQL
_ le caractère de continuation d'une phrase SQL à la ligne suivante :
que tu peux utiliser pour plus de lisibité ou visibilité :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
rivate Sub Commande70_Click()
Dim a As Integer
Dim i As Integer
Dim b As Double
a = (([Forms]![ajout_tronçon]![cmb_pkfin]) - ([Forms]![ajout_tronçon]![cmbPk])) * 10
 
    For i = 1 To a
        b = [Forms]![ajout_tronçon]![cmbPk] + i * 0.1
 
' Mais c'est mieux de l'écrire comme ceci :
    CurrentDb.Execute ("INSERT INTO Tronçon (N°Tronçon, N°ligne, Point_kilométrique, secteur, N°voie, Profil, Débroussaillage, Type_Plante_1, Type_Plante_2, Type_plante_3, distance_plante_1, distance_plante_2, distance_plante_3, Intervention_sans_personnel_SNCF, Végétation_riverain_adresse, Caténaire_Feeder, Observations, Arbres_dangereux) " & _
        "SELECT TOP 1 '" & Forms!ajout_tronçon!cmbnumligne & "_V" & Forms!ajout_tronçon!cmbnumvoie & "_Pk" & b & "' AS N°Tronçon," & Forms!ajout_tronçon!cmbnumligne & " AS N°ligne," & b & " AS Point_kilométrique, '" & [Forms]![ajout_tronçon]![cmbsection] & "' AS secteur, '" & [Forms]![ajout_tronçon]![cmbnumvoie] & "' AS N°voie, '" & [Forms]![ajout_tronçon]![cmbprofil] & _
        "' AS Profil, '" & [Forms]![ajout_tronçon]![cmbdébroussaillage] & "' AS Débroussaillage,  '" & [Forms]![ajout_tronçon]![cmbtypeplante1] & "' AS Type_Plante_1, '" & [Forms]![ajout_tronçon]![cmbtypeplante2] & "' AS Type_Plante_2, '" & [Forms]![ajout_tronçon]![cmbtypeplante3] & "' AS Type_Plante_3, '" & [Forms]![ajout_tronçon]![cmbdistanceplante1] & _
        "' AS distance_plante_1, '" & [Forms]![ajout_tronçon]![cmbdistanceplante2] & "' AS distance_plante_2, '" & [Forms]![ajout_tronçon]![cmbdistanceplante3] & "' AS distance_plante_3, [Forms]![ajout_tronçon]![cmbintervention] AS Intervention_sans_personnel_SNCF, '" & [Forms]![ajout_tronçon]![cmbriverain]& _
        "' AS Végétation_riverain_adresse, [Forms]![ajout_tronçon]![cmbcaténaire]  AS Caténaire_Feeder, '" & [Forms]![ajout_tronçon]![cmbobservations] & "' AS Observations, '" &  [Forms]![ajout_tronçon]![cmbarbres] & "' AS Arbres_dangereux " & _
        " FROM Tronçon")
 
 
 
    Next i
End Sub
tee_grandbois est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2012, 18h30   #14
julienivp
Invité de passage
 
julien
Étudiant
Inscription : novembre 2011
Messages : 17
Détails du profil
Informations personnelles :
Nom : julien
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Bâtiment Travaux Publics

Informations forums :
Inscription : novembre 2011
Messages : 17
Points : 2
Points : 2
Par défaut requête ajout VBA

Ca marche!!

Merci beaucoup!!!

C'est vraiment sympa d'avoir pris le temps de m'expliquer tout ceci!!
julienivp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2012, 20h43   #15
julienivp
Invité de passage
 
julien
Étudiant
Inscription : novembre 2011
Messages : 17
Détails du profil
Informations personnelles :
Nom : julien
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Bâtiment Travaux Publics

Informations forums :
Inscription : novembre 2011
Messages : 17
Points : 2
Points : 2
Par défaut requête ajout VBA

Je vais abuser de votre gentillesse,

dans la suite de cette macro je dois ajouter un autre code pour ajouter des données mais avec une condition "where".

Celle ci ne marche pas, pouvez vous m'aider?

Merci

Code :
1
2
3
4
5
6
7
 
CurrentDb.Execute ("INSERT INTO Intervention ( Numintervention, N°tronçon, N°ligne, Point_kilométrique, N°voie, Type_plante, Date_intervention, distance_plante, Intervention_sans_personnel_SNCF, Végétation_riverain_adresse, Caténaire_Feeder, Observations )" & _
 "SELECT TOP 1 '" & Forms!ajout_tronçon!cmbnumligne & "_V" & Forms!ajout_tronçon!cmbnumvoie & "_Pk" & b & "_" & Forms!ajout_tronçon!cmbtypeplante1 & "' AS Numintervention, '" & [Forms]![ajout_tronçon]![cmbnumtronçon] & "' AS N°Tronçon, [Forms]![ajout_tronçon]![cmbnumligne] AS N°ligne, " & b & " AS Point_kilométrique, '" & [Forms]![ajout_tronçon]![cmbnumvoie] & "' AS N°voie, '" & [Forms]![ajout_tronçon]![cmbtypeplante1] & "' AS Type_plante, '" & (Now() + Plante.[Temps de repousse moyen (en mois)] * 30) & "' AS Date_intervention, '" & [Forms]![ajout_tronçon]![cmbdistanceplante1] & "' AS distance_plante, '" & [Forms]![ajout_tronçon]![cmbintervention] & "' AS Intervention_sans_personnel_SNCF, '" & [Forms]![ajout_tronçon]![cmbriverain] & "' AS Végétation_riverain_adresse, '" & [Forms]![ajout_tronçon]![cmbcaténaire] & "' AS Caténaire_Feeder, '" & [Forms]![ajout_tronçon]![cmbobservations] & "' AS Observations" & _
"WHERE (((Plante.Type_plante) = [Forms]![Ajout_tronçon]![cmbtypeplante1])" & _
 " FROM Intervention, Plante")
    Next i
End Sub
julienivp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2012, 21h44   #16
tee_grandbois
Membre Expert
 
Avatar de tee_grandbois
 
Homme
Ingénieur-Consultant
Inscription : novembre 2004
Messages : 668
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Ingénieur-Consultant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2004
Messages : 668
Points : 1 189
Points : 1 189
Bonsoir,
je ne comprend pas à quoi sert une condition WHERE dans cette requète d'insertion avec des données issues d'un formulaire. A mon avis, tu devrais utiliser VALUES et pas SELECT TOP 1.
tee_grandbois est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2012, 22h23   #17
tee_grandbois
Membre Expert
 
Avatar de tee_grandbois
 
Homme
Ingénieur-Consultant
Inscription : novembre 2004
Messages : 668
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Ingénieur-Consultant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2004
Messages : 668
Points : 1 189
Points : 1 189
OK, j'ai compris, essaie comme cela :
Code :
1
2
3
4
5
CurrentDb.Execute ("INSERT INTO Intervention ( Numintervention, N°tronçon, N°ligne, Point_kilométrique, N°voie, Type_plante, Date_intervention, distance_plante, Intervention_sans_personnel_SNCF, Végétation_riverain_adresse, Caténaire_Feeder, Observations )" & _
"SELECT TOP 1 '" & Forms!ajout_tronçon!cmbnumligne & "_V" & Forms!ajout_tronçon!cmbnumvoie & "_Pk" & b & "_" & Forms!ajout_tronçon!cmbtypeplante1 & "' AS Numintervention, '" & [Forms]![ajout_tronçon]![cmbnumtronçon] & "' AS N°Tronçon, [Forms]![ajout_tronçon]![cmbnumligne] AS N°ligne, " & b & " AS Point_kilométrique, '" & [Forms]![ajout_tronçon]![cmbnumvoie] & "' AS N°voie, '" & [Forms]![ajout_tronçon]![cmbtypeplante1] & "' AS Type_plante, '" & (Now() + Plante.[Temps de repousse moyen (en mois)] * 30) & "' AS Date_intervention, '" & [Forms]![ajout_tronçon]![cmbdistanceplante1] & "' AS distance_plante, '" & [Forms]![ajout_tronçon]![cmbintervention] & "' AS Intervention_sans_personnel_SNCF, '" & [Forms]![ajout_tronçon]![cmbriverain] & "' AS Végétation_riverain_adresse, '" & [Forms]![ajout_tronçon]![cmbcaténaire] & "' AS Caténaire_Feeder, '" & [Forms]![ajout_tronçon]![cmbobservations] & "' AS Observations" & _
" FROM Plante WHERE Plante.Type_plante = " & [Forms]![Ajout_tronçon]![cmbtypeplante1])
    Next i
End Sub
tee_grandbois est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2012, 15h33   #18
julienivp
Invité de passage
 
julien
Étudiant
Inscription : novembre 2011
Messages : 17
Détails du profil
Informations personnelles :
Nom : julien
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Bâtiment Travaux Publics

Informations forums :
Inscription : novembre 2011
Messages : 17
Points : 2
Points : 2
Par défaut requête ajout VBA

Bonjour,

Je viens d'essayer la requête il me donne une erreure de type 424, je pense qu'il manque un opérateur entre les deux requêtes, j'ai essayé un "and" mais ca n'a pas marché.

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
 
Private Sub Commande70_Click()
Dim a As Integer
Dim i As Integer
Dim b As Double
a = (([Forms]![Ajout_tronçon]![cmb_pkfin]) - ([Forms]![Ajout_tronçon]![cmbPk])) * 10
 
    For i = 0 To a
        b = [Forms]![Ajout_tronçon]![cmbPk] + i * 0.1
 
' Mais c'est mieux de l'écrire comme ceci :
    CurrentDb.Execute ("INSERT INTO Tronçon (N°Tronçon, N°ligne, Point_kilométrique, secteur, N°voie, Profil, Débroussaillage, Type_Plante_1, Type_Plante_2, Type_plante_3, distance_plante_1, distance_plante_2, distance_plante_3, Intervention_sans_personnel_SNCF, Végétation_riverain_adresse, Caténaire_Feeder, Observations, Arbres_dangereux) " & _
        "SELECT TOP 1 '" & Forms!Ajout_tronçon!cmbnumligne & "_V" & Forms!Ajout_tronçon!cmbnumvoie & "_Pk" & b & "' AS N°Tronçon," & Forms!Ajout_tronçon!cmbnumligne & " AS N°ligne," & b & " AS Point_kilométrique, '" & [Forms]![Ajout_tronçon]![cmbsection] & "' AS secteur, '" & [Forms]![Ajout_tronçon]![cmbnumvoie] & "' AS N°voie, '" & [Forms]![Ajout_tronçon]![cmbprofil] & _
        "' AS Profil, '" & [Forms]![Ajout_tronçon]![cmbdébroussaillage] & "' AS Débroussaillage,  '" & [Forms]![Ajout_tronçon]![cmbtypeplante1] & "' AS Type_Plante_1, '" & [Forms]![Ajout_tronçon]![cmbtypeplante2] & "' AS Type_Plante_2, '" & [Forms]![Ajout_tronçon]![cmbtypeplante3] & "' AS Type_Plante_3, '" & [Forms]![Ajout_tronçon]![cmbdistanceplante1] & _
        "' AS distance_plante_1, '" & [Forms]![Ajout_tronçon]![cmbdistanceplante2] & "' AS distance_plante_2, '" & [Forms]![Ajout_tronçon]![cmbdistanceplante3] & "' AS distance_plante_3, '" & [Forms]![Ajout_tronçon]![cmbintervention] & "' AS Intervention_sans_personnel_SNCF, '" & [Forms]![Ajout_tronçon]![cmbriverain] & _
        "' AS Végétation_riverain_adresse, '" & [Forms]![Ajout_tronçon]![cmbcaténaire] & "'  AS Caténaire_Feeder, '" & [Forms]![Ajout_tronçon]![cmbobservations] & "' AS Observations, '" & [Forms]![Ajout_tronçon]![cmbarbres] & "' AS Arbres_dangereux " & _
        " FROM Tronçon")
 
 
CurrentDb.Execute ("INSERT INTO Intervention ( Numintervention, N°tronçon, N°ligne, Point_kilométrique, N°voie, Type_plante, Date_intervention, distance_plante, Intervention_sans_personnel_SNCF, Végétation_riverain_adresse, Caténaire_Feeder, Observations )" & _
"SELECT TOP 1 '" & Forms!Ajout_tronçon!cmbnumligne & "_V" & Forms!Ajout_tronçon!cmbnumvoie & "_Pk" & b & "_" & Forms!Ajout_tronçon!cmbtypeplante1 & "' AS Numintervention, '" & [Forms]![Ajout_tronçon]![cmbnumtronçon] & "' AS N°Tronçon, [Forms]![ajout_tronçon]![cmbnumligne] AS N°ligne, " & b & " AS Point_kilométrique, '" & [Forms]![Ajout_tronçon]![cmbnumvoie] & "' AS N°voie, '" & [Forms]![Ajout_tronçon]![cmbtypeplante1] & "' AS Type_plante, '" & (Now() + Plante.[Temps de repousse moyen (en mois)] * 30) & "' AS Date_intervention, '" & [Forms]![Ajout_tronçon]![cmbdistanceplante1] & "' AS distance_plante, '" & [Forms]![Ajout_tronçon]![cmbintervention] & "' AS Intervention_sans_personnel_SNCF, '" & [Forms]![Ajout_tronçon]![cmbriverain] & "' AS Végétation_riverain_adresse, '" & [Forms]![Ajout_tronçon]![cmbcaténaire] & "' AS Caténaire_Feeder, '" & [Forms]![Ajout_tronçon]![cmbobservations] & "' AS Observations" & _
" FROM Plante WHERE Plante.Type_plante = " & [Forms]![Ajout_tronçon]![cmbtypeplante1])
 
 
    Next i
End Sub
Merci encore
julienivp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2012, 21h39   #19
tee_grandbois
Membre Expert
 
Avatar de tee_grandbois
 
Homme
Ingénieur-Consultant
Inscription : novembre 2004
Messages : 668
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Ingénieur-Consultant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2004
Messages : 668
Points : 1 189
Points : 1 189
Bonsoir,
peu-être un espace manquant entre la parenthèse fermante de insert into (...) et le select de la seconde requète:
Code :
1
2
3
CurrentDb.Execute ("INSERT INTO Intervention ( Numintervention, N°tronçon, N°ligne, Point_kilométrique, N°voie, Type_plante, Date_intervention, distance_plante, Intervention_sans_personnel_SNCF, Végétation_riverain_adresse, Caténaire_Feeder, Observations ) " & _
"SELECT TOP 1 '" & Forms!Ajout_tronçon!cmbnumligne & "_V" & Forms!Ajout_tronçon!cmbnumvoie & "_Pk" & b & "_" & Forms!Ajout_tronçon!cmbtypeplante1 & "' AS Numintervention, '" & [Forms]![Ajout_tronçon]![cmbnumtronçon] & "' AS N°Tronçon, [Forms]![ajout_tronçon]![cmbnumligne] AS N°ligne, " & b & " AS Point_kilométrique, '" & [Forms]![Ajout_tronçon]![cmbnumvoie] & "' AS N°voie, '" & [Forms]![Ajout_tronçon]![cmbtypeplante1] & "' AS Type_plante, '" & (Now() + Plante.[Temps de repousse moyen (en mois)] * 30) & "' AS Date_intervention, '" & [Forms]![Ajout_tronçon]![cmbdistanceplante1] & "' AS distance_plante, '" & [Forms]![Ajout_tronçon]![cmbintervention] & "' AS Intervention_sans_personnel_SNCF, '" & [Forms]![Ajout_tronçon]![cmbriverain] & "' AS Végétation_riverain_adresse, '" & [Forms]![Ajout_tronçon]![cmbcaténaire] & "' AS Caténaire_Feeder, '" & [Forms]![Ajout_tronçon]![cmbobservations] & "' AS Observations" & _
" FROM Plante WHERE Plante.Type_plante = " & [Forms]![Ajout_tronçon]![cmbtypeplante1])
tee_grandbois est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2012, 22h29   #20
julienivp
Invité de passage
 
julien
Étudiant
Inscription : novembre 2011
Messages : 17
Détails du profil
Informations personnelles :
Nom : julien
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Bâtiment Travaux Publics

Informations forums :
Inscription : novembre 2011
Messages : 17
Points : 2
Points : 2
Par défaut requête ajout VBA

Bonsoir,

A priori le problème ne vient pas de là, je viens d'essayer mais ca ne marche pas.
J'ai toujours une erreure de type 424. J'ai regardé un par un les membres de l'expression, je n'ai pas vu d'erreure.

Est ce normale de ne pas faire appel à la table Intervention dans le FROM?

Est ce qu'il comprend la formule dans l'expression de Insert avec Now() +...

Merci de votre aide!!

Julien
julienivp est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 15h51.


 
 
 
 
Partenaires

Hébergement Web