RowSource

F -  
mprog67 Messages postés 51 Statut Membre -
Bonsoir à tous,

Je suis novice en VBA, et encore plus en Access.
Je dois réaliser un formulaire de recherche multicritère avec affichage dynamique des résultats. Ces résultats doivent s'afficher dans une textbox et les dénominations des colonnes doivent être inscrites aussi.

Pour cela j'utilise la fonction RowSource. Mais lors de la compilation, il s'affiche un message d'erreur : "membre de méthode ou de donnés introuvable.
Quelqu'un pour pourrait il m'aider ?
Merci d'avance.

Voici mon code :

Private Sub actu()
Dim req As String
Dim reqw As String

req = "SELECT Id_etudiant, nom_etudiant, prenom_etudiant, date_naissance_etudiant, id_cursus FROM Etudiant WHERE Etudiant!Id_Etudiant <>0"

If Me.chknumetu Then
req = req & "And Etudiant!Id_etudiant = '*" & Me.txtnumetu & "*' "
End If
If Me.chknometu Then
req = req & "And Etudiant!nom_etudiant like '" & Me.txtnometu & "' "
End If
If Me.chkcursus Then
req = req & "And Etudiant!Id_cursus = '*" & Me.cmbcursus & "*' "
End If

reqw = Trim(Right(req, Len(req) - InStr(req, "Where ") - Len("Where ") + 1))
req = req & ";"

Me.lblresult.Caption = DCount("*", "Etudiant", reqw) & " / " & DCount("*", "Etudiant")
Me.lstresult.RowSource = req
Me.lstresult.Requery

End Sub

F

