[Catégorie modifiée .Net - VBA] code VBA incorrect

Résolu
helpredou Messages postés 11 Date d'inscription mardi 22 juin 2010 Statut Membre Dernière intervention 20 juillet 2010 - 20 juil. 2010 à 10:51
helpredou Messages postés 11 Date d'inscription mardi 22 juin 2010 Statut Membre Dernière intervention 20 juillet 2010 - 20 juil. 2010 à 12:56
Bonjour tout le monde,

est ce que quelqu'un s'il vous plait pourrait me dire ce qui ne vas pas dans ce code vba !?

je débute en vba et j ai besoin d un petit code qui s execute suite a un click sur un champs dun tableau.

et dans ce code la je dois recuperer la valeur du "Port" ( frais de port d un fournisseur ) dans la table "Founisseur/Port" afin de calculer le coût d'achat.

ici CT_NUM est le nom du fournisseur.

je pense que l erreur vient de la requete , il reconnais pas Me.CT_NUM !! dois je faire une fonction pour recuperer cet valeur ?


Private Sub CT_NUM_Click()

Dim res As Recordset
Set db = CurrentDb()
ChnSQL ("SELECT Port FROM Fournisseur/port WHERE Fournisseur=" & Me.CT_NUM)
Set res = db.OpenRecordset(ChnSQL)
sPort = res.Fields("Port")

Me.Parent![Requête2]![Fournisseur Principal] = Me.CT_NUM
Me.Parent![Requête2]![Prix achat tmp] = Me.Expr1
Me.Parent![Requête2]![Coût d'achat] = Me.Expr1 * sPort
Me.Parent.Refresh
End Sub
/CODE

Merci beaucoup pour votre aide, et vos propositions

9 réponses

helpredou Messages postés 11 Date d'inscription mardi 22 juin 2010 Statut Membre Dernière intervention 20 juillet 2010
20 juil. 2010 à 12:56
c bon ca marche . j ai essayé d enlever ME.CT_NUM dans DLookup et le remplacer par un nom de founisseur. la ca n a pas marché mais il m affiche que la le beug est au niveau du nom de la fonction. il a suffit d enlever le mot "private " et la tout marche comme il faut .

donc le problem c etait le mot clé private qui peut etre, ne permettait pas a la fonction DLookup d acceder a la table.


meri beaucoup pour ton aide . et bonne journee :)
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
20 juil. 2010 à 11:00
pas top le nom de ta table...

balise le :

"SELECT Port FROM [Fournisseur/port] WHERE Fournisseur="


Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
helpredou Messages postés 11 Date d'inscription mardi 22 juin 2010 Statut Membre Dernière intervention 20 juillet 2010
20 juil. 2010 à 11:07
je viens de le baliser mais ca marche toujours pas
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
20 juil. 2010 à 11:11
en pas a pas (F9 pour placer un point d'arret)

constates tu que ta requete ChnSQL est correctement constituée (avec la valeur de CT_NUM ?


Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0

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

Posez votre question
helpredou Messages postés 11 Date d'inscription mardi 22 juin 2010 Statut Membre Dernière intervention 20 juillet 2010
20 juil. 2010 à 11:23
je te remercie avant tout pour ton aide .
justement c est au niveau de la requête que ca pose probleme , j ai l impression qu il reconnait pas CT_NUM quand j'écris la requete ainsi :

ChnSQL ("SELECT Port FROM [Fournisseur/port] WHERE Fournisseur=" & Me.CT_NUM)

y a il une autre maniere pour formuler la requête ?
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
20 juil. 2010 à 12:05
qu'est-ce que CT_NUM ?

il semble que ce soit un controle, de quel type est-il ?

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
helpredou Messages postés 11 Date d'inscription mardi 22 juin 2010 Statut Membre Dernière intervention 20 juillet 2010
20 juil. 2010 à 12:19
CT_NUM de type texte,( le nom du Founisseur) est le champs Fourniseur dans mon formulaire . le formulaire est basé sur une requête . je m explique :

j ai mon formulaire principale ( formulaire Prix de vente) qui se compose de plusieurs sous formulaire . dans le sous formulaire "PRIx ACHAT" il ya 2 champs : CT_NUM , et PRix ACHAT .


ce que je souhaite faire c est en cliquant sur le fournisseur (CT_NUM), ca va me premettre de choisir mon frounisseur principal, et attribuer ses valeur au fomulaire ( REquête1) et aninsi prendre en compte que les frais de Port de mon fournisseur principale.

je ne sais pas si je suis clair !!
merci
0
helpredou Messages postés 11 Date d'inscription mardi 22 juin 2010 Statut Membre Dernière intervention 20 juillet 2010
20 juil. 2010 à 12:41
j ai essayé avec DLookup mais ca marche pas non plus !! est ce vous voyez pourquoi ?
Private Sub CT_NUM_Click()

Dim sPort As Double

sPort = DLookup("[Port]", "Founisseur/Port", "[Fournisseur]='" & Me.CT_NUM & "'")

Me.Parent![Requête2]![Fournisseur Principal] = Me.CT_NUM
Me.Parent![Requête2]![Prix achat tmp] = Me.Expr1
Me.Parent![Requête2]![Coût d'achat] = Me.Expr1 * (1 + sPort / 100)
Me.Parent.Refresh
End Sub
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
20 juil. 2010 à 12:50
étrange de mettre une action sur le Click dans ta zone de texte...

ne cherches pas du coté de ta requete, de DLookup ou autre methode... tant que tu ne récupères pas correctement la valeur de ta Zone de saisie.


Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
Rejoignez-nous