Accueil | Aide en ligne | Annuaire | Sécurité | Articles | Astuces | Téléchargements | Association 


Mon compte SOS Ordi

Vous n'êtes pas identifié
[-> S'inscrire à SOS Ordi
[-> Mot de passe perdu ?
S'identifier


Rechercher sur SOS Ordi

Ok

Dans





 Catégories de l'aide en ligne

 Aide en ligne


 Saviez vous que ...

Si vous résolvez une question, vous gagnez des points


 Partenaires

  SOS Ordi > Aide en ligne > Logiciel > Développement > Base de données > Access > inserer un code source dans access

inserer un code source dans access

18 réponse(s)
dont 3 ont aidé chahnou à résoudre son problème

  Problème résolu posté le 03/05/2008 à 11:13
Profil Configuration PC
chahnou


poste-de-travail_la-fouine-du-net_divers
État : Absent
Bonjour la compagnie,
Voila je me trouve devant un probleme qui paraitrait facile mais comme je ne me suis jamais pencher sur la question , il est devenu pour moi tres difficile.
je voudrais savoir comment pourrais je inserer un code source dans ma base de donnes , la procedure s'il vous plait
Dans le cas present je veut insere le code souce qui convertis les nombres en lettres dans ma facture .
voici le code source
windows xp , office 2000
Option Compare Database

Dim mot$(25), Résultat$, N$
Dim Virgule, B, K$, nombre$, longueur
Dim cdu$, C$, D$, U$, Et, Tiret


Sub Ajoute(MotSimple$)
'--- ajoute un nouveau terme traduit à la chaine résultat
If Résultat$ <> "" Then
'--- vérifie s'il est nécessaire de coller le nouveau terme au
'--- précédent dans le cas des "S" à rajouter, ou des tirets
If Right$(Résultat$, 1) = "-" Or _
MotSimple$ = "s" Or MotSimple$ = "-" Then
Résultat$ = Résultat$ + MotSimple$
'--- sinon, ajoute le terme après un espace
Else
Résultat$ = Résultat$ + " " + MotSimple$
End If
Else
Résultat$ = MotSimple$
End If
End Sub


Function Equivalent$(Valeur)
'--- recherche le mot équivalent à une valeur numérique
Select Case Valeur
Case Is < 21
Equivalent$ = mot$(Valeur)
Case Else
Equivalent$ = mot$(18 + (Valeur / 10))
End Select
End Function


Function Nb2Mot$(Valeur$)
Dim a$
'--- initialisation du tableau contenant les mots interprétés
mot$(1) = "un"
mot$(2) = "deux"
mot$(3) = "trois"
mot$(4) = "quatre"
mot$(5) = "cinq"
mot$(6) = "six"
mot$(7) = "sept"
mot$(8) = "huit"
mot$(9) = "neuf"
mot$(10) = "dix"
mot$(11) = "onze"
mot$(12) = "douze"
mot$(13) = "treize"
mot$(14) = "quatorze"
mot$(15) = "quinze"
mot$(16) = "seize"
mot$(20) = "vingt"
mot$(21) = "trente"
mot$(22) = "quarante"
mot$(23) = "cinquante"
mot$(24) = "soixante"
'--- récupération de paramètre passé
a$ = Valeur$ + " "
'--- initialisation des variables de travail
N$ = ""
Virgule = 0
Résultat$ = ""
'--- pour toute la longueur de celui-ci
For B = 1 To Len(a$)
'--- on extrait chacun de ses caractères
K$ = Mid$(a$, B, 1)
Select Case K$
'--- gère les montants négatifs
Case "-"
Ajoute "moins"
'--- si ceux-ci sont numériques, on batit la chaine n$
Case "0" To "9"
N$ = N$ + K$
'--- sinon, on teste si on est arrivé à une virgule
Case Else
If Virgule = 1 Then
'--- les centimes sont comptés sur 2 digits, réajustés de
'--- manière inverse aux euros, puisqu'on lit les unités
'--- et dizaines de manière inversée (0,2? = 20c et
'--- 0,02?=2c)
N$ = Right$("000" + Left$(N$ + "000", 2), 2)
If Val(N$) = 0 Then N$ = ""
End If
'--- on traduit le nombre stocké dans n$
TraduireEntier N$
'--- puis on détermine son unité en fonction de la présence
'--- ou non d'une virgule
If Virgule = 0 And Val(N$) > 0 Then
Ajoute "euro"
'--- et on accorde l'unité avec le nombre
If Val(N$) > 1 Then Ajoute "s"
ElseIf Virgule = 1 And Val(N$) > 0 Then
Ajoute "centime"
'--- en ajoutant un "s" si nécessaire
If Val(N$) > 1 Then Ajoute "s"
End If
N$ = ""
Select Case K$
Case Chr$(13)
B = B + 1
Case Is < " "
Case ",", "."
Virgule = 1
'--- si une valeur en euros est exprimée, et que le
'--- nombre de centimes est suffisant pour être traité,
'--- on lie les 2 par le mot "et"
If Val(a$) <> 0 And _
Val("0." + Mid$(a$, B + 1)) >= 0.01 Then Ajoute "et"
Case Else
End Select
End Select
Next
Nb2Mot$ = Résultat$

End Function

Sub TraduireEntier(NombreATraduire$)
'--- convertit un nombre entier contenu dans une chaine de caractères
'--- en son équivalent ordinal
nombre$ = NombreATraduire$
If nombre$ <> "" Then
'--- si le nombre est 0, on ne perd pas de temps
If Val(nombre$) = 0 Then
Ajoute "zéro"
Else
'--- sinon, on convertit celui-ci en une chaine de caractères
'--- de longueur multiple de 3, afin de pouvoir la lire par blocs
'--- de 3 caractères
nombre$ = Right$("000", -((Len(nombre$) Mod 3) <> 0) * (3 - (Len(nombre$) Mod 3))) _
+ nombre$
For longueur = Len(nombre$) To 3 Step -3
cdu$ = Left$(nombre$, 3)
nombre$ = Right$(nombre$, longueur - 3)
'--- on extrait ainsi des ensembles de 3 chiffres, de la
'--- gauche vers la droite
If cdu$ <> "000" Then
'--- dont on tire une valeur de centaines, dizaines et
'--- unités
C$ = Left$(cdu$, 1)
D$ = Mid$(cdu$, 2, 1)
U$ = Right$(cdu$, 1)
'--- on convertit les unités non muettes pour les
'--- centaines
If C$ >= "2" Then Ajoute Equivalent$(Val(C$))
'--- et on traite les 1 muets
If C$ >= "1" Then
Ajoute "cent"
'--- en appliquant les règles d'accords pour les
'--- centaines
If Val(nombre$) = 0 And D$ + U$ = "00" _
And Len(Résultat$) > 4 Then Ajoute "s"
End If
'--- on analyse si le mot ET est nécessaire (21, 31,
'--- 41 ...)
Et = (D$ >= "2") And (U$ = "1")
'--- ainsi que les tirets pour certains couples
'--- dizaines-unités
Tiret = ((D$ >= "2") And (U$ > "1") _
Or (D$ >= "1" And U$ >= "7")) And Not Et
'--- traitement des valeurs 80-99
If D$ >= "8" Then
Ajoute "quatre-vingt"
Et = 0
'--- retenue nécessaire pour 90 à 99
If D$ = "8" Then D$ = "0" _
Else D$ = "1": Tiret = True
'--- et traitement des unités
If U$ > "0" Then Tiret = True Else Ajoute "s"
'--- sinon on traite les valeurs 70 à 79
ElseIf D$ = "7" Then
Ajoute "soixante"
'--- avec une retenue pour les dizaines
D$ = "1"
If U$ <> "1" Then Tiret = True
End If
'--- valeurs entre 10 et 16
If (D$ = "1") And (U$ <= "6") Then
D$ = "0"
U$ = "1" + U$
End If
'--- sinon, on gère toutes les autres dizaines
If D$ >= "1" Then
'--- gère les tirets pour les dizaines composées
If Tiret And D$ = "1" _
And Val(Right$(cdu$, 2)) > 19 Then
Ajoute "-"
End If
'--- traduction de la dizaine...
Ajoute Equivalent$(Val(D$ + "0"))
'--- en accordant l'exception des vingtaines
If D$ + U$ = "20" And C$ <> "0" Then Ajoute "s"
End If
'--- si le mot Et est nécessaire, on l'ajoute
If Et Then Ajoute "et"
'--- ainsi que le tiret, liant une dizaine et une
'--- unité
If Tiret Then Ajoute "-"
'--- puis on traduit l'unité du nombre
If Val(U$) >= 22 Or ((Val(U$) >= 1 And (Val(cdu$) > 1 Or longueur <> 6))) Then
Ajoute Equivalent$(Val(U$))
End If
'--- enfin, la pondération du nombre est respectée,
'--- en ajoutant le multiple nécessaire, et en
'--- l'accordant s'il le faut
Select Case longueur
Case 6: Ajoute "mille"
Case 9: Ajoute "million"
If Val(cdu$) > 1 Then Ajoute "s"
Case 12
Ajoute "milliard"
If Val(cdu$) > 1 Then Ajoute "s"
Case Else
End Select
End If
Next
End If
End If
End Sub

Merci par avance

   

Bas de page 


Information

Pour participer vous devez d'abord être membre ou identifié :
[-> M'identifier
[-> Je ne suis pas membre SOS Ordi, je souhaite m'inscrire
[-> J'ai perdu mon mot de passe


  Réponse postée le 03/05/2008 à 12:39
Profil du membre Configuration PC
Flo24



État : Absent
Bonjour,

Tu lances Access
Tu vas dans Microsoft Visual basic:
Outils/Macro/Visual Basic Editor
Tu fais : Insertion/Module
et tu fais un copier coller de ton programme.

  Réponse postée le 03/05/2008 à 13:46
Profil du membre Configuration PC
chahnou



État : Absent
ok merci , et ensuite coment faire pour utiliser ce module dans la case approprié
merci encore une fois

  Réponse postée le 03/05/2008 à 22:50
Profil du membre Configuration PC
chahnou



État : Absent
ok merci , et ensuite coment faire pour utiliser ce module dans la case approprié
merci encore une fois

  Réponse postée le 04/05/2008 à 06:36
Profil du membre Configuration PC
C148270



État : Absent
Bonjour
après avoir suivi le conseil de Flo24
Il faut créer un formulaire
une fois en mode création :
cliquer sur le symbole "ab" dz la barre de menu
définir une zone dans la formulaire. Il doit apparaître une rectangle gris avec le nom du champ et un rectangle blanc avec "indépendant"

recommencer

créer un bouton de commande (rectangle gris dans la barre de menu)
faire un clique droit sur ce bouton
cliquer sur "propriété" dans la fenêtre qui s'est ouverte
cliquer sur les 3 petit points dans la nouvelle fenêtre
supprimer toutes les instructions entre "Private ..." et "end sub"
taper :
retval=nb2mot$(nom du premier champ)
me.nom du 2ème champ=retval

  Réponse postée le 05/05/2008 à 14:10
Profil du membre Configuration PC
chahnou



État : Absent
Merci, mais je ne vois pas comment faire
comment pourrais je faire pour joindre mon modele de facture afin que vous puissiez m'aider
merci

  Réponse postée le 06/05/2008 à 08:20
Profil du membre Configuration PC
C148270



État : Absent
Peut-être y-a-t'il moyen de transmettre une pièce jointe mais je n'ai jamais essayé.

Sinon transmettez à #############################

A+


Par mesure de sécurité l'adresse E-mail a été effacée, ce n'est ni une sanction et encore moins une brimade.

Nous n'avons pas envie de te revoir ici avec une demande d'aide pour une boite aux lettres polluée par du Spam


Geronimo

Edité par Geronimo le 06/05/2008 à 17:07


  Réponse postée le 09/05/2008 à 17:44
Profil du membre Configuration PC
C148270



État : Absent
Désolé je ne peut plus vous aidez.

Il n'est pas possible de joindre des pièces et Geronimo à supprimé mon adresse de messagerie.
J'espère que c'est une réponse automatique car mon message n'était pas une demande d'aide mais une réponse à une aide et je vois pas ce qui lui permet de décréter que ma boîte est polluée

La communication est coupée. Dommage pour vous chahnou

  Réponse postée le 09/05/2008 à 18:20
Profil du membre Configuration PC
Flo24



État : Absent
Tu prends une adresse email jetable. Cela te permet de l'utiliser provisoirement le temps de faire cet envoi et ensuite tu la vire s'il y a des problèmes. C'est ce que j'ai fait pour la mienne vu qu'elle n'est pas cachée.

  Réponse postée le 10/05/2008 à 23:57
Profil du membre Configuration PC
chahnou



État : Absent
voici un endroit ou vous pourrez recuperer le fichier pour le moment http://fr.swoopshare.com/file/bbc84[...]i+2008.rar.html

  Réponse postée le 11/05/2008 à 02:32
Profil du membre Configuration PC
C148270



État : Absent
Bien reçu.
J'ai rajouté le code dans Module1
j'ai créé un formulaire "formulaireavecbouton" ( la conversion se fait après avoir saisi un nombre dans "texte0" et cliqué sur le bouton) et un formulaire "formulairesansbouton" (la conversion se fait après avoir saisi un nombre dans "texte0" et cliquer sur la zone vide "texte2"

Je me permet une remarque : travailler avec les macro rend un débeugage difficile, on ne peut pas mettre de point d'arrêt contrairement à un code VB

http://www.swoopshare.com/file/f1bc[...]w+2008.rar.html

J'ai utilisé le même stockage. C'est la première fois, j'éspère qu'il n'y aura pas de problème

Bon amusement

  Réponse postée le 13/05/2008 à 00:04
Profil du membre Configuration PC
chahnou



État : Absent
le lien ne donne rien apparament un pribleme lors du depot du fichier merci de bien vouloir le reposter

  Réponse postée le 13/05/2008 à 00:06
Profil du membre Configuration PC
chahnou



État : Absent
le lien ne donne rien apparament un probleme lors du depot du fichier merci de bien vouloir le reposter
erreur de frappe !!!!!!!!!!

  Réponse postée le 13/05/2008 à 01:55
Profil du membre Configuration PC
C148270



État : Absent
J'ai recommencé avec en plus une modification
A l'ouverture du formulaire "facture" le total s'affiche en lettres.
Après changement d'enregistrement il suffit de déplacer la souris sur le formulaire pour que le novelle valeur soit prise en compte.
Dans le module seule la partie entière de la valeur est prise en compte
je met le rapport du téléchargement
Terminé. Le lien vers votre fichier est: http://www.swoopshare.com/file/c5cc[...]odifie.rar.html
Ce lien est valide pendant 30 jours et sera automatiquement effacé en même temps que votre fichier.

  Réponse postée le 13/05/2008 à 12:23
Profil du membre Configuration PC
chahnou



État : Absent
je joint le resultat sous forme d'image a l'adresse suivante http://fr.swoopshare.com/file/df8ec[...]sultat.rar.html

merci encore une autre fois

  Réponse postée le 13/05/2008 à 17:26
Profil du membre Configuration PC
C148270



État : Absent
Cela arrive quand plusieurs types d'objet portent le même nom (table client,macro client,formulaire client.
De plus le formulaire client à pour donnée source la table client comme le formulaire facture.

Normalement pour remettre les pendules à l'heure :

clique droit sur le formulaire clientx
enregistrer sous "copie de .."
supprimer le formulaire client
renommer le formulaire "copie de ..) en "clientx"

je met x car je ne me souvient plus du numéro.

Il se peut que la même manip soit à faire avec le formulaire facture

Autre vérification :
ouvrir le module en création
faire "outils, débogage, compiler
S'il y a une erreur :
faire "outils, références"
décocher en face de "MANQUANT xxx"
recompliler.

Pourquoi :
selon les configurations access incorpore des activesx et autres modules qui n'existent pas sur d'autres postes de travail. personnellement j'ai ,par exemple, des modules Adobe.
J'ai vérifié que les modules sélectionnés soient les standards mais j'en ai peut-être oublié.

Bon courage

  Réponse postée le 14/05/2008 à 07:47
Profil du membre Configuration PC
C148270



État : Absent
Pour flo24

Excuse moi de te remercier si tardivement pour ton conseil

  Réponse postée le 14/05/2008 à 13:53
Profil du membre Configuration PC
chahnou



État : Absent
salut C148270 , je tiens a te dire mrci encore une autre fois pour l'aide que vous m'avez fourni par laquelle j'ai resolu le probleme que j'avais .
je pense mettre d'autres questions afin d'ameliorer mon petit logiciel prso et votre aide serait la bien venus
Merci encore une autre fois .

  Réponse postée le 14/05/2008 à 13:54
Profil du membre Configuration PC
Robot SOSORDI



État : Absent
Réponse automatique :

Cette question est résolue



Haut de page 

 

Version 5.6 | Infos / Contacts | Partenariat | Publicité