Mon écran est trop petit pour l'afficherj'ai une petite question, mes formulaires FDétails_Banques et FDetail_de_l'emprunt s'ouvrent en mode fenêtre au milieu de l’écran, sais tu comment on faire pour qu'ils s’ouvrent, normalement
Mon écran est trop petit pour l'afficherj'ai une petite question, mes formulaires FDétails_Banques et FDetail_de_l'emprunt s'ouvrent en mode fenêtre au milieu de l’écran, sais tu comment on faire pour qu'ils s’ouvrent, normalement
tu vas pensé que c'est du harcèlement, mais vu que tu est calé sur access, j'aurais d'autre petite question, n’hésite pas a me dire STOP, si tu veux plus me repondre
- Pour la rapidité de la la fonction de domaine, il est plus sage d’intégrer mon fichier VTAUX dans access ou le laisser en lien comme c'est actuellement?
- dans mon formulaire Fliste_des_banques quand je clique sur la banque, il me demande de resaisir la banque avant d'ouvrir le formulaire FDétails_Banques à l'aide de ma macro sur clic, je n'arrive pas a enlever cette boite de dialogue.
J'ai copier cette macro sur la base les comptoires que fournis access. Peux tu m'éclairer sur ce qui ne va pas. j'ai réussi a l'adapter pour Fliste_des_emprunts et cela fonctionne, alors je comprend pas ou est le problème.
Merci encore
Pas de souci, ton sujet m'intéresse.
J'examinerai volontiers tes questions, pour l'instant ça fait un long moment que je sèche pour traiter les cas où le taux manque à une date donnée.
Je te reviens bientôt.
N.B. Ce ne serait pas zéro, mais Null !pour les taux manquants, je voulais mettre dans la formule que si c'est "0" qu'il me trouve la valeur la plus proche ou celle de j-1
Je te propose d’ajouter systématiquement dans VTaux chaque taux possible avec une valeur (j’ai mis arbitrairement .0001) et une date très lointaine, de manière à ce qu’elle soit certainement antérieure à celles que tu seras amenée à encoder (j’ai mis 1/1/2000).
Pour tester, j’ai ajouté ceci à la table :
Remarque que, pour être complet il y a « Livret A » et « LivretA » !
J’ignore comment le code taux est garni dans ton système, mais il y a une faille.
Quoi qu’il en soit, voici une routine qui renvoie le taux si on donne le code du taux et une date.
Si la date n’est pas dans VTaux, on prend celle antérieure qui est la plus proche (en dernier ressort, la date arbitraire, en l’occurrence 1/1/00).
Code à loger dans un module :
En conséquence de ceci, la requête
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 Option Compare Database Option Explicit Public Function dblTaux(sCodeTaux As String, dDate As Date) As Double On Error GoTo GestionErreur Dim dDernDate As Date 'Recherche de la date la plus proche dDernDate = DMax("[Date Taux]", "Vtaux", "[Date Taux]<=#" & Format(dDate, "mm/dd/yy") & "# and [Code Taux] = """ & sCodeTaux & """") 'Recherche du taux dblTaux = Nz(DLookup("[Valeur Taux]", "Vtaux", "[Date taux]=#" & Format(dDernDate, "mm/dd/yy") & "# and [Code Taux] = """ & sCodeTaux & """"), "Taux Manquant") Exit Function GestionErreur: Select Case Err.Number Case 94 ' dDernDate = Null MsgBox " Taux non trouvé pour le code taux " & sCodeTaux & " !" Case Else MsgBox "Erreur N° " & Err.Number & " " & Err.Description & " dans dblTaux !" End Select End Function
et son SQL :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT TEcheances.*, TEmprunts.RefCodeTaux, Day(DateSerial(Year([PeriodeDebut]),Month([PeriodeDebut])+1,0)) AS Mois1, Day(DateSerial(Year([PeriodeDebut]),Month([PeriodeDebut])+2,0)) AS Mois2, Day(DateSerial(Year([PeriodeDebut]),Month([PeriodeDebut])+3,0)) AS Mois3, TEcheances.DateTaux AS DateTaux1, [DateTaux]+[Mois1] AS DateTaux2, [DateTaux]+[Mois1]+[Mois2] AS DateTaux3, dblTaux([RefCodeTaux],[DateTaux1]) AS ValTaux1, dblTaux([RefCodeTaux],[DateTaux2]) AS ValTaux2, dblTaux([RefCodeTaux],[DateTaux3]) AS ValTaut3 FROM TEmprunts INNER JOIN TEcheances ON TEmprunts.ID = TEcheances.RefNPret;
Je suppose que la feuille Excel est régulièrement mise à jour par un système sur lequel, tu n’as pas la main. De plus, il s’avère qu’il faut ajouter quelques enregistrements (voir plus haut).- Pour la rapidité de la fonction de domaine, il est plus sage d’intégrer mon fichier VTAUX dans Access ou le laisser en lien comme c'est actuellement ?
Perso, j’importerais dans la db Access et j’en profiterais pour renommer les colonnes (pas de caractères spéciaux ni d’espace).
Cette remarque sur le nommage vaut pour d’autres éléments de ta db actuelle.
Désolé, je ne parviens pas à ouvrir ces formulaires : sans doute un problème dans la conversion 2007 => 2000.- dans mon formulaire Fliste_des_banques quand je clique sur la banque, il me demande de resaisir la banque avant d'ouvrir le formulaire FDétails_Banques à l'aide de ma macro sur clic, je n'arrive pas à enlever cette boite de dialogue.
J'ai copié cette macro sur la base les comptoirs que fournit Access. Peux-tu m'éclairer sur ce qui ne va pas. j'ai réussi à l'adapter pour Fliste_des_emprunts et cela fonctionne, alors je ne comprends pas où est le problème.
En effet, je n'ai pas la main sur la feuille excel qui en découle.
Pour les caractères spéciaux, je vais corriger ça.
j essaye ce que tu me dis et je reviens vers toi
Il va de soi que si tu modifies le nom des colonnes et/ou contrôles, tu devras aussi adapter la fonction dblTaux.Pour les caractères spéciaux, je vais corriger ça.
j essaye ce que tu me dis et je reviens vers toi
D’autres choses m’ont paru bizarres : dans TEcheances la date de début d’une période est égale à la date de fin de la période précédente. Je m’attendais à ce qu’une période commence le lendemain de la fin de la précédente.
Ton calcul de la prochaine échéance ne tient pas compte des jours bancables. Pour autant que je me souvienne, pour les R-O, si la date n’est pas bancable, c’est reporté à la plus proche bancable à venir (sauf si cela changeait de mois dernier jour bancable du mois). Mais cela a peut-être changé ou j’ai oublié…
Pour le calcul des intérêts que ce soit un dimanche ou un lundi la date reste inchangé, le calcul est en jour calendaire.
pour les début et fin de période, tu as raison, j'ai repris le taf d'une personne qui gérais cela sur excel sur un tableau des plus horrible (usine a gaz quoi) alors il faut que je revois emprunt par emprunt.
le but de cette base est de gérer les emprunts et contrôler les intérêts avec la banque, de plus une fois tout cela stable, je m'en servirais pour établir mes provision de fin de mois, avec requêtes et état supplémentaire.
je suis en vacance en ce moment alors j'en profite pour le faire.
sur ta 1re image je vois une virgule, là où il faut un point-virgule !
ValTaux1: dblTaux([RefCodeTaux];[DateTaux1])
As-tu ajouté les postes manquants dans VTaux ?
Je suppose que tu n'as pas encore renommé les colonnes de VTaux.
Je te joins la DB qui me sert de test.
super cela fonctionne parfaitement, grâce toi j'avance petit a petit
je continue de travaillé dessus, pourrais tu m'eclairer sur la fonction vraifaux
Datetaux2:VraiFaux(daterectifier=null;datetaux+mois1;daterectfier)
comment je dois présenter "=null"
je veux laisser un échappatoire pour rectifier la date, si la banque prend un autre taux que celui calculer automatiquement (c'est rare, mais cela peut arriver)
D'une manière générale, pour se documenter sur les propriétés d'un formulaire ou d'un état, ou de leurs contrôles :
- afficher l'objet en mode construction ;
- cliquer sur la propriété => elle se met en surbrillance ;
- enfoncer la touche <F1>
=> l'aide Access s'ouvre à la bonne page.
De même dans le code, placer le curseur de la souris et enfoncer F1.
On peut aussi :
• ouvrir l'aide <F1>, choisir l'onglet « Aide intuitive » et suivre les instructions ;
• ouvrir la fenêtre d'exécution (<Ctrl> + G), saisir un mot-clé, y placer le curseur de la souris et enfoncer F1.
Par exemple pour répondre à ta question :
- F1 ;
Clique sur « Rechercher », il vient
- Tu sélectionnes l’exemple de code, <Ctrl> + C pour le copier dans le presse-papier ;
- <Ctrl> + G pour ouvrir une fenêtre d’exécution, ensuite <Ctrl> + V pour y copier le code, tu obtiens ceci :
- tu cliques sur le mot-clé (ici IIf) pour y pour y insérer le curseur et tu enfonces F1 l’aide s’ouvre à la bonne page :
OK, je vais faire cela a l'avenir
Merci
Partager