Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1312 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA Access] Problème de requête

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VBA Access] Problème de requête

n°1899418
miomax
Posté le 26-06-2009 à 12:11:53  profilanswer
 

Bonjour,
 
Je tente de corriger une erreur dans une appli qui gère une BDD de production sous Access, réalisée par 2 stagiaires l'année passée.
L'objectif est d'afficher le nombre de défauts d'une pièce. Le code est absolument monstrueux et je préfère utiliser une requête plutôt que de chercher dans l'algo à quel endroit l'incrémentation sur le nombre de défauts est mal effectuée. Je pense pouvoir me permettre d'utiliser cette méthode car les défauts  par pièces sont enregistrés spécifiquement. Il se peut que j'aie complètement faux!
 
J'ai lu des trucs sur ODA/DAO mais je n'ai rien compris. La version d'access est la 2003.
 
J'ai donc essayé d'intégrer une requête dans le code de l'application, lorsque l'utilisateur choisit le numéro de son moule dans une liste déroulante:
 
En gros, l'algo que je eux suivre est "Quand l'utilisateur a entré le n° du moule, je "rafraichis" la page et affiche le résultat de la requete qui retourne le nombre de défauts (1 par ligne dans la table)".
Je sais manipuler des reqûetes dans plusieurs langages, mais je dois avouer qu'en VBA je suis complètement perdu!
 
 

Citation :

Private Sub moule_AfterUpdate()
 
'Test pour calcul nb défauts par requete
 
Dim strSQL As String
strSQL = "SELECT COUNT(*) T_DEMERITE.moule, T_DEMERITE.solde FROM T_DEMERITE WHERE (((T_DEMERITE.solde) = 0) AND T_DEMERITE.moule = Form_F_AUDIT.moule);"
'NB_Demerite_test = DCount("*", "strSQL" )


 
Bien évidemment ca ne marche pas, et je suppute que j'ai vraiment fait n'importe quoi. Je cherche sur ce site et developpez depuis 2 heures et je ne trouve rien qui puisse m'aiguiller, aussi j'attends un peu d'aide avec une grande impatience!
 
 
 
Merci d'avance
 

mood
Publicité
Posté le 26-06-2009 à 12:11:53  profilanswer
 

n°1899428
Deamon
Posté le 26-06-2009 à 12:38:56  profilanswer
 

Tu pensais quand même pas qu'en créant simplement un String il allait t'effectuer la requête j'espère !
 

Code :
  1. Dim rst As New ADODB.Recordset
  2. Dim sqlCommand As String
  3. sqlCommand = "SELECT blabla..."
  4. rst.Open sqlCommand, CurrentProject.Connection, adOpenStatic


ou bien

Code :
  1. Dim rs As ADODB.Recordset
  2. Dim cmd As ADODB.Command
  3. Set rs = New ADODB.Recordset
  4. Set cmd = New ADODB.Command
  5. Set cmd.ActiveConnection = CurrentProject.Connection
  6. cmd.CommandText = "SELECT ..."
  7. Set rs = cmd.Execute


 
Et après tu récupères le résultat avec un getString sur ton RecordSet.

n°1899475
miomax
Posté le 26-06-2009 à 14:18:15  profilanswer
 

Salut!
 
Merci de ta réponse. J'ai essayé d'inclure les deux codes, mais il me donne une erreur, qui d'après mes recherches indique une référence manquante.
 
J'ai donc rajouté la référence ActiveX 2.5 (il me semble que pour access 2003 c'est la bonne)
 
En revanche il me donne maintenant une erreur sur chacune des dernières lignes en me disant que "Aucune valeur n'est donnée pour un ou plusieurs des paramètres requis". J'ai cherché les paramètres en question sans succès.
 
Que de boulot pour une simple requête!
 

n°1899477
produvba
Posté le 26-06-2009 à 14:20:07  profilanswer
 

Bonjour,
 
2 conseils
* ne pas utiliser des stagiaires pour cela mais des gens sérieux, qui vont faire cela pour une somme modique (il y en a, j'en connais).
* pour un truc aussi simple tu peux utiliser la fonction "DCOUNT()", regarde l'aide cela fait cela tout seul
 

n°1900008
miomax
Posté le 29-06-2009 à 10:13:44  profilanswer
 

Hello,
 
Dcount a très bien marché, merci beaucoup!
 
Sinon pour les stagiaires, ils ont quand même réussi à faire quelque chose de correct dans le sens où même s'il existe quelques petits bugs l'appli est fonctionnelle. Et puis il faut bien former les jeunes! :)
 
Encore merci!


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA Access] Problème de requête

 

Sujets relatifs
[Resolu] [VBA] Macro Excel - Zone de texte[VB6] Problème arrondi calcul validité IBAN
VBA_Excel_ouverture automatique - RésoluProblème avec fonction header() + syntaxe.
Sessions problème de débutantOuvrir un répertoir et lister les fichier VBA
[VBA] macro qui copie colle données les une à coté des autresCaractère séparateur sous excel VBA
Probleme pour lire un fichier xml[VBA] Access, probleme de requete
Plus de sujets relatifs à : [VBA Access] Problème de requête


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR