bonjour,
J'ai une table nommée Parution qui est ainsi faite :
Parution (NumPar #, moisPar, annéePar, archivage, numRev#)
Type
NumPar : Num auto
moisPar : liste déroulante
annéePar : date
archive : case a cocher
numrev : num auto clé étrangère
Je souhaiterai obtenir un formulaire de recherche multicritère qui me
permetrait d'affiner ma recherche.
Par exemple : je oudrais savoir si le magazine "epilepcia" du mois de juin
2005 est dans la bibliothèque.
J'espere que c'est assez explicite.
Merci d'avance
Anne Sophie
bonjour,
J'ai une table nommée Parution qui est ainsi faite :
Parution (NumPar #, moisPar, annéePar, archivage, numRev#)
Type
NumPar : Num auto
moisPar : liste déroulante
annéePar : date
archive : case a cocher
numrev : num auto clé étrangère
Je souhaiterai obtenir un formulaire de recherche multicritère qui me
permetrait d'affiner ma recherche.
Par exemple : je oudrais savoir si le magazine "epilepcia" du mois de juin
2005 est dans la bibliothèque.
J'espere que c'est assez explicite.
Merci d'avance
Anne Sophie
bonjour,
J'ai une table nommée Parution qui est ainsi faite :
Parution (NumPar #, moisPar, annéePar, archivage, numRev#)
Type
NumPar : Num auto
moisPar : liste déroulante
annéePar : date
archive : case a cocher
numrev : num auto clé étrangère
Je souhaiterai obtenir un formulaire de recherche multicritère qui me
permetrait d'affiner ma recherche.
Par exemple : je oudrais savoir si le magazine "epilepcia" du mois de juin
2005 est dans la bibliothèque.
J'espere que c'est assez explicite.
Merci d'avance
Anne Sophie
Bonjour,
Voici un exemple du code que j'utilise pour rechercher des ordinateurs ou
imprimantes (le nom de la table à utiliser est passé dans OpenArgs) dans
ma
base
Cordialement
--
Gilbert
Private Sub cmdSearch_Click()
Dim db As Database, rst As Recordset
Dim lngCount As Long, intRtn As Integer
Dim Recherche As String
Dim Msg As String
Dim Style As Integer
On Error GoTo Err_cmdSearch_Click
'Recherche par Nom
If Not IsNothing(Me!Nom) Then
If IsNothing(Recherche) Then
Recherche = "[" & strNom & "] Like " & Chr$(34) & Me!Nom
Else
Recherche = Recherche & " AND [" & strNom & "] Like " & Chr$(34) &
Me!Nom
End If
If Right$(Me!Nom, 1) = "*" Then
Recherche = Recherche & Chr$(34)
Else
Recherche = Recherche & "*" & Chr$(34)
End If
End If
'Recherche par Numéro de série
If Not IsNothing(Me!Num_serie) Then
If IsNothing(Recherche) Then
Recherche = "[" & strNum & "] Like " & Chr$(34) & Me!Num_serie
Else
Recherche = Recherche & " AND [" & strNum & "] Like " & Chr$(34) &
Me!Num_serie
End If
If Right$(Me!Num_serie, 1) = "*" Then
Recherche = Recherche & Chr$(34)
Else
Recherche = Recherche & "*" & Chr$(34)
End If
End If
'Recherche par Salle
If Not IsNothing(Me!Salle) Then
If IsNothing(Recherche) Then
Recherche = "[Nom_Salle] Like " & Chr$(34) & Me!Salle
Else
Recherche = Recherche & " AND [Nom_Salle] Like " & Chr$(34) &
Me!Salle
End If
If Right$(Me!Salle, 1) = "*" Then
Recherche = Recherche & Chr$(34)
Else
Recherche = Recherche & "*" & Chr$(34)
End If
End If
'Recherche par adresse IP
If Not IsNothing(Me!Adresse_IP) Then
If IsNothing(Recherche) Then
Recherche = "[" & strAdrIP & "] Like " & Chr$(34) & Me!Adresse_IP
Else
Recherche = Recherche & " AND [" & strAdrIP & "] Like " & Chr$(34)
&
Me!Adresse_IP
End If
If Right$(Me!Adresse_IP, 1) = "*" Then
Recherche = Recherche & Chr$(34)
Else
Recherche = Recherche & "*" & Chr$(34)
End If
End If
'Recherche par Marque
If Not IsNothing(Me!Marque) Then
If IsNothing(Recherche) Then
Recherche = "[" & OpenArgs & "].[Ref_Fabricant] Like " & Chr$(34)
&
Me!Marque
Else
Recherche = Recherche & " AND [" & OpenArgs & "].[Ref_Fabricant]
Like " & Chr$(34) & Me!Marque
End If
If Right$(Me!Marque, 1) = "*" Then
Recherche = Recherche & Chr$(34)
Else
Recherche = Recherche & "*" & Chr$(34)
End If
End If
'Recherche par Fournisseur
If Not IsNothing(Me!Fournisseur) Then
If IsNothing(Recherche) Then
Recherche = "[Ref_Fournisseur] = " & Me!Fournisseur
Else
Recherche = Recherche & " AND [Ref_Fournisseur] = " &
Me!Fournisseur
End If
' If Right$(Me!Fournisseur, 1) = "*" Then
' Recherche = Recherche & Chr$(34)
' Else
' Recherche = Recherche & "*" & Chr$(34)
' End If
End If
' Si pas de critère, rien à faire!
If IsNothing(Recherche) Then
MsgBox "Aucun critère de recherche n'a été spécifié.", vbExclamation,
Titre_Msg
Me!Nom.SetFocus
Else
' Hide myself and turn on Hourglass
Me.Visible = False
DoCmd.Hourglass True
' Find out if any books satisfy the Where clause
Set db = CurrentDb
Set rst = db.OpenRecordset("SELECT DISTINCTROW " & _
"[" & OpenArgs & "].[" & strNom & "] " & _
"FROM [" & OpenArgs & "]" & _
" WHERE " & Recherche & ";")
' If none found, then tell them and make me visible to try again
If rst.RecordCount = 0 Then
DoCmd.Hourglass False
MsgBox "Aucune fiche ne correspond à vos critères de recherche",
vbExclamation, Titre_Msg
Recherche = ""
Me.Visible = True
rst.Close
Else
' Move to last row to get an accurate record count
rst.MoveLast
lngCount = rst.RecordCount
' If more than 20, then ask if they want to only see a summary
If lngCount > 20 Then
Msg = lngCount & " fiches correspondent à vos critères de
recherche." & vbCrLf & _
"Cliquez sur OK pour accéder aux fiches sélectionnées." &
vbCrLf & _
" sur Annuler pour modifier les critères de
recherche."
' " sur Non pour voir la liste récapitulative
des
fiches trouvées." & vbCrLf &
Style = vbOKCancel + vbExclamation + vbDefaultButton1
intRtn = MsgBox(Msg, Style, Titre_Msg)
Select Case intRtn
Case vbCancel ' Cancel - Try again
Me.Visible = True
GoTo Exit_cmdSearch_Click
Case vbOK ' Yes - show summary form
DoCmd.OpenForm FormName:=OpenArgs,
WhereCondition:=Recherche
DoCmd.Close acForm, Me.Name
' Forms![ordinateurs].SetFocus
GoTo Exit_cmdSearch_Click
End Select
End If
' Replied NO or not more than 10, show full details
DoCmd.OpenForm FormName:=OpenArgs, WhereCondition:=Recherche
' Close me, and we're done
DoCmd.Close acForm, Me.Name
End If
End If
Exit_cmdSearch_Click:
DoCmd.Hourglass False
Exit Sub
Err_cmdSearch_Click:
MsgBox err.Description
Resume Exit_cmdSearch_Click
End Sub
"Anne Sophie" a écrit dans le message de
news:bonjour,
J'ai une table nommée Parution qui est ainsi faite :
Parution (NumPar #, moisPar, annéePar, archivage, numRev#)
Type
NumPar : Num auto
moisPar : liste déroulante
annéePar : date
archive : case a cocher
numrev : num auto clé étrangère
Je souhaiterai obtenir un formulaire de recherche multicritère qui me
permetrait d'affiner ma recherche.
Par exemple : je oudrais savoir si le magazine "epilepcia" du mois de
juin
2005 est dans la bibliothèque.
J'espere que c'est assez explicite.
Merci d'avance
Anne Sophie
Bonjour,
Voici un exemple du code que j'utilise pour rechercher des ordinateurs ou
imprimantes (le nom de la table à utiliser est passé dans OpenArgs) dans
ma
base
Cordialement
--
Gilbert
Private Sub cmdSearch_Click()
Dim db As Database, rst As Recordset
Dim lngCount As Long, intRtn As Integer
Dim Recherche As String
Dim Msg As String
Dim Style As Integer
On Error GoTo Err_cmdSearch_Click
'Recherche par Nom
If Not IsNothing(Me!Nom) Then
If IsNothing(Recherche) Then
Recherche = "[" & strNom & "] Like " & Chr$(34) & Me!Nom
Else
Recherche = Recherche & " AND [" & strNom & "] Like " & Chr$(34) &
Me!Nom
End If
If Right$(Me!Nom, 1) = "*" Then
Recherche = Recherche & Chr$(34)
Else
Recherche = Recherche & "*" & Chr$(34)
End If
End If
'Recherche par Numéro de série
If Not IsNothing(Me!Num_serie) Then
If IsNothing(Recherche) Then
Recherche = "[" & strNum & "] Like " & Chr$(34) & Me!Num_serie
Else
Recherche = Recherche & " AND [" & strNum & "] Like " & Chr$(34) &
Me!Num_serie
End If
If Right$(Me!Num_serie, 1) = "*" Then
Recherche = Recherche & Chr$(34)
Else
Recherche = Recherche & "*" & Chr$(34)
End If
End If
'Recherche par Salle
If Not IsNothing(Me!Salle) Then
If IsNothing(Recherche) Then
Recherche = "[Nom_Salle] Like " & Chr$(34) & Me!Salle
Else
Recherche = Recherche & " AND [Nom_Salle] Like " & Chr$(34) &
Me!Salle
End If
If Right$(Me!Salle, 1) = "*" Then
Recherche = Recherche & Chr$(34)
Else
Recherche = Recherche & "*" & Chr$(34)
End If
End If
'Recherche par adresse IP
If Not IsNothing(Me!Adresse_IP) Then
If IsNothing(Recherche) Then
Recherche = "[" & strAdrIP & "] Like " & Chr$(34) & Me!Adresse_IP
Else
Recherche = Recherche & " AND [" & strAdrIP & "] Like " & Chr$(34)
&
Me!Adresse_IP
End If
If Right$(Me!Adresse_IP, 1) = "*" Then
Recherche = Recherche & Chr$(34)
Else
Recherche = Recherche & "*" & Chr$(34)
End If
End If
'Recherche par Marque
If Not IsNothing(Me!Marque) Then
If IsNothing(Recherche) Then
Recherche = "[" & OpenArgs & "].[Ref_Fabricant] Like " & Chr$(34)
&
Me!Marque
Else
Recherche = Recherche & " AND [" & OpenArgs & "].[Ref_Fabricant]
Like " & Chr$(34) & Me!Marque
End If
If Right$(Me!Marque, 1) = "*" Then
Recherche = Recherche & Chr$(34)
Else
Recherche = Recherche & "*" & Chr$(34)
End If
End If
'Recherche par Fournisseur
If Not IsNothing(Me!Fournisseur) Then
If IsNothing(Recherche) Then
Recherche = "[Ref_Fournisseur] = " & Me!Fournisseur
Else
Recherche = Recherche & " AND [Ref_Fournisseur] = " &
Me!Fournisseur
End If
' If Right$(Me!Fournisseur, 1) = "*" Then
' Recherche = Recherche & Chr$(34)
' Else
' Recherche = Recherche & "*" & Chr$(34)
' End If
End If
' Si pas de critère, rien à faire!
If IsNothing(Recherche) Then
MsgBox "Aucun critère de recherche n'a été spécifié.", vbExclamation,
Titre_Msg
Me!Nom.SetFocus
Else
' Hide myself and turn on Hourglass
Me.Visible = False
DoCmd.Hourglass True
' Find out if any books satisfy the Where clause
Set db = CurrentDb
Set rst = db.OpenRecordset("SELECT DISTINCTROW " & _
"[" & OpenArgs & "].[" & strNom & "] " & _
"FROM [" & OpenArgs & "]" & _
" WHERE " & Recherche & ";")
' If none found, then tell them and make me visible to try again
If rst.RecordCount = 0 Then
DoCmd.Hourglass False
MsgBox "Aucune fiche ne correspond à vos critères de recherche",
vbExclamation, Titre_Msg
Recherche = ""
Me.Visible = True
rst.Close
Else
' Move to last row to get an accurate record count
rst.MoveLast
lngCount = rst.RecordCount
' If more than 20, then ask if they want to only see a summary
If lngCount > 20 Then
Msg = lngCount & " fiches correspondent à vos critères de
recherche." & vbCrLf & _
"Cliquez sur OK pour accéder aux fiches sélectionnées." &
vbCrLf & _
" sur Annuler pour modifier les critères de
recherche."
' " sur Non pour voir la liste récapitulative
des
fiches trouvées." & vbCrLf &
Style = vbOKCancel + vbExclamation + vbDefaultButton1
intRtn = MsgBox(Msg, Style, Titre_Msg)
Select Case intRtn
Case vbCancel ' Cancel - Try again
Me.Visible = True
GoTo Exit_cmdSearch_Click
Case vbOK ' Yes - show summary form
DoCmd.OpenForm FormName:=OpenArgs,
WhereCondition:=Recherche
DoCmd.Close acForm, Me.Name
' Forms![ordinateurs].SetFocus
GoTo Exit_cmdSearch_Click
End Select
End If
' Replied NO or not more than 10, show full details
DoCmd.OpenForm FormName:=OpenArgs, WhereCondition:=Recherche
' Close me, and we're done
DoCmd.Close acForm, Me.Name
End If
End If
Exit_cmdSearch_Click:
DoCmd.Hourglass False
Exit Sub
Err_cmdSearch_Click:
MsgBox err.Description
Resume Exit_cmdSearch_Click
End Sub
"Anne Sophie" <XXannesophie.1985@laposte.net> a écrit dans le message de
news: OmJ20XjdFHA.3712@TK2MSFTNGP12.phx.gbl...
bonjour,
J'ai une table nommée Parution qui est ainsi faite :
Parution (NumPar #, moisPar, annéePar, archivage, numRev#)
Type
NumPar : Num auto
moisPar : liste déroulante
annéePar : date
archive : case a cocher
numrev : num auto clé étrangère
Je souhaiterai obtenir un formulaire de recherche multicritère qui me
permetrait d'affiner ma recherche.
Par exemple : je oudrais savoir si le magazine "epilepcia" du mois de
juin
2005 est dans la bibliothèque.
J'espere que c'est assez explicite.
Merci d'avance
Anne Sophie
Bonjour,
Voici un exemple du code que j'utilise pour rechercher des ordinateurs ou
imprimantes (le nom de la table à utiliser est passé dans OpenArgs) dans
ma
base
Cordialement
--
Gilbert
Private Sub cmdSearch_Click()
Dim db As Database, rst As Recordset
Dim lngCount As Long, intRtn As Integer
Dim Recherche As String
Dim Msg As String
Dim Style As Integer
On Error GoTo Err_cmdSearch_Click
'Recherche par Nom
If Not IsNothing(Me!Nom) Then
If IsNothing(Recherche) Then
Recherche = "[" & strNom & "] Like " & Chr$(34) & Me!Nom
Else
Recherche = Recherche & " AND [" & strNom & "] Like " & Chr$(34) &
Me!Nom
End If
If Right$(Me!Nom, 1) = "*" Then
Recherche = Recherche & Chr$(34)
Else
Recherche = Recherche & "*" & Chr$(34)
End If
End If
'Recherche par Numéro de série
If Not IsNothing(Me!Num_serie) Then
If IsNothing(Recherche) Then
Recherche = "[" & strNum & "] Like " & Chr$(34) & Me!Num_serie
Else
Recherche = Recherche & " AND [" & strNum & "] Like " & Chr$(34) &
Me!Num_serie
End If
If Right$(Me!Num_serie, 1) = "*" Then
Recherche = Recherche & Chr$(34)
Else
Recherche = Recherche & "*" & Chr$(34)
End If
End If
'Recherche par Salle
If Not IsNothing(Me!Salle) Then
If IsNothing(Recherche) Then
Recherche = "[Nom_Salle] Like " & Chr$(34) & Me!Salle
Else
Recherche = Recherche & " AND [Nom_Salle] Like " & Chr$(34) &
Me!Salle
End If
If Right$(Me!Salle, 1) = "*" Then
Recherche = Recherche & Chr$(34)
Else
Recherche = Recherche & "*" & Chr$(34)
End If
End If
'Recherche par adresse IP
If Not IsNothing(Me!Adresse_IP) Then
If IsNothing(Recherche) Then
Recherche = "[" & strAdrIP & "] Like " & Chr$(34) & Me!Adresse_IP
Else
Recherche = Recherche & " AND [" & strAdrIP & "] Like " & Chr$(34)
&
Me!Adresse_IP
End If
If Right$(Me!Adresse_IP, 1) = "*" Then
Recherche = Recherche & Chr$(34)
Else
Recherche = Recherche & "*" & Chr$(34)
End If
End If
'Recherche par Marque
If Not IsNothing(Me!Marque) Then
If IsNothing(Recherche) Then
Recherche = "[" & OpenArgs & "].[Ref_Fabricant] Like " & Chr$(34)
&
Me!Marque
Else
Recherche = Recherche & " AND [" & OpenArgs & "].[Ref_Fabricant]
Like " & Chr$(34) & Me!Marque
End If
If Right$(Me!Marque, 1) = "*" Then
Recherche = Recherche & Chr$(34)
Else
Recherche = Recherche & "*" & Chr$(34)
End If
End If
'Recherche par Fournisseur
If Not IsNothing(Me!Fournisseur) Then
If IsNothing(Recherche) Then
Recherche = "[Ref_Fournisseur] = " & Me!Fournisseur
Else
Recherche = Recherche & " AND [Ref_Fournisseur] = " &
Me!Fournisseur
End If
' If Right$(Me!Fournisseur, 1) = "*" Then
' Recherche = Recherche & Chr$(34)
' Else
' Recherche = Recherche & "*" & Chr$(34)
' End If
End If
' Si pas de critère, rien à faire!
If IsNothing(Recherche) Then
MsgBox "Aucun critère de recherche n'a été spécifié.", vbExclamation,
Titre_Msg
Me!Nom.SetFocus
Else
' Hide myself and turn on Hourglass
Me.Visible = False
DoCmd.Hourglass True
' Find out if any books satisfy the Where clause
Set db = CurrentDb
Set rst = db.OpenRecordset("SELECT DISTINCTROW " & _
"[" & OpenArgs & "].[" & strNom & "] " & _
"FROM [" & OpenArgs & "]" & _
" WHERE " & Recherche & ";")
' If none found, then tell them and make me visible to try again
If rst.RecordCount = 0 Then
DoCmd.Hourglass False
MsgBox "Aucune fiche ne correspond à vos critères de recherche",
vbExclamation, Titre_Msg
Recherche = ""
Me.Visible = True
rst.Close
Else
' Move to last row to get an accurate record count
rst.MoveLast
lngCount = rst.RecordCount
' If more than 20, then ask if they want to only see a summary
If lngCount > 20 Then
Msg = lngCount & " fiches correspondent à vos critères de
recherche." & vbCrLf & _
"Cliquez sur OK pour accéder aux fiches sélectionnées." &
vbCrLf & _
" sur Annuler pour modifier les critères de
recherche."
' " sur Non pour voir la liste récapitulative
des
fiches trouvées." & vbCrLf &
Style = vbOKCancel + vbExclamation + vbDefaultButton1
intRtn = MsgBox(Msg, Style, Titre_Msg)
Select Case intRtn
Case vbCancel ' Cancel - Try again
Me.Visible = True
GoTo Exit_cmdSearch_Click
Case vbOK ' Yes - show summary form
DoCmd.OpenForm FormName:=OpenArgs,
WhereCondition:=Recherche
DoCmd.Close acForm, Me.Name
' Forms![ordinateurs].SetFocus
GoTo Exit_cmdSearch_Click
End Select
End If
' Replied NO or not more than 10, show full details
DoCmd.OpenForm FormName:=OpenArgs, WhereCondition:=Recherche
' Close me, and we're done
DoCmd.Close acForm, Me.Name
End If
End If
Exit_cmdSearch_Click:
DoCmd.Hourglass False
Exit Sub
Err_cmdSearch_Click:
MsgBox err.Description
Resume Exit_cmdSearch_Click
End Sub
"Anne Sophie" a écrit dans le message de
news:bonjour,
J'ai une table nommée Parution qui est ainsi faite :
Parution (NumPar #, moisPar, annéePar, archivage, numRev#)
Type
NumPar : Num auto
moisPar : liste déroulante
annéePar : date
archive : case a cocher
numrev : num auto clé étrangère
Je souhaiterai obtenir un formulaire de recherche multicritère qui me
permetrait d'affiner ma recherche.
Par exemple : je oudrais savoir si le magazine "epilepcia" du mois de
juin
2005 est dans la bibliothèque.
J'espere que c'est assez explicite.
Merci d'avance
Anne Sophie
Merci Gilbert
mais pourrais tu me décrire ton formulaire? Table attachée, champs ect...
Merci d'avance
Anne So
"Gilbert" a écrit dans le message de news:Bonjour,
Voici un exemple du code que j'utilise pour rechercher des ordinateurs ou
imprimantes (le nom de la table à utiliser est passé dans OpenArgs) dans
mabase
Cordialement
--
Gilbert
Private Sub cmdSearch_Click()
Dim db As Database, rst As Recordset
Dim lngCount As Long, intRtn As Integer
Dim Recherche As String
Dim Msg As String
Dim Style As Integer
On Error GoTo Err_cmdSearch_Click
'Recherche par Nom
If Not IsNothing(Me!Nom) Then
If IsNothing(Recherche) Then
Recherche = "[" & strNom & "] Like " & Chr$(34) & Me!Nom
Else
Recherche = Recherche & " AND [" & strNom & "] Like " & Chr$(34)
&
Me!Nom
End If
If Right$(Me!Nom, 1) = "*" Then
Recherche = Recherche & Chr$(34)
Else
Recherche = Recherche & "*" & Chr$(34)
End If
End If
'Recherche par Numéro de série
If Not IsNothing(Me!Num_serie) Then
If IsNothing(Recherche) Then
Recherche = "[" & strNum & "] Like " & Chr$(34) & Me!Num_serie
Else
Recherche = Recherche & " AND [" & strNum & "] Like " & Chr$(34)
&
Me!Num_serie
End If
If Right$(Me!Num_serie, 1) = "*" Then
Recherche = Recherche & Chr$(34)
Else
Recherche = Recherche & "*" & Chr$(34)
End If
End If
'Recherche par Salle
If Not IsNothing(Me!Salle) Then
If IsNothing(Recherche) Then
Recherche = "[Nom_Salle] Like " & Chr$(34) & Me!Salle
Else
Recherche = Recherche & " AND [Nom_Salle] Like " & Chr$(34) &
Me!Salle
End If
If Right$(Me!Salle, 1) = "*" Then
Recherche = Recherche & Chr$(34)
Else
Recherche = Recherche & "*" & Chr$(34)
End If
End If
'Recherche par adresse IP
If Not IsNothing(Me!Adresse_IP) Then
If IsNothing(Recherche) Then
Recherche = "[" & strAdrIP & "] Like " & Chr$(34) & Me!Adresse_IP
Else
Recherche = Recherche & " AND [" & strAdrIP & "] Like " &
Chr$(34)
&Me!Adresse_IP
End If
If Right$(Me!Adresse_IP, 1) = "*" Then
Recherche = Recherche & Chr$(34)
Else
Recherche = Recherche & "*" & Chr$(34)
End If
End If
'Recherche par Marque
If Not IsNothing(Me!Marque) Then
If IsNothing(Recherche) Then
Recherche = "[" & OpenArgs & "].[Ref_Fabricant] Like " & Chr$(34)
&Me!Marque
Else
Recherche = Recherche & " AND [" & OpenArgs & "].[Ref_Fabricant]
Like " & Chr$(34) & Me!Marque
End If
If Right$(Me!Marque, 1) = "*" Then
Recherche = Recherche & Chr$(34)
Else
Recherche = Recherche & "*" & Chr$(34)
End If
End If
'Recherche par Fournisseur
If Not IsNothing(Me!Fournisseur) Then
If IsNothing(Recherche) Then
Recherche = "[Ref_Fournisseur] = " & Me!Fournisseur
Else
Recherche = Recherche & " AND [Ref_Fournisseur] = " &
Me!FournisseurEnd If
' If Right$(Me!Fournisseur, 1) = "*" Then
' Recherche = Recherche & Chr$(34)
' Else
' Recherche = Recherche & "*" & Chr$(34)
' End If
End If
' Si pas de critère, rien à faire!
If IsNothing(Recherche) Then
MsgBox "Aucun critère de recherche n'a été spécifié.", vbExclamation,
Titre_Msg
Me!Nom.SetFocus
Else
' Hide myself and turn on Hourglass
Me.Visible = False
DoCmd.Hourglass True
' Find out if any books satisfy the Where clause
Set db = CurrentDb
Set rst = db.OpenRecordset("SELECT DISTINCTROW " & _
"[" & OpenArgs & "].[" & strNom & "] " & _
"FROM [" & OpenArgs & "]" & _
" WHERE " & Recherche & ";")
' If none found, then tell them and make me visible to try again
If rst.RecordCount = 0 Then
DoCmd.Hourglass False
MsgBox "Aucune fiche ne correspond à vos critères de recherche",
vbExclamation, Titre_Msg
Recherche = ""
Me.Visible = True
rst.Close
Else
' Move to last row to get an accurate record count
rst.MoveLast
lngCount = rst.RecordCount
' If more than 20, then ask if they want to only see a summary
If lngCount > 20 Then
Msg = lngCount & " fiches correspondent à vos critères de
recherche." & vbCrLf & _
"Cliquez sur OK pour accéder aux fiches sélectionnées." &
vbCrLf & _
" sur Annuler pour modifier les critères de
recherche."
' " sur Non pour voir la liste récapitulative
desfiches trouvées." & vbCrLf &
Style = vbOKCancel + vbExclamation + vbDefaultButton1
intRtn = MsgBox(Msg, Style, Titre_Msg)
Select Case intRtn
Case vbCancel ' Cancel - Try again
Me.Visible = True
GoTo Exit_cmdSearch_Click
Case vbOK ' Yes - show summary form
DoCmd.OpenForm FormName:=OpenArgs,
WhereCondition:=Recherche
DoCmd.Close acForm, Me.Name
' Forms![ordinateurs].SetFocus
GoTo Exit_cmdSearch_Click
End Select
End If
' Replied NO or not more than 10, show full details
DoCmd.OpenForm FormName:=OpenArgs, WhereCondition:=Recherche
' Close me, and we're done
DoCmd.Close acForm, Me.Name
End If
End If
Exit_cmdSearch_Click:
DoCmd.Hourglass False
Exit Sub
Err_cmdSearch_Click:
MsgBox err.Description
Resume Exit_cmdSearch_Click
End Sub
"Anne Sophie" a écrit dans le message de
news:bonjour,
J'ai une table nommée Parution qui est ainsi faite :
Parution (NumPar #, moisPar, annéePar, archivage, numRev#)
Type
NumPar : Num auto
moisPar : liste déroulante
annéePar : date
archive : case a cocher
numrev : num auto clé étrangère
Je souhaiterai obtenir un formulaire de recherche multicritère qui me
permetrait d'affiner ma recherche.
Par exemple : je oudrais savoir si le magazine "epilepcia" du mois de
juin2005 est dans la bibliothèque.
J'espere que c'est assez explicite.
Merci d'avance
Anne Sophie
Merci Gilbert
mais pourrais tu me décrire ton formulaire? Table attachée, champs ect...
Merci d'avance
Anne So
"Gilbert" <ZZZZgilbertvie@tiscali.fr> a écrit dans le message de news:
u6BHGxkdFHA.2288@TK2MSFTNGP14.phx.gbl...
Bonjour,
Voici un exemple du code que j'utilise pour rechercher des ordinateurs ou
imprimantes (le nom de la table à utiliser est passé dans OpenArgs) dans
ma
base
Cordialement
--
Gilbert
Private Sub cmdSearch_Click()
Dim db As Database, rst As Recordset
Dim lngCount As Long, intRtn As Integer
Dim Recherche As String
Dim Msg As String
Dim Style As Integer
On Error GoTo Err_cmdSearch_Click
'Recherche par Nom
If Not IsNothing(Me!Nom) Then
If IsNothing(Recherche) Then
Recherche = "[" & strNom & "] Like " & Chr$(34) & Me!Nom
Else
Recherche = Recherche & " AND [" & strNom & "] Like " & Chr$(34)
&
Me!Nom
End If
If Right$(Me!Nom, 1) = "*" Then
Recherche = Recherche & Chr$(34)
Else
Recherche = Recherche & "*" & Chr$(34)
End If
End If
'Recherche par Numéro de série
If Not IsNothing(Me!Num_serie) Then
If IsNothing(Recherche) Then
Recherche = "[" & strNum & "] Like " & Chr$(34) & Me!Num_serie
Else
Recherche = Recherche & " AND [" & strNum & "] Like " & Chr$(34)
&
Me!Num_serie
End If
If Right$(Me!Num_serie, 1) = "*" Then
Recherche = Recherche & Chr$(34)
Else
Recherche = Recherche & "*" & Chr$(34)
End If
End If
'Recherche par Salle
If Not IsNothing(Me!Salle) Then
If IsNothing(Recherche) Then
Recherche = "[Nom_Salle] Like " & Chr$(34) & Me!Salle
Else
Recherche = Recherche & " AND [Nom_Salle] Like " & Chr$(34) &
Me!Salle
End If
If Right$(Me!Salle, 1) = "*" Then
Recherche = Recherche & Chr$(34)
Else
Recherche = Recherche & "*" & Chr$(34)
End If
End If
'Recherche par adresse IP
If Not IsNothing(Me!Adresse_IP) Then
If IsNothing(Recherche) Then
Recherche = "[" & strAdrIP & "] Like " & Chr$(34) & Me!Adresse_IP
Else
Recherche = Recherche & " AND [" & strAdrIP & "] Like " &
Chr$(34)
&
Me!Adresse_IP
End If
If Right$(Me!Adresse_IP, 1) = "*" Then
Recherche = Recherche & Chr$(34)
Else
Recherche = Recherche & "*" & Chr$(34)
End If
End If
'Recherche par Marque
If Not IsNothing(Me!Marque) Then
If IsNothing(Recherche) Then
Recherche = "[" & OpenArgs & "].[Ref_Fabricant] Like " & Chr$(34)
&
Me!Marque
Else
Recherche = Recherche & " AND [" & OpenArgs & "].[Ref_Fabricant]
Like " & Chr$(34) & Me!Marque
End If
If Right$(Me!Marque, 1) = "*" Then
Recherche = Recherche & Chr$(34)
Else
Recherche = Recherche & "*" & Chr$(34)
End If
End If
'Recherche par Fournisseur
If Not IsNothing(Me!Fournisseur) Then
If IsNothing(Recherche) Then
Recherche = "[Ref_Fournisseur] = " & Me!Fournisseur
Else
Recherche = Recherche & " AND [Ref_Fournisseur] = " &
Me!Fournisseur
End If
' If Right$(Me!Fournisseur, 1) = "*" Then
' Recherche = Recherche & Chr$(34)
' Else
' Recherche = Recherche & "*" & Chr$(34)
' End If
End If
' Si pas de critère, rien à faire!
If IsNothing(Recherche) Then
MsgBox "Aucun critère de recherche n'a été spécifié.", vbExclamation,
Titre_Msg
Me!Nom.SetFocus
Else
' Hide myself and turn on Hourglass
Me.Visible = False
DoCmd.Hourglass True
' Find out if any books satisfy the Where clause
Set db = CurrentDb
Set rst = db.OpenRecordset("SELECT DISTINCTROW " & _
"[" & OpenArgs & "].[" & strNom & "] " & _
"FROM [" & OpenArgs & "]" & _
" WHERE " & Recherche & ";")
' If none found, then tell them and make me visible to try again
If rst.RecordCount = 0 Then
DoCmd.Hourglass False
MsgBox "Aucune fiche ne correspond à vos critères de recherche",
vbExclamation, Titre_Msg
Recherche = ""
Me.Visible = True
rst.Close
Else
' Move to last row to get an accurate record count
rst.MoveLast
lngCount = rst.RecordCount
' If more than 20, then ask if they want to only see a summary
If lngCount > 20 Then
Msg = lngCount & " fiches correspondent à vos critères de
recherche." & vbCrLf & _
"Cliquez sur OK pour accéder aux fiches sélectionnées." &
vbCrLf & _
" sur Annuler pour modifier les critères de
recherche."
' " sur Non pour voir la liste récapitulative
des
fiches trouvées." & vbCrLf &
Style = vbOKCancel + vbExclamation + vbDefaultButton1
intRtn = MsgBox(Msg, Style, Titre_Msg)
Select Case intRtn
Case vbCancel ' Cancel - Try again
Me.Visible = True
GoTo Exit_cmdSearch_Click
Case vbOK ' Yes - show summary form
DoCmd.OpenForm FormName:=OpenArgs,
WhereCondition:=Recherche
DoCmd.Close acForm, Me.Name
' Forms![ordinateurs].SetFocus
GoTo Exit_cmdSearch_Click
End Select
End If
' Replied NO or not more than 10, show full details
DoCmd.OpenForm FormName:=OpenArgs, WhereCondition:=Recherche
' Close me, and we're done
DoCmd.Close acForm, Me.Name
End If
End If
Exit_cmdSearch_Click:
DoCmd.Hourglass False
Exit Sub
Err_cmdSearch_Click:
MsgBox err.Description
Resume Exit_cmdSearch_Click
End Sub
"Anne Sophie" <XXannesophie.1985@laposte.net> a écrit dans le message de
news: OmJ20XjdFHA.3712@TK2MSFTNGP12.phx.gbl...
bonjour,
J'ai une table nommée Parution qui est ainsi faite :
Parution (NumPar #, moisPar, annéePar, archivage, numRev#)
Type
NumPar : Num auto
moisPar : liste déroulante
annéePar : date
archive : case a cocher
numrev : num auto clé étrangère
Je souhaiterai obtenir un formulaire de recherche multicritère qui me
permetrait d'affiner ma recherche.
Par exemple : je oudrais savoir si le magazine "epilepcia" du mois de
juin
2005 est dans la bibliothèque.
J'espere que c'est assez explicite.
Merci d'avance
Anne Sophie
Merci Gilbert
mais pourrais tu me décrire ton formulaire? Table attachée, champs ect...
Merci d'avance
Anne So
"Gilbert" a écrit dans le message de news:Bonjour,
Voici un exemple du code que j'utilise pour rechercher des ordinateurs ou
imprimantes (le nom de la table à utiliser est passé dans OpenArgs) dans
mabase
Cordialement
--
Gilbert
Private Sub cmdSearch_Click()
Dim db As Database, rst As Recordset
Dim lngCount As Long, intRtn As Integer
Dim Recherche As String
Dim Msg As String
Dim Style As Integer
On Error GoTo Err_cmdSearch_Click
'Recherche par Nom
If Not IsNothing(Me!Nom) Then
If IsNothing(Recherche) Then
Recherche = "[" & strNom & "] Like " & Chr$(34) & Me!Nom
Else
Recherche = Recherche & " AND [" & strNom & "] Like " & Chr$(34)
&
Me!Nom
End If
If Right$(Me!Nom, 1) = "*" Then
Recherche = Recherche & Chr$(34)
Else
Recherche = Recherche & "*" & Chr$(34)
End If
End If
'Recherche par Numéro de série
If Not IsNothing(Me!Num_serie) Then
If IsNothing(Recherche) Then
Recherche = "[" & strNum & "] Like " & Chr$(34) & Me!Num_serie
Else
Recherche = Recherche & " AND [" & strNum & "] Like " & Chr$(34)
&
Me!Num_serie
End If
If Right$(Me!Num_serie, 1) = "*" Then
Recherche = Recherche & Chr$(34)
Else
Recherche = Recherche & "*" & Chr$(34)
End If
End If
'Recherche par Salle
If Not IsNothing(Me!Salle) Then
If IsNothing(Recherche) Then
Recherche = "[Nom_Salle] Like " & Chr$(34) & Me!Salle
Else
Recherche = Recherche & " AND [Nom_Salle] Like " & Chr$(34) &
Me!Salle
End If
If Right$(Me!Salle, 1) = "*" Then
Recherche = Recherche & Chr$(34)
Else
Recherche = Recherche & "*" & Chr$(34)
End If
End If
'Recherche par adresse IP
If Not IsNothing(Me!Adresse_IP) Then
If IsNothing(Recherche) Then
Recherche = "[" & strAdrIP & "] Like " & Chr$(34) & Me!Adresse_IP
Else
Recherche = Recherche & " AND [" & strAdrIP & "] Like " &
Chr$(34)
&Me!Adresse_IP
End If
If Right$(Me!Adresse_IP, 1) = "*" Then
Recherche = Recherche & Chr$(34)
Else
Recherche = Recherche & "*" & Chr$(34)
End If
End If
'Recherche par Marque
If Not IsNothing(Me!Marque) Then
If IsNothing(Recherche) Then
Recherche = "[" & OpenArgs & "].[Ref_Fabricant] Like " & Chr$(34)
&Me!Marque
Else
Recherche = Recherche & " AND [" & OpenArgs & "].[Ref_Fabricant]
Like " & Chr$(34) & Me!Marque
End If
If Right$(Me!Marque, 1) = "*" Then
Recherche = Recherche & Chr$(34)
Else
Recherche = Recherche & "*" & Chr$(34)
End If
End If
'Recherche par Fournisseur
If Not IsNothing(Me!Fournisseur) Then
If IsNothing(Recherche) Then
Recherche = "[Ref_Fournisseur] = " & Me!Fournisseur
Else
Recherche = Recherche & " AND [Ref_Fournisseur] = " &
Me!FournisseurEnd If
' If Right$(Me!Fournisseur, 1) = "*" Then
' Recherche = Recherche & Chr$(34)
' Else
' Recherche = Recherche & "*" & Chr$(34)
' End If
End If
' Si pas de critère, rien à faire!
If IsNothing(Recherche) Then
MsgBox "Aucun critère de recherche n'a été spécifié.", vbExclamation,
Titre_Msg
Me!Nom.SetFocus
Else
' Hide myself and turn on Hourglass
Me.Visible = False
DoCmd.Hourglass True
' Find out if any books satisfy the Where clause
Set db = CurrentDb
Set rst = db.OpenRecordset("SELECT DISTINCTROW " & _
"[" & OpenArgs & "].[" & strNom & "] " & _
"FROM [" & OpenArgs & "]" & _
" WHERE " & Recherche & ";")
' If none found, then tell them and make me visible to try again
If rst.RecordCount = 0 Then
DoCmd.Hourglass False
MsgBox "Aucune fiche ne correspond à vos critères de recherche",
vbExclamation, Titre_Msg
Recherche = ""
Me.Visible = True
rst.Close
Else
' Move to last row to get an accurate record count
rst.MoveLast
lngCount = rst.RecordCount
' If more than 20, then ask if they want to only see a summary
If lngCount > 20 Then
Msg = lngCount & " fiches correspondent à vos critères de
recherche." & vbCrLf & _
"Cliquez sur OK pour accéder aux fiches sélectionnées." &
vbCrLf & _
" sur Annuler pour modifier les critères de
recherche."
' " sur Non pour voir la liste récapitulative
desfiches trouvées." & vbCrLf &
Style = vbOKCancel + vbExclamation + vbDefaultButton1
intRtn = MsgBox(Msg, Style, Titre_Msg)
Select Case intRtn
Case vbCancel ' Cancel - Try again
Me.Visible = True
GoTo Exit_cmdSearch_Click
Case vbOK ' Yes - show summary form
DoCmd.OpenForm FormName:=OpenArgs,
WhereCondition:=Recherche
DoCmd.Close acForm, Me.Name
' Forms![ordinateurs].SetFocus
GoTo Exit_cmdSearch_Click
End Select
End If
' Replied NO or not more than 10, show full details
DoCmd.OpenForm FormName:=OpenArgs, WhereCondition:=Recherche
' Close me, and we're done
DoCmd.Close acForm, Me.Name
End If
End If
Exit_cmdSearch_Click:
DoCmd.Hourglass False
Exit Sub
Err_cmdSearch_Click:
MsgBox err.Description
Resume Exit_cmdSearch_Click
End Sub
"Anne Sophie" a écrit dans le message de
news:bonjour,
J'ai une table nommée Parution qui est ainsi faite :
Parution (NumPar #, moisPar, annéePar, archivage, numRev#)
Type
NumPar : Num auto
moisPar : liste déroulante
annéePar : date
archive : case a cocher
numrev : num auto clé étrangère
Je souhaiterai obtenir un formulaire de recherche multicritère qui me
permetrait d'affiner ma recherche.
Par exemple : je oudrais savoir si le magazine "epilepcia" du mois de
juin2005 est dans la bibliothèque.
J'espere que c'est assez explicite.
Merci d'avance
Anne Sophie