|
|
|
|
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à! |
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...
|
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. |
bonjour,
oui ca serai plus simple mais alors a ce moment la je fais comment??? |
|
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... |
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. |
Résultats pour pb code vb pour ma bd access
Résultats pour pb code vb pour ma bd access