Pb code vba

mymym Messages postés 30 Date d'inscription   Statut Membre Dernière intervention   -  
 x140 -
bonjour a tous,
voila je suis censée ecrire un code vba qui doit me permettre qd je rentre les coordonnée d'un client (nom, prenom, code postal) de me renvoyer automatiquement son numero de client s'il existe dans ma base de donnée ou sinon lui cree un nouveau numero. (base de donnée access 2000 formulaire de saisie access)
voici mon code mais ya un bug ca ne marche pas et comme je suis nulle en vb je capte pas mon erreur

Private Sub num_client_Click()

Dim i As Integer
Dim rst As Recordset
Dim Intx As Integer

Intx = DCount("*", "CLIENT")

If Intx > 0 Then

Set rst = rst.OpenRecordset("SELECT num_client FROM CLIENT WHERE nom = &zonenom.value& And prenom = &zoneprenom.Value&And code_postal = zonecode_postal..Value;")

Else
i = 1 + Intx
rst.Execute "INSERT INTO CLIENT ([num_client])VALUES('i');"

End If
End Sub

ya pas quelqun qui saurai ou ets le proleme????
Merci de votre aide
A voir également:

27 réponses

mymym Messages postés 30 Date d'inscription   Statut Membre Dernière intervention  
 
coucou, ya petit probleme dans ton code:

Set CLIENT = CurrentDb.OpenRecordset("CLIENT", dbopentable)
Set PEC = CurrentDb.OpenRecordset("PEC", dbopentable)
Set DESCRIPTIF = CurrentDb.OpenRecordset("DESCRIPTIF", dbopentable)

ca me dit argument non valide

et pour mon
Set rst = CurrentDb.OpenRecordset("SELECT num_client FROM CLIENT WHERE CLIENT!nom = nom And CLIENT!prenom = prenom And CLIENT!code_postal = code_postal")
ca me dit erreur de type 13, non compatible

pq? mais pq????
0
WhiteFang Messages postés 2063 Date d'inscription   Statut Membre Dernière intervention   204
 
;-)

C'est pas mon code, ça... ;-)

;-)
0
mymym Messages postés 30 Date d'inscription   Statut Membre Dernière intervention  
 
si si toi tu m a donne

Set LaTable = CurrentDb.OpenRecordset("NomDeTaTable", dbopentable)

mais j en a besoin pour troi table

Set CLIENT = CurrentDb.OpenRecordset("CLIENT", dbopentable)
Set PEC = CurrentDb.OpenRecordset("PEC", dbopentable)
Set DESCRIPTIF = CurrentDb.OpenRecordset("DESCRIPTIF", dbopentable)

????
0
WhiteFang Messages postés 2063 Date d'inscription   Statut Membre Dernière intervention   204
 
;-)


"si si toi tu m a donne

Set LaTable = CurrentDb.OpenRecordset("NomDeTaTable", dbopentable)"


=> Oui, ça, c'est mon code ;-)

"mais j en a besoin pour troi table

Set CLIENT = CurrentDb.OpenRecordset("CLIENT", dbopentable)
Set PEC = CurrentDb.OpenRecordset("PEC", dbopentable)
Set DESCRIPTIF = CurrentDb.OpenRecordset("DESCRIPTIF", dbopentable)"


Donc, ça, c'est TON code ;-) Ne me dis pas qu'il y a un problème avec MON code quand toi tu écris de nouvelles lignes ;-)

Moi, avant la ligne Set xxx, j'avais mis des Dim, que je ne vois pas ici... Si mon code fonctionne, poses toi la question pourquoi tes lignes à toi ne fonctionnent pas, ce qu'il y a de différent...

;-)
0
mymym Messages postés 30 Date d'inscription   Statut Membre Dernière intervention  
 
je suis nulle mais ya des limites, je les ai rajouté les dim....
0
WhiteFang Messages postés 2063 Date d'inscription   Statut Membre Dernière intervention   204
 
;-)

Bin, si tu as mis les Dim as RecordSet, que les noms des tables sont bons, et qu'il n'y as pas d'erreur de syntaxe, comment tu expliques que mon petit bout de code fonctionne et pas le tien ? Là, je sèche... Les lignes sont identiques, le foncionnement idem... Et VBA ne choisit pas arbitrairement quelles lignes vont être bonnes...

;-)
0

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

Posez votre question
mymym Messages postés 30 Date d'inscription   Statut Membre Dernière intervention  
 
non en fait je me suis gourée ton code ne marchait pas ca enregidtrait dans la table car j avais rajouté moi meme le champ qui manquai et du coup comme le formulaire etait rempli ca enregistrait dans les table
la je t avoue que je seche aussi
0
WhiteFang Messages postés 2063 Date d'inscription   Statut Membre Dernière intervention   204
 
;-)

Si mon code ne fonctionne pas, c'est que cela vient d'ailleurs... As-tu bien vérifié si tu as les bibliothèques en ligne ?

Outils/Références (dans l'éditeur VBA)...

Tu dois avoir les :

Visual Basic For Applications
Microsoft Access 10 Object Libray
OLE automation

Minimum....

Ensuite, si tu a les ADO / DAO, c'est bien aussi...

;-)

;-)
0
mymym Messages postés 30 Date d'inscription   Statut Membre Dernière intervention  
 
oki je les ai ces bibliotheque mais ca ne marche pas qd meme
0
x140
 
Bonjour ! as-tu résolu ton probleme d'argument non valide" ?

car j'ai le même avec vba

du jour au lendemain, mon programme n'a plus voulu passer sur mon rs.update. ou bien il y passe mais n'enregistre que quelques lignes dans ma table avant de me mettre ce message...
au secours !!

merci d'avance !!!
0