|
|
|
|
Bonjour,
J'apprivoise tranquillement access. Je me suis fais un formulaire ou je choisi les critères afin de modifier ma requete. Ensuite j'ouvre l'état correspondant. Par contre, les criteres ne sont pas seulement dans la clause where, car j'ai plusieurs select imbriqué, si seulement dans la clause where, j'envoie le critère lors de l'ouverture de l'état, mais comment faire pour changer d'autres parties dans ma requete avant d'ouvrir mon état? Recordset? si oui, comment?
Merci beaucoup de bien vouloir me donner des pistes!
Bonjour,
Public Function ChangeRequeteDef(ChaineRequete As String, ChaineSQL As String) As Boolean
Dim Definition As Variant
If ((ChaineRequete = "") Or (ChaineSQL = "")) Then
ChangeRequeteDef = False
Else
Set Definition = CurrentDb.QueryDefs(ChaineRequete)
Definition.SQL = ChaineSQL
Definition.Close
RefreshDatabaseWindow
ChangeRequeteDef = True
End If
End Function
'
Lupin |
Je suis pas sur que ce soit ce que tu voule mais voila
|
Re :
|
Re :
Sub Test()
'SELECT [Maintenance].[Refmaintenance], [Maintenance].[Numlicence_cle], [Maintenance].[Fin_garantie], [Maintenance].[Fin_extension]
'FROM Maintenance
'WHERE ((([Maintenance].[Fin_garantie])>#1/1/2007# And ([Maintenance].[Fin_garantie])<#1/1/2008#));
Dim ChaineSQL As String, Critere1 As String, Critere2 As String
Critere1 = "#1/1/2007#" ' Pourrait provenir de n'importe où, variable, textbox, etc ...
Critere2 = "#1/1/2008#"
ChaineSQL = "SELECT [Maintenance].[Refmaintenance], [Maintenance].[Numlicence_cle], [Maintenance].[Fin_garantie], [Maintenance].[Fin_extension]"
ChaineSQL = ChaineSQL & " " & "FROM Maintenance "
ChaineSQL = ChaineSQL & "WHERE ((([Maintenance].[Fin_garantie])>" & Critere1 & " "
ChaineSQL = ChaineSQL & "And ([Maintenance].[Fin_garantie])<" & Critere2 & "));"
If (ChangeRequeteDef("nom_de_la_requete", ChaineSQL)) Then
DoCmd.OpenForm "formulaire_Specifique", acNormal, "", "[Acronyme]", , acNormal
End If
End Sub
'
Lupin |
Re :
Private Sub tbxDateDebut_AfterUpdate()
If ((tbxDateDebut.Text <> "") and ( tbxDateFin.Text <> "" ))
' On reconstruit la chaine SQL avec les paramètres des 2 textbox
' On modifie la requète
' On ouvre le sous-formulaire qui pointe sur la requête que l'on vien de modifié.
End IF
End Sub
'
Lupin |
Re :
Private Sub tbxDateDebut_AfterUpdate()
Dim ChaineSQL As String, Critere1 As String, Critere2 As String
If ((tbxDateDebut.Text <> "") And (tbxDateFin.Text <> "")) Then
Critere1 = Me.tbxDateDebut.Text
Critere2 = Me.tbxDateFinal.Text
ChaineSQL = "SELECT [Maintenance].[Refmaintenance], [Maintenance].[Numlicence_cle], [Maintenance].[Fin_garantie], [Maintenance].[Fin_extension]"
ChaineSQL = ChaineSQL & " " & "FROM Maintenance "
ChaineSQL = ChaineSQL & "WHERE ((([Maintenance].[Fin_garantie])>" & Critere1 & " "
ChaineSQL = ChaineSQL & "And ([Maintenance].[Fin_garantie])<" & Critere2 & "));"
If (ChangeRequeteDef("nom_de_la_requete", ChaineSQL)) Then
DoCmd.OpenForm "formulaire_Specifique", acNormal, "", "[Champs]", , acNormal
End If
End If
End Sub
'
Lupin |
Re :
Private Sub tbxDateDebut_AfterUpdate()
Dim ChaineSQL As String, Critere1 As String, Critere2 As String
If ((tbxDateDebut.Text <> "") And (tbxDateFin.Text <> "")) Then
Critere1 = Me.tbxDateDebut.Text
Critere2 = Me.tbxDateFinal.Text
ChaineSQL = "SELECT [Maintenance].[Refmaintenance], [Maintenance].[Numlicence_cle], [Maintenance].[Fin_garantie], [Maintenance].[Fin_extension]"
ChaineSQL = ChaineSQL & " " & "FROM Maintenance "
ChaineSQL = ChaineSQL & "WHERE ((([Maintenance].[Fin_garantie])>" & Critere1 & " "
ChaineSQL = ChaineSQL & "And ([Maintenance].[Fin_garantie])<" & Critere2 & "));"
If (ChangeRequeteDef("nom_de_la_requete", ChaineSQL)) Then
DoCmd.OpenForm "second_formulaire", acNormal, "", "[Champs]", , acNormal
End If
End If
End Sub
'
bon, ça c'est le truc en gros, mais je dois souvent valider la construction de la chaine SQL en mode pas à pas d'exécution VBA. Lupin
|
Re :
|
Répondre à seblekiller_oupas
|
Re :
|