VBA - (Access)

Résolu
EviLzStaR Messages postés 4 Date d'inscription vendredi 3 juin 2005 Statut Membre Dernière intervention 15 juin 2005 - 14 juin 2005 à 13:19
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 - 27 juin 2005 à 09:40
Bonjour, je travaille sur access en vba; et je souhaite afficher dans une zone de texte (et pouvoir m'en servir comme base de calcul) le montant horaire d'un salarié en fonction du salarié choisi dans une liste déroulante (CboNom).
Il existe une table avec le nom du salarié dans un champs et son salaire horaire dans un autre champs. Comment pui-je faire pour que à chaque fois que je choisi un salarié dans la liste déroulante, son montant horaire s incrive dans une zone de texte (salairehorair) se trouvant dans le meme formmulaire ?

Merci de votre aide :).

5 réponses

tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 9
14 juin 2005 à 15:41
Ne pas utiliser de recordset sous Access!

Ils ne sont utiles (à mon sens) que pour accélérer l'affichage, sinon,
il est plus facile de créer les requêtes avec l'assistant et d'y faire
appel par la suite, comme je l'ai expliqué dans la question d'après.
Ce
que tu as fait est inutile, va dans l'assistant, crée une requête,
insert ta table dedans, clique sur tous les champs dont tu as besoin et
dans critère sous le nom du salarié mets la liste déroulante, comme
ceci [forms]!NomduFormulaire.CboNom

Ainsi, lorsque tu appeleras cette requête il sortira le résultat en
fonction du nom de la liste déroulante!!!! EXACTEMENT CE QU'IL TE FAUT!

Pour récupérer le résultat, il suffit de faire un Dlookup, l'aide est
sous access, mais c'est très simple d'utilisation, il existe aussi
DMax, DCount, DLast, DFirst

Pour afficher une liste de résultat (NE PAS FAIRE DE DATAGRID) il
suffit simplement de faire un sous formulaire dont la source est une
requête.
TBBUIM
3
vaneri2004 Messages postés 28 Date d'inscription mardi 20 janvier 2004 Statut Membre Dernière intervention 17 février 2006
14 juin 2005 à 14:20
Tu mets tout simplement en ItemData de la combo l'id de la personne et à l'événement OnChange de la combo tu fais une requête Sql qui va rechercher le salaire et tu le places dans le textfield.
0
EviLzStaR Messages postés 4 Date d'inscription vendredi 3 juin 2005 Statut Membre Dernière intervention 15 juin 2005
14 juin 2005 à 14:35
euh tu pourrais etre un peu plus clair ? (dsl je suis debutant ).
Pour le moment j'ai mis :

Private Sub Actualiser_Click()
Dim rs As Recordset
Dim strSQL As String
strSQL "select sal_horaire from [" & cNomTableOuvriersEvol & "] where nom_ouvrier" & Chr(34) & [CboNom] & Chr(34) & ""

Set rs = CurrentDb.OpenRecordset(strSQL, dbOpenDynaset)

[SalaireHorair] = strSQL ' (je pense que c'est ici que ca va pas)

End Sub

Voilà , ...si tu peux plus m aider
0
EviLzStaR Messages postés 4 Date d'inscription vendredi 3 juin 2005 Statut Membre Dernière intervention 15 juin 2005
15 juin 2005 à 10:03
Merci.
Pour le Dlookup il me met un message d'erreur.
j'ai mis :
Private Sub SalaireHoraire_BeforeUpdate(Cancel As Integer)
DLookUp(sal_horaire,"Ouvriers - évolutions Requête")
End Sub '(avec nomdusalarié et sal_horaire dans la requete Ouvriers - évolutions Requête).
Il me met comme message d'erreur "attendu : ="
Voilà. Merci de ton aide (l'aide de vba n'est pas installée sur mon poste et je suis en stage en entreprise sans possibilité de l installer).
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 9
27 juin 2005 à 09:40
Sous Access ou vb

Avec n'importe quel fonction, si tu l'appeles de cette façon

Variable = Fonction(param)

il faut écrire la fonction avec les parenthèses, sinon il attends le signe égal

Si tu écris tout simplement la fonction sans quelle affecte une valeur, il faut écrire

Fonction param

donc sans parenthèses...

Tu peux le vérifier avec le msgbox

MAIS DANS TON CAS, C'EST FAUX!!!!!!!!!!!!!!!

Le dlookup renvoie la valeur que tu veux récupérer dans ta requête.

Si tu ne l'affecte pas à une variable, ça ne sert à rien!!!!!!!!!!!!!!!!!!!!

Tu dois mettre SalaireHoraire = dlookup(...)
TBBUIM
0
Rejoignez-nous