RowSource
F
-
mprog67 Messages postés 28 Date d'inscription Statut Membre Dernière intervention -
mprog67 Messages postés 28 Date d'inscription Statut Membre Dernière intervention -
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
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
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
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