Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1412 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  modif d'un attribut d'une table

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

modif d'un attribut d'une table

n°163478
fragile
Posté le 21-06-2002 à 15:43:38  profilanswer
 

Bonjour.
Voilà mon problème:
Je cherche à savoir comment faire pour incrémenter la valeur d'un attribut d'un enregistrement en vba
Pourriez vous svp me décrire les déclarations car g bien une idée avec l'action recorset mais je rame!!!
 
merci d'avance

mood
Publicité
Posté le 21-06-2002 à 15:43:38  profilanswer
 

n°163484
Bolino
Posté le 21-06-2002 à 15:47:54  profilanswer
 

Salut !
je ne sais pas si j'ai bien compris, mais est-ce que tu veux pouvoir incrémenter une valeur (un champ de ta table) à chaque fois que tu insères un nouvel enregistrement dans cette table ??
Cette valeur est bien de type numérique ?

n°163487
fragile
Posté le 21-06-2002 à 15:51:24  profilanswer
 

en fait g une table vocabulaire(Num voc, Nom..., Compteur)
Et dans un formulaire, g une liste box dans laquelle sont chargés tous les noms de ma table vocabulaire
 
Mon problème est que je veut incrémenter Mon compteur à chaque fois que je clique sur un Nom de la liste
 
PS:Chaque nom à un compteur
 
Merci. :eek2:  :hello:  :D

n°163492
Bolino
Posté le 21-06-2002 à 15:56:25  profilanswer
 

Hummm..
 
ok, recapitulons
tu as une table VOCABULAIRE dans laquelle chaque occurence (chaque ligne) correspond entre autres à un NOM et aussi à un COMPTEUR  (donc chaque nom à un compteur qui lui est propre)..
 
tu voudrais donc, à chaque fois que dans ta listbox tu cliques sur un NOM, que le COMPTEUR qui correspond à ce NOM soit incrémenté ?

n°163497
fragile
Posté le 21-06-2002 à 15:58:56  profilanswer
 

QUINE!!!T'as tout compris, et ceci bien évidemment en vba.... :eek2:

n°163508
Bolino
Posté le 21-06-2002 à 16:07:04  profilanswer
 

Hihi,
bah créé une fonction avec ça dedans , t'as qu'a recopier en mettant les bons noms de champs et d'objets:
 
-----------------------
Private Sub la_fonction()
Dim vl_req As String
Dim vl_rset As Recordset
 
vl_req = "Select COMPTEUR from VOCABULAIRE where NOM='" & LISTBOX1 & "'"
Set vl_rset = CurrentDb.OpenRecordset(vl_req, dbOpenSnapshot)
 
vl_req = "Insert into VOCABULAIRE(compteur) values(" & (vl_rset!COMPTEUR) + 1 & " ) where NOM='" & LISTBOX1 & "'"
DoCmd.RunSQL vl_req
 
End Sub
-------------
 
ensuite dans l'évènement CLICK de ta LISTBOX tua appelles cette fonction :
Call la_fonction
 
 
dis moi si ça marche :D

n°163514
fragile
Posté le 21-06-2002 à 16:15:36  profilanswer
 

Quand je compile, g un piti mes d'erreur:
 
"Trop peu de paramètres, 1 attendu", et ça concerne la ligne "Set vl_rset = CurrentDb.OpenRecordset(vl_req, dbOpenSnapshot)"
 
Tu vois le pb?moi g du mal... :benetton:

n°163518
Bolino
Posté le 21-06-2002 à 16:19:24  profilanswer
 

fragile a écrit a écrit :

Quand je compile, g un piti mes d'erreur:
 
"Trop peu de paramètres, 1 attendu", et ça concerne la ligne "Set vl_rset = CurrentDb.OpenRecordset(vl_req, dbOpenSnapshot)"




 
ca vient de la requete.
 
met un point d'arret sur la ligne "Set vl_rset... " et regarde la valeur de VL_REQ dans le débogeur (Ctrl + G, puis tu tapes ça: ?vl_req)

n°163527
fragile
Posté le 21-06-2002 à 16:27:21  profilanswer
 

Voilà ce que ça me donne:
 
Break :   : vl_req : <Hors du contexte> : Empty : Form_voc/alpha.lbttvoc_Click
 
Alors là s'en m'en dit pas bcp plus, à part pour la valeur.
o fait, Form_Voc/Alpha, c mon formulaire ou g la liste... :bounce:

n°163531
Bolino
Posté le 21-06-2002 à 16:31:31  profilanswer
 

C'est bien une listbox (liste deroulante) ou c'est une liste tout court ?

mood
Publicité
Posté le 21-06-2002 à 16:31:31  profilanswer
 

n°163534
fragile
Posté le 21-06-2002 à 16:33:43  profilanswer
 

c'est une zone de liste dans laquelle g numvoc en clé cachée, et Nom visible pour l'utilisateur...

n°163547
Bolino
Posté le 21-06-2002 à 16:45:07  profilanswer
 

ok je croyais que c'etait une liste deroulante :/
 
il faut remplacer LISTBOX1 par:
 
Liste1.Column(1, Liste1.ListIndex) si le NOM est le deuxième élément de la ligne selectionnée
si c'est le premier ça sera ..Column(0, ...

