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 18/05/2011, 20h22   #1
Membre du Club
 
Homme
Chef d'entreprise
Inscription : mai 2011
Messages : 57
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Chef d'entreprise
Secteur : Arts - Culture

Informations forums :
Inscription : mai 2011
Messages : 57
Points : 61
Points : 61
Par défaut Erreur d'exécution 3067

Bonsoir,

J'ai un petit bout de code VBA tout simple :
Code :
1
2
3
4
5
Private Sub CDE_Facturation_Click()
    DoCmd.OpenQuery ("R_Creation_Facture")
 
    Forms![F_Edition_Factures].Requery
End Sub
Et une requête qui l'est un peu moins :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
INSERT INTO FACTURES ( IdFacture, IdCommande, PrixFormule, PrixOption1, PrixOption2, NbreGadgets, PrixBallons, FraisTransport, TvaPleine, TvaReduite, IdAcompte, Acompte, PrixTotal, Remise, Paiement, TypeFacture )
 
VALUES ((SELECT Max(IdFacture)+1 FROM FACTURES),
[Formulaires]![F_Edition_Factures]![IdCommande],
[Formulaires]![F_Edition_Factures]![PrixFormule],
[Formulaires]![F_Edition_Factures]![PrixOption1],
[Formulaires]![F_Edition_Factures]![PrixOption2],
[Formulaires]![F_Edition_Factures]![PrixGadgets]/2,
[Formulaires]![F_Edition_Factures]![PrixDecoBallons],
[Formulaires]![F_Edition_Factures]![CoutTransport],
([Formulaires]![F_Edition_Factures]![PrixGadgets]+[Formulaires]![F_Edition_Factures]![PrixBallons]+[Formulaires]![F_Edition_Factures]![CoutTransport])*0.196,
([Formulaires]![F_Edition_Factures]![PrixAnimation]-[Formulaires]![F_Edition_Factures]![Remise]-[Formulaires]![F_Edition_Factures]![Acompte])*0.055,
(SELECT FACTURES.IdFacture FROM FACTURES WHERE FACTURES.IdCommande=[Formulaires]![F_Edition_Factures]![IdCommande]),
[Formulaires]![F_Edition_Factures]![Acompte], [Formulaires]![F_Edition_Factures]![PrixTotal], 
[Formulaires]![F_Edition_Factures]![Remise], 
"-", 
[Formulaires]![F_Edition_Factures]![TypeFacture]);
Lorsque j'exécute le code VBA qui active cette requête, j'obtiens un erreur 3067 : La requête doit être construite à partir d'au moins une table ou une requête source.

Ma requête est correctement orthographiée dans le code VBA et tout porte à croire qu'elle est bien reconnue puisque Access m'avertie que je vais effectuer une requête d'ajout. Concernant la requête en elle-même, je ne vois pas ce qui pourrait clocher au niveau des tables de la requête principale ou des requêtes imbriquées.
Auriez-vous une idée de ce qui peut provoquer cette erreur ?

Merci par avance pour votre temps.
Francesco34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/05/2011, 10h37   #2
Rédacteur/Modérateur
 
Avatar de jpcheck
 
Jean-Philippe ANDRÉ
Inscription : juillet 2007
Messages : 7 863
Détails du profil
Informations personnelles :
Nom : Jean-Philippe ANDRÉ
Âge : 28
Localisation : France

Informations forums :
Inscription : juillet 2007
Messages : 7 863
Points : 10 737
Points : 10 737
Envoyer un message via MSN à jpcheck
salut,

ta requete est une requete action, il faut donc executer le code, avec par exemple
ou alors
voire creer un objet querydef et le faire executer aussi
Code :
1
2
3
Dim qdf As QueryDef
...
qdf.execute
les syntaxes de toutes ces possibilites sont disponibles via l'aide en ligne
__________________
Pas de question technique par MP, je ne réponds pas

Mon perso ? Une vraie brute

Tutos Access, Tâches planifiées et Batch,Tables de Paramètres sous Access, Excel et Batch, Tâches planifiées et Access
jpcheck est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/05/2011, 16h12   #3
Membre du Club
 
Homme
Chef d'entreprise
Inscription : mai 2011
Messages : 57
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Chef d'entreprise
Secteur : Arts - Culture

Informations forums :
Inscription : mai 2011
Messages : 57
Points : 61
Points : 61
Bonjour,

Merci de ta réponse. En fait, le problème ne venait pas du code VBA ou de celui de la requête mais simplement du fait que je n'avais pas sélectionné de table dans la fenêtre supérieure du mode création de la requête.
Francesco34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/05/2011, 16h28   #4
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 085
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

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

Informations forums :
Inscription : avril 2005
Messages : 7 085
Points : 11 622
Points : 11 622
Bonjour,

Les Select dans un values c'est pas le top. Utilise plutot Dmax et Dlookup.

Cordialement,
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste
MsGraph et VBA - 1e Partie 2e partie
Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010
Complément :Générateur de msgbox
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/05/2011, 16h37   #5
Membre du Club
 
Homme
Chef d'entreprise
Inscription : mai 2011
Messages : 57
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Chef d'entreprise
Secteur : Arts - Culture

Informations forums :
Inscription : mai 2011
Messages : 57
Points : 61
Points : 61
Je ne connais pas ces commandes, je vais aller voir de quoi il s'agit. Quand tu dis pas top, tu parles en termes de performances ?
Francesco34 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 14h50.


 
 
 
 
Partenaires

Hébergement Web