1 réponse

  1. mprog67 Messages postés 51 Statut Membre 2
     
    Salut voilà je mets à votre disposition ce code que j'ai conçu dans un formulaire de ventes j'espère que vous en tirez quelques choses d'important.

    Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    Select Case KeyCode
    Case vbKeyF4
    DoCmd.OpenForm ("RendreMonnaie")
    Case Else
    End Select
    End Sub

    Private Sub Commande43_Click()
    Me!Texte41 = DLookup("Rente", "Rente")
    End Sub

    Private Sub Form_Error(DataErr As Integer, Response As Integer)

    Const CodeError = 3101

    Dim Answer As Integer
    If DataErr = CodeError Then
    Response = acDataErrContinue

    MsgBox "Ce numéro de vendeur n'existe pas", vbOKOnly, "GestPharma"
    Me![CodeVendeur] = 0
    Me!Texte26 = ""
    Answer = MsgBox(" Voulez-vous ajouter un nouveau vendeur ? ", vbYesNo, "GestPharma")
    If Answer = vbYes Then
    DoCmd.OpenForm ("Mot de passe")
    If Answer = vbNo Then
    Me.CodeVendeur.Undo
    Me!Texte26.Undo

    End If
    End If
    Me!Texte26.SetFocus
    End If

    End Sub

    Private Sub Commande11_Click()
    On Error GoTo Err_Commande11_Click

    DoCmd.GoToRecord , , acPrevious

    Exit_Commande11_Click:
    Exit Sub

    Err_Commande11_Click:
    MsgBox Err.Description
    Resume Exit_Commande11_Click

    End Sub

    Private Sub DateVente_Enter()
    If IsNull(Me!Texte26) Then
    MsgBox "Entrez d'abord le code vendeur", vbInformation, "GestPharma"
    Me!Texte26.SetFocus
    Else
    Me!CodeVendeur = Me!Texte26

    End If
    End Sub

    Private Sub Form_Load()
    Me.KeyPreview = True
    DoCmd.GoToRecord , , acNewRec
    Me!Texte26.SetFocus
    Me!Liste8.RowSource = ""
    Me!Liste32.RowSource = ""

    End Sub

    Private Sub Form_Timer()
    Me!Texte17 = Format(Now, "hh:mm:ss")
    Me![Texte13] = Me![Texte13] + 1
    End Sub

    Private Sub Form_Unload(Cancel As Integer)
    DoCmd.RunMacro "ClosePPA"
    End Sub

    Private Sub Liste8_AfterUpdate()

    [Form_ReqDétailsVentes Sous-formulaire1]!PPA = Me!Liste8.Column(10)
    [Form_ReqDétailsVentes Sous-formulaire1]!NomCommercial =
    Me!Liste8.Column(0)
    [Form_ReqDétailsVentes Sous-formulaire1]!Forme = Me!Liste8.Column(2)
    [Form_ReqDétailsVentes Sous-formulaire1]!Dosage = Me!Liste8.Column(3)
    [Form_ReqDétailsVentes Sous-formulaire1]!Conditionnement = Me!Liste8.Column(4)
    [Form_ReqDétailsVentes Sous-formulaire1]!NumLot = Me!Liste8.Column(8)
    [Form_ReqDétailsVentes Sous-formulaire1]!DatePér = Me!Liste8.Column(9)
    [Form_ReqDétailsVentes Sous-formulaire1]!RéfProduit = Me!Liste8.Column(1)

    [Form_ReqDétailsVentes Sous-formulaire1]!QtéV.Locked = False
    [Form_ReqDétailsVentes Sous-formulaire1]!Total.Locked = True
    [Form_ReqDétailsVentes Sous-formulaire1]!QtéV.Enabled = True
    [Form_ReqDétailsVentes Sous-formulaire1]!Total.Enabled = True
    [Form_ReqDétailsVentes Sous-formulaire1]!QtéV.SetFocus

    End Sub

    Private Sub Commande15_Click()
    On Error GoTo Err_Commande15_Click
    'If [Form_PPA].Visible = True Then
    'DoCmd.RunMacro "ClosePPA"
    DoCmd.Close
    'Else
    'DoCmd.Close
    'End If

    Exit_Commande15_Click:
    Exit Sub

    Err_Commande15_Click:
    MsgBox Err.Description
    Resume Exit_Commande15_Click

    End Sub
    Private Sub Commande29_Click()
    On Error GoTo Err_Commande29_Click

    DoCmd.GoToRecord , , acPrevious

    Me!Texte26 = Me!CodeVendeur

    Dim dbscurrent As Database
    Dim PVQuery As QueryDef

    Set dbscurrent = CurrentDb

    Set PVQuery = dbscurrent.QueryDefs("PVente")

    PVQuery.sql = "SELECT DétailsVentes.NomCommercial,DétailsVentes.PPA, " & _
    "DétailsVentes.NumVente FROM DétailsVentes WHERE DétailsVentes.NumVente Like '" & Me!NumVente & "'" & _
    "Group by DétailsVentes.NomCommercial,DétailsVentes.PPA,DétailsVentes.NumVente;"

    Me!Liste32.ColumnCount = 9
    Me!Liste32.RowSource = "PVente"
    Me!Liste32.Requery

    Me!Liste8.Locked = True
    Me!Liste8.Enabled = False

    Exit_Commande29_Click:
    Exit Sub

    Err_Commande29_Click:
    MsgBox "Impossible d'atteindre l'enregistrement spécifié", vbInformation, "GestPharma"
    Resume Exit_Commande29_Click

    End Sub
    Private Sub Commande30_Click()
    On Error GoTo Err_Commande30_Click

    DoCmd.GoToRecord , , acNewRec

    Me!CodeVendeur = Me!Texte26
    Me!Liste8.Locked = False
    Me!Liste8.Enabled = True
    Me!Texte45.SetFocus

    Exit_Commande30_Click:
    Exit Sub

    Err_Commande30_Click:
    MsgBox Err.Description
    Resume Exit_Commande30_Click

    End Sub

    Private Sub Liste8_Enter()
    If Me!Texte45 = 0 Or Me!Texte45 = "" Then

    MsgBox "le PPA ne peut pas être une valeur nulle ", vbInformation, "GestPharma"

    Me!Texte45.SetFocus

    Else
    [Form_ReqDétailsVentes Sous-formulaire1]!QtéV.Locked = False
    [Form_ReqDétailsVentes Sous-formulaire1]!Total.Locked = True
    [Form_ReqDétailsVentes Sous-formulaire1]!QtéV.Enabled = True
    [Form_ReqDétailsVentes Sous-formulaire1]!Total.Enabled = True
    End If
    End Sub

    Private Sub Liste8_KeyDown(KeyCode As Integer, Shift As Integer)
    Select Case KeyCode
    Case 13
    [Form_ReqDétailsVentes Sous-formulaire1]!QtéV.Locked = False
    [Form_ReqDétailsVentes Sous-formulaire1]!Total.Locked = True
    [Form_ReqDétailsVentes Sous-formulaire1]!QtéV.Enabled = True
    [Form_ReqDétailsVentes Sous-formulaire1]!Total.Enabled = True
    [Form_ReqDétailsVentes Sous-formulaire1]!QtéV.SetFocus
    End Select
    End Sub

    Private Sub ReqDétailsVentes_Sous_formulaire_Enter()
    If IsNull(Me!Texte26) Then
    MsgBox "Entrez d'abord le code vendeur", vbInformation, "GestPharma"
    Me!Texte26.SetFocus
    End If
    End Sub

    Private Sub Texte45_AfterUpdate()
    Dim dbscurrent As Database
    Dim qrytest As QueryDef

    If IsNull(Me!Texte26) Then

    MsgBox "Vous devez d'abord saisir le code vendeur", vbInformation, "GestPharma"
    Me!Texte26.SetFocus
    Me!Texte26.SetFocus

    Else

    Set dbscurrent = CurrentDb
    Set qrytest = dbscurrent.QueryDefs("ProduitPPA")
    qrytest.sql = "SELECT Produits.NomCommercial, Produits.RéfProduit, Produits.Forme," & _
    "Produits.Dosage, Produits.Conditionnement, Produits.QtéEnStock,Produits.Emplacement,Produits.Etagère," & _
    "FichierPPA.NumLot, FichierPPA.DatePér, FichierPPA.PPA, FichierPPA.QtéStk " & _
    "FROM Produits INNER JOIN FichierPPA ON Produits.RéfProduit = FichierPPA.RéfProduit " & _
    "WHERE FichierPPA.PPA Like '" & Me!Texte45 & "' And FichierPPA.QtéStk >0 ORDER BY Produits.NomCommercial ;"

    Me!Liste8.ColumnCount = 11
    Me!Liste8.RowSource = "ProduitPPA"
    Me!Liste8.Requery
    [Form_ReqDétailsVentes Sous-formulaire1]!RéfProduit = Me!Liste8.Column(1)
    [Form_ReqDétailsVentes Sous-formulaire1]!PPA = Me!Liste8.Column(10)
    [Form_ReqDétailsVentes Sous-formulaire1]!NomCommercial = Me!Liste8.Column(0)
    [Form_ReqDétailsVentes Sous-formulaire1]!NumLot = Me!Liste8.Column(8)

    Me!Liste8.Locked = False
    Me!Liste8.Enabled = True
    Me!Liste8.SetFocus
    Me!Liste8.Selected(0) = True

    If Me!Liste8.Selected(0) = False Then
    MsgBox "Ce PPA n'existe pas," & _
    Chr(13) & "ou son stock est à zéro." & _
    Chr(13) & "Vérifiez votre saisie," & _
    Chr(13) & "ou rétablissez son stock.", vbInformation, "GestPharma"

    Me!Texte45 = ""
    Me!Texte45.SetFocus

    End If

    End If
    End Sub

    Private Sub Texte45_Enter()
    If IsNull(Me!Texte26) Then
    MsgBox "Vous devez d'abord saisir le code vendeur", vbInformation, "GestPharma"
    Me!Texte26.SetFocus
    End If

    End Sub
    Private Sub Commande50_Click()
    On Error GoTo Err_Commande50_Click

    Dim stDocName As String
    Dim stLinkCriteria As String

    stDocName = "ChangerProduit"
    DoCmd.OpenForm stDocName, , , stLinkCriteria

    Exit_Commande50_Click:
    Exit Sub

    Err_Commande50_Click:
    MsgBox Err.Description
    Resume Exit_Commande50_Click

    End Sub
    Private Sub Commande51_Click()
    On Error GoTo Err_Commande51_Click

    DoCmd.GoToRecord , , acNext

    Me!Texte26 = Me!CodeVendeur

    Dim dbscurrent As Database
    Dim PVQuery As QueryDef

    Set dbscurrent = CurrentDb

    Set PVQuery = dbscurrent.QueryDefs("PVente")

    PVQuery.sql = "SELECT DétailsVentes.NomCommercial,DétailsVentes.PPA, " & _
    "DétailsVentes.NumVente FROM DétailsVentes WHERE DétailsVentes.NumVente Like '" & Me!NumVente & "'" & _
    "Group by DétailsVentes.NomCommercial,DétailsVentes.PPA,DétailsVentes.NumVente;"

    Me!Liste32.ColumnCount = 9
    Me!Liste32.RowSource = "PVente"
    Me!Liste32.Requery

    Me!Liste8.Locked = True
    Me!Liste8.Enabled = False

    Exit_Commande51_Click:
    Exit Sub

    Err_Commande51_Click:
    MsgBox "Impossible d'atteindre l'enregistrement spécifié", vbInformation, "GestPharma"
    Resume Exit_Commande51_Click

    End Sub
    0