Zorh Opteron Power ! | Bonjour à tous,
j'utilise un tutorial.
celui ci permet une recherche avancé avec formulaire et sous formulaire.
Code :
- Private Sub Restriction(ByVal Chaine As String, _
- ByVal ChamP As String, ByVal matable As String, _
- ByRef ArGument As Integer, ByRef ClausE As String, ByRef astype As Integer)
- ' Choix du type : 0 pour un string, 1 pour un numérique ou booleen
- ' 2 pour une date
- 'Construit la requête au premier passage
- If ArGument = 0 Then
- 'Elimine les espaces
- matable = Trim$(matable)
- 'Si table est une sous requete :(commence par select)
- If InStr(1, matable, "SELECT ", vbTextCompare) <> 0 Then
- 'Enleve le ; s'il existe
- If Right(matable, 1) = ";" Then _
- matable = Left(matable, Len(matable) - 1)
- 'encadre la sous requete avec des ()
- ClausE = "SELECT * FROM (" & matable & " )"
- Else
- ClausE = "SELECT * FROM " & matable
- End If
- End If
- If Chaine <> "" Then
- If ArGument = 0 Then
- ' Ajoute le WHERE
- ClausE = ClausE & " WHERE "
- ' Ajout de l'opérateur "AND" si le where existe déja
- Else: ClausE = ClausE & " AND "
- End If
- Select Case astype
- Case 0 'Ajoute le critère si le type est texte
- ClausE = ClausE & ChamP & " like " & Chr(34) & Chaine & "*" & Chr(34)
- Case 1 'Ajoute le critère si le type est Numerique
- ClausE = ClausE & ChamP & "=" & Chaine
- Case 2 'Ajoute le critère si le type est date
- ClausE = ClausE & ChamP & "=#" & Format(Chaine, "mm/dd/yyyy" ) & "#"
- End Select
- ArGument = ArGument + 1
- End If
- End Sub
|
Code :
- Private Sub BRechercher_Click()
- Dim SQL As String
- Dim NomTable As String
- Dim Compteur As Integer
- NomTable = "Table1"
- 'Appel de la procedure de creation de requête
- 'pour le numero de série de type texte
- Restriction Nz(TLTA, "" ), "LTA", NomTable, Compteur, SQL, 1
- 'pour la date achat de type date (2)
- Restriction Nz(Date, "" ), "Date", NomTable, Compteur, SQL, 2
- 'Pour la marque de type texte
- Restriction Nz(Exploit, "" ), "Exploitant", NomTable, Compteur, SQL, 0
- 'Affecte la requête au sous formulaire
- Me.SousFormulaire.Form.RecordSource = SQL
|
se que je veux faire est simple, j'ai une requete fait en mode création.
j'ai donc créée un bouton sur le formulaire existant avec le code suivant.
Code :
- Private Sub LTA_Libre_Click()
- Dim stDocName As String
- stDocName = "Recherche par LTA Libre"
- DoCmd.OpenQuery stDocName, acNormal, acEdit
- End Sub
|
forcément ce code permet d'executer simplement la requête et biensur me donne le résultat dans une nouvelle fenêtre.
comment faire pour que le résultat soit dans le sous formulaire car je n'arrive pas à conprendre le SQL dans Me.SousFormulaire.Form.RecordSource = SQL.
si quelqu'un à une idée.
merci bien !
cordialement,
Zorh. |