RowSource

Fermé
F - 27 mars 2010 à 22:01
mprog67 Messages postés 28 Date d'inscription mercredi 24 mars 2010 Statut Membre Dernière intervention 14 mai 2012 - 27 avril 2010 à 19:24
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
A voir également:

1 réponse

mprog67 Messages postés 28 Date d'inscription mercredi 24 mars 2010 Statut Membre Dernière intervention 14 mai 2012 2
27 avril 2010 à 19:24
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