n°163555
fragile
Posté le 21-06-2002 à 16:54:30  profilanswer
 

je te renvoi mon code, car j'effectue ma recherche sur le numvoc:
 
Dim vl_req As String
Dim vl_rset As Recordset
 
vl_req = "Select COMPTEUR from VOCABULAIRE where NumVoc=lbttvoc.Column(0, Lbttvoc.ListIndex) "
Set vl_rset = CurrentDb.OpenRecordset(vl_req, dbOpenSnapshot)
vl_req = "Insert into VOCABULAIRE(compteur) values(" & (vl_rset!COMPTEUR) + 1 & " ) where NumVoc=lbttvoc.Column(0,lbttvoc.ListIndex) "
DoCmd.RunSQL vl_req
 
 
et une autre erreur s'affiche...
 
"Fonction 'lbttvoc.Column'Non définie dans l'expression..."
l'erreur point encore vers le "set....
 
"Break :   : vl_req : <Type incompatible> : Empty : Form_voc/alpha.lbttvoc_Click" :(

n°163559
Bolino
Posté le 21-06-2002 à 16:59:07  profilanswer
 

là ça marchera mieux ;)
si numvoc est de type numérique:
vl_req = "Select COMPTEUR from VOCABULAIRE where NumVoc=" & lbttvoc.Column(0, Lbttvoc.ListIndex)
 
si c'est du String:
 
vl_req = "Select COMPTEUR from VOCABULAIRE where NumVoc='" & lbttvoc.Column(0, Lbttvoc.ListIndex)& "'"

n°163570
fragile
Posté le 21-06-2002 à 17:06:30  profilanswer
 

Je suis vraiment navré aussi bien pour moi que pour toi...mais y'a encore une fucking erreur...
 
Erreur de syntaxe dans l'instruction insert into et g bo regarder, je vois pas ou ça pe être... :ouch:

n°163573
Bolino
Posté le 21-06-2002 à 17:10:00  profilanswer
 

patience .. ;)
 
refait la même chose que tout à l'heure: point d'arrêt, debogueur, tu tapes ?vl_req, et dans ta prochaine reponse met sa valeur, ça doit pas être grand chose

n°163578
fragile
Posté le 21-06-2002 à 17:16:48  profilanswer
 

apparament, la il ne peut pas exécuter l'insert into car la valeur est vide:
 
il me met ça:Insert into VOCABULAIRE(compteur) values( ) where NumVoc=8 :)

n°163582
Bolino
Posté le 21-06-2002 à 17:21:55  profilanswer
 

fragile a écrit a écrit :

apparament, la il ne peut pas exécuter l'insert into car la valeur est vide:




 
regarde s'il y a qque chose dans vl_rset!COMPTEUR..
au pire passe par une variable ça sera plus lisible.. ton champ COMPTEUR est bien rempli au fait ?

n°163589
Bolino
Posté le 21-06-2002 à 17:27:25  profilanswer
 

AHHH mais que je suis con faut faire un UPDATE pas un insert ...
 
rahhh tu peux me fouetter ouais je le mérite.. :fou:
 heureusement c le week end


Message édité par Bolino le 21-06-2002 à 17:27:46
n°163593
fragile
Posté le 21-06-2002 à 17:32:19  profilanswer
 

manque un point virgule à la fin de la requête...lol
et le pire ce con ve rien savoir même en rajoutant &";"àla fin de la requête....???on s'approche!

n°163596
fragile
Posté le 21-06-2002 à 17:38:55  profilanswer
 

voila maintenant la gueule de la requête et il aime pas la syntaxe...
 
Update VOCABULAIRE set compteur=(" & (vl_rset!COMPTEUR) + 1 & " ) where NumVoc=" & lbttvoc.Column(0, lbttvoc.ListIndex)&";"

n°163601
fragile
Posté le 21-06-2002 à 17:46:57  profilanswer
 

Tu sais pas quoi...Te fait pas chier, c l'heure de la débauche et je trouve que t'en a déjà fait beaucoup ...
je te remercie bien, et t'aurais même payé un coup si t'habitais près de chez moi....
 
Allé bon WE et surtout bonne fête de la musique
Merci de ta patience. :D  :jap:

n°163610
Bolino
Posté le 21-06-2002 à 17:58:35  profilanswer
 

fragile a écrit a écrit :

 
je te remercie bien, et t'aurais même payé un coup si t'habitais près de chez moi....




envoie moi un chèque :D

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  modif d'un attribut d'une table

 

Sujets relatifs
[SGBD/VB] PB : chiffres au début du nom de la tableExport de table sous Oracle ? Comment faire ? Le plus performant ?
Bouton ajouter (enregistrement de valeur dans une table)[mysql]a koi sert l'attribut binary des chps mysql ?
Table ascii incohérente avec ce que j'édite[HTML 4.01 STRICT] Problème avec balise TABLE
est il possible de remplacer un fichier .htpasswd par une table MySQLDouble apparition dans une table access =(
[Delphi] comment faire un lien entre 2 table ?[MySQL] Comment recupérer les noms de champ d'une table ?
Plus de sujets relatifs à : modif d'un attribut d'une table


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR