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 12/11/2011, 00h12   #1
Invité de passage
 
Inscription : novembre 2011
Messages : 4
Détails du profil
Informations forums :
Inscription : novembre 2011
Messages : 4
Points : 0
Points : 0
Par défaut Problème d'exécution d'une requête

Bonjour,

J'ai un souci avec une requête (environ 9 tables), lorsque je l'exécute en mode création ou avec la commande Docmd.OpenQuery, aucun problème (exécution en moins d'une seconde).

Mais lorsque j’essaie de la traduire en code SQL et de l'exécuter avec CurrentDb.Execute, ca gèle le programme (ca utilise beaucoup de cpu). Je dois l’arrêter manuellement avec la commande Ctrl + Pause.

C'est la 2eme fois que ca m'arrive, et dans les 2 cas se sont de grosses requêtes. Je me demandais si d'autres ont déjà eu ce problème.

Merci pour votre aide !

PS: Je ne suis pas un débutant.
mezmezy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/11/2011, 03h56   #2
Rédacteur/Modérateur
 
Avatar de Philippe JOCHMANS
 
Homme Philippe JOCHMANS
Développeur informatique
Inscription : mai 2005
Messages : 17 620
Détails du profil
Informations personnelles :
Nom : Homme Philippe JOCHMANS
Âge : 44
Localisation : France, Loir et Cher (Centre)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Communication - Médias

Informations forums :
Inscription : mai 2005
Messages : 17 620
Points : 30 945
Points : 30 945
Envoyer un message via MSN à Philippe JOCHMANS Envoyer un message via Skype™ à Philippe JOCHMANS
Bonjour

Si tu mettais le code que tu utilises ainsi que la requête, je pense que cela aiderait beaucoup les membres du forum pour qu'ils puissent te répondre.

Non ?

Philippe
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon
Si vous pensez commencer sans un livre, oublier : livres pour débuter
Vous pouvez consulter mes articles sur Access et PowerPoint
Le blog Office.

Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas.
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/11/2011, 01h48   #3
Invité de passage
 
Inscription : novembre 2011
Messages : 4
Détails du profil
Informations forums :
Inscription : novembre 2011
Messages : 4
Points : 0
Points : 0
Je ne pense pas que le code pourrait aider à la cause puisque ca m'est arrivé à 2 reprises dans 2 applications différentes, mais le voici:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    StrSQL = "INSERT INTO TravailRapport ( NoCie, NoContrat, NoSemaine, NoArticle, NoActivite, NoSsActivite, NoDescription, NoClassification, PourLaSemaine, Nuit, NoRapport, SequenceDetail ) " & _
        "SELECT SemainesRapport.NoCie, SemainesRapport.NoContrat, SemainesRapport.NoSemaine, PhasesRapport.Article, EmployesRapport.Activite, " & _
        "Nz([EmployesRapport].[SousActivite],'0') AS SousActivite, SaisieRapport.Description, Nz([SaisieRapport].[Classification],'-') AS Classification, Classifications.Semaine, " & _
        "[Temps - Détail].Nuit, [Temps - Détail].[No Rapport], [Temps - Détail].Sequence " & _
        "FROM ((((((([Temps - Entete] INNER JOIN [Temps - Détail] ON ([Temps - Entete].Compagnie = [Temps - Détail].Compagnie) AND ([Temps - Entete].[No Rapport] = [Temps - Détail].[No Rapport])) " & _
        "INNER JOIN SemainesRapport ON ([Temps - Entete].Compagnie = SemainesRapport.NoCie) AND ([Temps - Entete].[No Contrat] = SemainesRapport.NoContrat) AND " & _
        "([Temps - Détail].Nuit = SemainesRapport.Nuit)) INNER JOIN PhasesRapport ON (SemainesRapport.NoCie = PhasesRapport.NoCie) AND (SemainesRapport.NoContrat = PhasesRapport.NoContrat) AND " & _
        "([Temps - Détail].Phase = PhasesRapport.NoPhase)) INNER JOIN EmployesRapport ON (SemainesRapport.NoCie = EmployesRapport.NoCie) AND " & _
        "(SemainesRapport.NoContrat = EmployesRapport.NoContrat) AND ([Temps - Détail].[No Employe] = EmployesRapport.NoEmploye)) INNER JOIN Activites ON " & _
        "(EmployesRapport.NoCie = Activites.NoCie) AND (EmployesRapport.NoContrat = Activites.NoContrat) AND (EmployesRapport.Activite = Activites.NoActivite)) INNER JOIN SaisieRapport ON " & _
        "([Temps - Détail].Compagnie = SaisieRapport.NoCie) AND ([Temps - Détail].[No Rapport] = SaisieRapport.NoRapport) AND ([Temps - Entete].[No Contrat] = SaisieRapport.NoContrat) AND " & _
        "([Temps - Détail].Sequence = SaisieRapport.Sequence)) INNER JOIN DescriptionsRapport ON (SaisieRapport.Description = DescriptionsRapport.NoDesc) AND " & _
        "(SaisieRapport.NoContrat = DescriptionsRapport.NoContrat) AND (SaisieRapport.NoCie = DescriptionsRapport.NoCie)) LEFT JOIN Classifications ON (SaisieRapport.Classification = " & _
        "Classifications.NoClassification) AND (SaisieRapport.NoContrat = Classifications.NoContrat) AND (SaisieRapport.NoCie = Classifications.NoCie) " & _
        "WHERE (((SemainesRapport.NoCie)=" & [Form_Menu  Principal].No_Compagnie & ") AND ((SemainesRapport.NoContrat)=" & [Form_Menu  Principal].Contrat_Choisi & ") AND " & _
        "((SemainesRapport.NoSemaine)=" & NoSemaine & ") AND (([Temps - Entete].[Date d'entree])>=#" & Format(DateDu, "m/d/yyyy") & _
        "# And ([Temps - Entete].[Date d'entree])<=#" & Format(DateAu, "m/d/yyyy") & "#))"
 
    ' Exécuter la requête qui ajoute les lignes dans la table 'TravailRapport'
    CurrentDb.Execute StrSQL, dbFailOnError
Je tiens à préciser que même si je remplace les critères par des valeurs directement dans la chaine, ca ne règle pas le problème.
mezmezy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/11/2011, 07h55   #4
Rédacteur/Modérateur
 
Avatar de Philippe JOCHMANS
 
Homme Philippe JOCHMANS
Développeur informatique
Inscription : mai 2005
Messages : 17 620
Détails du profil
Informations personnelles :
Nom : Homme Philippe JOCHMANS
Âge : 44
Localisation : France, Loir et Cher (Centre)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Communication - Médias

Informations forums :
Inscription : mai 2005
Messages : 17 620
Points : 30 945
Points : 30 945
Envoyer un message via MSN à Philippe JOCHMANS Envoyer un message via Skype™ à Philippe JOCHMANS
Bonjour

Plusieurs choses à voir :

D'abord une requête enregistrée sera plus rapide qu'une requête en mode SQL.

Donc pourquoi ne pas laisser ta requête en mode requête et la lancer en utilisant des paramètres (voir dans la FAQ Access pour les requêtes paramétrées.

De plus es-tu sûr de type de toutes les variables que tu passes, tel que type Texte avec des ', type numérique sans rien, type Date avec #.

Pour les dates essayes avec le format mm/dd/yyyy.

Philippe
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon
Si vous pensez commencer sans un livre, oublier : livres pour débuter
Vous pouvez consulter mes articles sur Access et PowerPoint
Le blog Office.

Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas.
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2011, 06h14   #5
Invité de passage
 
Inscription : novembre 2011
Messages : 4
Détails du profil
Informations forums :
Inscription : novembre 2011
Messages : 4
Points : 0
Points : 0
Je préfère utiliser une requête en code SQL parce que je trouve que ca fait plus propre comme code.

Je vais essayer le format de date mm/dd/yyyy

Merci de ton aide !
mezmezy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2011, 21h31   #6
Invité de passage
 
Inscription : novembre 2011
Messages : 4
Détails du profil
Informations forums :
Inscription : novembre 2011
Messages : 4
Points : 0
Points : 0
J'ai essayé de changer le format de date, ca ne change rien.

Je rappel que la requête (en objet Access) fonctionne numéro 1.

Personne n'a déjà rencontré ce problème ?
mezmezy est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h53.


 
 
 
 
Partenaires

Hébergement Web