Pb code vb pour ma bd access

Fermé
mymym Messages postés 30 Date d'inscription mercredi 25 mai 2005 Statut Membre Dernière intervention 20 juin 2005 - 30 mai 2005 à 13:43
mbay_big Messages postés 6 Date d'inscription lundi 29 octobre 2007 Statut Membre Dernière intervention 9 juin 2008 - 2 juin 2008 à 18:04
re coucou,
voila j ai tjs un probleme qui consiste en:
je dois afficher un numero de client ds un formulaire de ma base de donnee access et pour ce faire le numero de client dois soit si le client existe m afficher son num(en le reconnaissant par ses coordonnee nom/prenom/code postal) soit lui cree un numero.
pour ce faire, on m a dit de faire
1) de compter le nombre de client de ma base par une fonction Dcount
2) si le nombre est sup a 0 alor faire un Openrecordset
3) sinon on le cree avec une fonction Docmd.RunSQL("INSERET....)

le probleme etant que le vb j y arrive pas du tout si qq a une solution, merci d avance
A voir également:

6 réponses

zenon Messages postés 726 Date d'inscription jeudi 30 septembre 2004 Statut Membre Dernière intervention 13 février 2010 180
2 juin 2005 à 22:37
Ca dépend comment tu souhaites que ça fonctionne...

Tu peux appeler un formulaire "client", soit avant soit après avoir listé les produits à facturer.

Il est peu probable que tu connaisse les N°clients même si c'est la seule information que tu souhaites encoder dans ta table (la clé externe).

Tu peux créer un formulaire indépendant comportant par exemple dans l'en-tête un champ texte indépendant et une liste modifiable basée sur une requête du type: SELECT [T_Clients].[N°Client], [T_Clients].[NomClient],... FROM T_Clients WHERE ((([T_Clients].[NomClient]) Like [LeNomDeTonChampIndépendant] & "*")) ORDER BY [T_Clients].[NomClient];

(Access peut faire ça avec les assitants)

Ensuite, dans la propriété "Sur clic" il suffit de définir la valeur de ton champ N°Client dans l'autre formulaire (je ne peux pas proposer le code faute de connaître le nom des formulaires...) puis de fermer le formulaire.

Ensuite, tu ajoutes un bouton de commande "nouveau client" qui te permet d'ouvrir le formulaire "clients" en mode ajout si le client recherché n'existe pas.

Si tu ne vois pas, envoie-moi juste les tables nécessaires (sans les données) et je te renverrai un exemple...
2
zenon Messages postés 726 Date d'inscription jeudi 30 septembre 2004 Statut Membre Dernière intervention 13 février 2010 180
30 mai 2005 à 23:14
Tu pourrais peut-être expliquer un peu plus clairement comment tu souhaites que ça fonctionne...

Tu pourrais, par exemple utiliser une liste déroulante basée sur une requête utisisant comme critère de tri les premières lettres du nom ou du prénom que tu taperais dans un champ indépendant.
Si la liste ne contient pas de données, tu pourrais appeler un formulaire "ajout de client" par un bouton de commande, par exemple...

pratiquement pas de connaissances en VB pour faire celà!
0
mymym Messages postés 30 Date d'inscription mercredi 25 mai 2005 Statut Membre Dernière intervention 20 juin 2005
31 mai 2005 à 11:46
alors il me faut qd je saisis dans mon formulaire le nom le prenom et le code postal du client que cacherche dans ma bd si le client existe et si c le cas ca me renvoie son numero de client sinon ca lui cree automatiquement un numero
ce formulaire est de type facture, c ce que j imprime a la fin et que je remet au client.*
et ca ne ce fait qu en vb, et c la le pb je n y connai rien en vb...
0
Salut,
pourquoi vous vous faite tant de soussis puisque acces contien des procédure prédéfinie pour chercher en entrant un boutton sur votre formulaire-->déplacement entre enreg-->rechercher un enreg.
Bonne chance.
Merci
0
gentelmanmd Messages postés 24 Date d'inscription mardi 17 juillet 2007 Statut Membre Dernière intervention 24 février 2010 8 > mohammed
20 juil. 2007 à 04:37
slt mouhamed je veu le code des boutton ( enregistrer, suprimer, suivant , precedent) ki permet de modifie les enregistrements de table a partir de vb.net 2005
j ai deja fait la relation entre les textbox et les champs de lla base de donnée
merci
lah yr7am l walidin
0
zenon Messages postés 726 Date d'inscription jeudi 30 septembre 2004 Statut Membre Dernière intervention 13 février 2010 180
1 juin 2005 à 21:36
En pratique, tu ne penses-pas que ce serait plus simple de n'effectuer la recherche que sur un seul critère (le nom du client)?

La recherche pourrait renvoyer dans une liste déroulante ou un sous formulaire tous les noms répondant au critère et en le sélectionnant, tu remplirais automatiquement tous les champs.

Il suffirait alors d'ajouter un bouton de commande "nouveau client" qui te permettrait d'ajouter un enregistrement.
0

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

Posez votre question
mymym Messages postés 30 Date d'inscription mercredi 25 mai 2005 Statut Membre Dernière intervention 20 juin 2005
2 juin 2005 à 11:31
bonjour,
oui ca serai plus simple mais alors a ce moment la je fais comment???
0
mbay_big Messages postés 6 Date d'inscription lundi 29 octobre 2007 Statut Membre Dernière intervention 9 juin 2008
2 juin 2008 à 18:04
Bonjour.

J'ai des soucis dans mon travail et je souhaiterais que vous m'aidiez. Alors voilà :
Je dois développer une application sous access qui permet de gérer les congés du entreprise. parmi les table que j'ai créé, il y a une Table Enfants qui contient les champs suivants: N°, Matricule, Noms, Prénoms, Sexe et DateDeNaissance. J'ai une autre table Agent: Matricule, NomPrénom, Sexe, Qualification, Poste, Entité et DateEmbauche.

Lorsqu'un agent est de sexe féminin, on parcour la DateDeNaissance de ses enfants et chaque fois qu'une date sera inférieure à 16 ans, un compteur doit s'incrémenter et renvoyer le total une fois toutes les dates parcourues. Je travaille en VBA sous Access et, je vous avoue que je suis débutant dans ce langage.

Voici ce que j'ai fais mais ça ne répond pas à mes attentes :

Private Sub test_Click()
On Error GoTo Err_test_Click

a = DCount("DateDeNaissance", "ENFANTS", Matricule.ControlSource) //Je souhaite ici avoir le nombre d'enfants de l'agent en cours
b = 0
For i = 1 To a
If (Year(Date) - Year(DateDeNaissance)) <= 16 Then
b = b + 1
End If
Next i

MsgBox "Nombre d'enfant " & a & " bonus " & b

Exit_test_Click:
Exit Sub

Err_test_Click:
If (Err = ERR_OBJNOTEXIST) Or (Err = ERR_OBJNOTSET) Or (Err = ERR_CANTMOVE) Then
Resume Next
End If
MsgBox Err.Description
Resume Exit_test_Click

End Sub



Merci de votre bonne compréhension et de votre aide d'avance.
0