Requete en vba

Résolu
Bonjour,

J'essaie de faire une requête en fonction des données encodées dans un formulaire et j'ai toujours le message suivant:" access can't find the object 'SELECT...

Code du bouton de mon formulaire:

Sub Cherche()

On Error GoTo Err_Recherche_Click

Dim stAnnee As Integer
Dim stType As Integer
Dim reqSQL As String

stAnnee = Combo1

stType = Combo5

reqSQL = "SELECT S725_S661_FICHES.NUMERO, S725_S661_FICHES.DESCRIPTION, S725_S661_BUDGETS.ANNEE, S725_S661_BUDGETS.MONTANT, S725_S661_BUDGETS.TBD_ID"
reqSQL = reqSQL & "FROM (S725_S661_FICHES LEFT JOIN S725_S725_CAHIER_D_CHARGES_VW ON S725_S661_FICHES.ID = S725_S725_CAHIER_D_CHARGES_VW.FCH_ID) INNER JOIN S725_S661_BUDGETS ON S725_S661_FICHES.ID = S725_S661_BUDGETS.FCH_ID"
reqSQL = reqSQL & "WHERE (((S725_S661_FICHES.NUMERO)>410000000) AND ((S725_S661_BUDGETS.MONTANT)>0) AND ((S725_S661_BUDGETS.TBD_ID)=" & stType & ") AND ((S725_S725_CAHIER_D_CHARGES_VW.NUMERO_CSC) Is Null) AND ((S725_S661_FICHES.ACTIVE)=1) AND ((S725_S661_BUDGETS.STATUS))"

DoCmd.OpenQuery reqSQL, acViewNormal, acReadOnly

Exit_Recherche_Click:
Exit Sub

Err_Recherche_Click:
MsgBox Err.DESCRIPTION
Resume Exit_Recherche_Click

End Sub

Qui peut me dire ce qui est faux?
Merci beaucoup
Configuration: Windows XP
Internet Explorer 6.0

5 réponses

  1. Bonjour,

    Il te manque un point-virgule (;) à la fin de ta requête juste avant les guillemets (")
    1. Tu peux faire ça :

      Sub Cherche() 
      
      On Error GoTo Err_Recherche_Click 
      
      Dim stAnnee As Integer 
      Dim stType As Integer 
      Dim reqSQL As String 
      
      stAnnee = Combo1 
      
      stType = Combo5 
      
      reqSQL = "SELECT S725_S661_FICHES.NUMERO, S725_S661_FICHES.DESCRIPTION, S725_S661_BUDGETS.ANNEE, S725_S661_BUDGETS.MONTANT, S725_S661_BUDGETS.TBD_ID" 
      reqSQL = reqSQL & "FROM (S725_S661_FICHES LEFT JOIN S725_S725_CAHIER_D_CHARGES_VW ON S725_S661_FICHES.ID = S725_S725_CAHIER_D_CHARGES_VW.FCH_ID) INNER JOIN S725_S661_BUDGETS ON S725_S661_FICHES.ID = S725_S661_BUDGETS.FCH_ID" 
      reqSQL = reqSQL & "WHERE (((S725_S661_FICHES.NUMERO)>410000000) AND ((S725_S661_BUDGETS.MONTANT)>0) AND ((S725_S661_BUDGETS.TBD_ID)=" & stType & ") AND ((S725_S725_CAHIER_D_CHARGES_VW.NUMERO_CSC) Is Null) AND ((S725_S661_FICHES.ACTIVE)=1) AND ((S725_S661_BUDGETS.STATUS))" 
      
      CurrentDb.CreateQueryDef "NomDeLaRequete", reqSQL
      DoCmd.OpenQuery "NomDeLaRequete"
      
      Exit_Recherche_Click: 
      Exit Sub 
      
      Err_Recherche_Click: 
      MsgBox Err.DESCRIPTION 
      Resume Exit_Recherche_Click 
      
      End Sub 


      Du coup ça te créer la requête puis ça l'ouvre ;)