Recherche avancé dans Access par VB 2
Franck0
Messages postés
1
Date d'inscription
Statut
Membre
Dernière intervention
-
carnez jean-luc -
carnez jean-luc -
C'est le même message c'est seulement que je me suit inscrit comme membre.
Salut,
J'ai besoin d'aide avec ma BD. J'ai un formulaire qui fait la recherche par critère dans ma BD. Je ne sais pas comment faire pour que me recherche soit performante.
Par exemple :
Dans ma BD il y a comme information un champ "région", ce champ est pour mettre les régions où les gens sont intéressés de travailler. Je peux y mettre plusieurs régions comme "Montréal, Laval, Laurentide"
J'ai un formulaire qui fait la recherche par critère. Si je veux trouver les gens qui veulent travailler à Laval, il ne me donne pas ceux qui ont plusieurs régions. Je ne sais pas comment faire la recherche s'il y a plusieurs régions dans mon champs.
Si vous pouvez m'aider, ce serait très apprécié.
Voici mon code dans VB :
Sub Rech_Click()
Dim DB As Database
Dim Table As Recordset
Dim Temp, Temp1, Temp2, Filtre As String
Dim Longueur
Set DB = CurrentDb
Set Table = DB.OpenRecordset("Mutation", dbOpenSnapshot)
Table.MoveFirst
Temp = ""
Temp1 = ""
Temp2 = ""
Do
If Me![Région] <> "" And Me![Région] <= Table![Région] Then
Longueur = Len(Me![Région])
Temp = Mid(Me![Région], 1, Longueur)
Temp1 = "Région like'" & Temp & "'"
End If
If Temp1 <> "" Then
If Me![Classeemploi] <> "" And Me![Classeemploi] = Table![Classeemploi] Then
Temp2 = " AND Classeemploi like '" & Me![Classeemploi] & "'"
Exit Do
End If
Else
If Me![Classeemploi] <> "" And Me![Classeemploi] = Table![Classeemploi] Then
Temp2 = "Classeemploi like '" & Me![Classeemploi] & "'"
Exit Do
End If
End If
Table.MoveNext
If Table.EOF = True Then
Exit Do
End If
If Temp1 = "" Or Temp2 = "" Then
Exit Do
End If
Loop
If Temp1 <> "" Or Temp2 <> "" Then
Filtre = Temp1 & Temp2
DoCmd.Close acForm, "Rechercheadm", acSaveNo
DoCmd.OpenReport "Impression", acViewPreview, , Filtre
Else
DoCmd.OpenForm ("Message")
End If
Table.Close
Set DB = Nothing
End Sub
Salut,
J'ai besoin d'aide avec ma BD. J'ai un formulaire qui fait la recherche par critère dans ma BD. Je ne sais pas comment faire pour que me recherche soit performante.
Par exemple :
Dans ma BD il y a comme information un champ "région", ce champ est pour mettre les régions où les gens sont intéressés de travailler. Je peux y mettre plusieurs régions comme "Montréal, Laval, Laurentide"
J'ai un formulaire qui fait la recherche par critère. Si je veux trouver les gens qui veulent travailler à Laval, il ne me donne pas ceux qui ont plusieurs régions. Je ne sais pas comment faire la recherche s'il y a plusieurs régions dans mon champs.
Si vous pouvez m'aider, ce serait très apprécié.
Voici mon code dans VB :
Sub Rech_Click()
Dim DB As Database
Dim Table As Recordset
Dim Temp, Temp1, Temp2, Filtre As String
Dim Longueur
Set DB = CurrentDb
Set Table = DB.OpenRecordset("Mutation", dbOpenSnapshot)
Table.MoveFirst
Temp = ""
Temp1 = ""
Temp2 = ""
Do
If Me![Région] <> "" And Me![Région] <= Table![Région] Then
Longueur = Len(Me![Région])
Temp = Mid(Me![Région], 1, Longueur)
Temp1 = "Région like'" & Temp & "'"
End If
If Temp1 <> "" Then
If Me![Classeemploi] <> "" And Me![Classeemploi] = Table![Classeemploi] Then
Temp2 = " AND Classeemploi like '" & Me![Classeemploi] & "'"
Exit Do
End If
Else
If Me![Classeemploi] <> "" And Me![Classeemploi] = Table![Classeemploi] Then
Temp2 = "Classeemploi like '" & Me![Classeemploi] & "'"
Exit Do
End If
End If
Table.MoveNext
If Table.EOF = True Then
Exit Do
End If
If Temp1 = "" Or Temp2 = "" Then
Exit Do
End If
Loop
If Temp1 <> "" Or Temp2 <> "" Then
Filtre = Temp1 & Temp2
DoCmd.Close acForm, "Rechercheadm", acSaveNo
DoCmd.OpenReport "Impression", acViewPreview, , Filtre
Else
DoCmd.OpenForm ("Message")
End If
Table.Close
Set DB = Nothing
End Sub
A voir également:
- Recherche avancé dans Access par VB 2
- Supercopier 2 - Télécharger - Gestion de fichiers
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Recherche par image - Guide
- 2 ecran pc - Guide
- Je recherche une chanson - Guide
1 réponse
Bonjour,
il me semble que ton analyse initiale de ta base de donnée est incomplète.
Ta base n'est pas Meurisienne.
Pour le même individu, tu dois avoir autant d'enregistrements dans ta table que tu as de régions de configurées, et non pas un seul enregistrement avec une série de valeur significatives (tes régions) à la queue leu-leu dans un seul champ !!!
l'unicité de ta clef, ce n'est pas l'individu, mais le couple individu-région.
de la sorte, une simple sélection sur égalité d'individu et de région et le tour est joué.
Bien souvent, quand on ne s'en sort pas, c'est que les tables sont mal fichues; revenir à une définition selon Meurise est alors la bonne solution.
bon courage
il me semble que ton analyse initiale de ta base de donnée est incomplète.
Ta base n'est pas Meurisienne.
Pour le même individu, tu dois avoir autant d'enregistrements dans ta table que tu as de régions de configurées, et non pas un seul enregistrement avec une série de valeur significatives (tes régions) à la queue leu-leu dans un seul champ !!!
l'unicité de ta clef, ce n'est pas l'individu, mais le couple individu-région.
de la sorte, une simple sélection sur égalité d'individu et de région et le tour est joué.
Bien souvent, quand on ne s'en sort pas, c'est que les tables sont mal fichues; revenir à une définition selon Meurise est alors la bonne solution.
bon courage