BrunoMaxFrank
Messages postés14Date d'inscriptionvendredi 18 mai 2007StatutMembreDernière intervention14 janvier 2008
-
3 janv. 2008 à 19:42
BrunoMaxFrank
Messages postés14Date d'inscriptionvendredi 18 mai 2007StatutMembreDernière intervention14 janvier 2008
-
14 janv. 2008 à 21:22
bonjour à tous et à toutes,
je suis en train de faire un état en Access avec VBA et yé souis tomeber soûr ouné gravé problème!
en gros, on crée une requête sql en VB qui nous renvoit une dizaine de résultat , on doit ensuite trier ces résultat selon le mois et le nom du client (les dépenses d'un client par mois). On doit afficher ces résultats par client et ensuite par mois. l'affichage par client se fait dans différent détail section alors que l'affichage par mois pour un même client se fait dans un seul détail. On remplit donc les champs manuellement, le problème c'est qu'on ne peut pas choisir dans quel section de détail on écrit nos données. Access nous affiche le bon nombre de section mais chaque section contient les données du dernier enregistrement de la requête.
Il faut donc pouvoir "barré" les sections qui ont précédement été rempli ou encore écrire les données dans leur section respective.. en gros, on veut simulé ce qu'Access fait déjà mais à notre manière
merci de votre aide
p.s: si c'est pas clair, on enverra un screenshot :)
BrunoMaxFrank
Messages postés14Date d'inscriptionvendredi 18 mai 2007StatutMembreDernière intervention14 janvier 2008 4 janv. 2008 à 20:26
En fait, je met des textBox dans le rapport et je remplis les champs moi-même avec VB de Access.
Mon problème est que si j'ai 8 enregistrements différent à mettre dans le rapport je suis incapable de partir un nouveau Détail (section du milieu de rapport qui se multiplie selon le nombre d'enregistrement). Donc je modifie 8 fois les mêmes textBox et seul les données du dernier enregistrement que ma requête me retourne sera affiché et les autres sont écrasés.
Donc, ce que je veux faire c'est faire en sorte de multiplier le gabarit de Détail que j'ai mit dans détail autant de fois que j'ai d'enregistrement.
fsltp
Messages postés94Date d'inscriptionlundi 26 novembre 2007StatutMembreDernière intervention16 janvier 2008 4 janv. 2008 à 21:12
Il faut mettre un champ d'une table ou requete dans detail
e il se creera automatiquement à l'execution le nombre de ligne correspondant aunombre d'enregistrement...
BrunoMaxFrank
Messages postés14Date d'inscriptionvendredi 18 mai 2007StatutMembreDernière intervention14 janvier 2008 4 janv. 2008 à 21:17
Oui je sais, je connais quand même pas mal Access.
Mais le rapport que j'ai de besoin est impossible à générer automatiquement par Access donc je le génère manuellement à l'aide de VB d'access mais mon problème c'est de dire que je part un nouvel enregistrement donc il ne faut pas écraser les autres données mais ajouter un autre gabarit à la suite du précédent enregistrement.
Je sais pas si tu comprend maintenant, c'est quand même compliquer à comprendre quand c'est le problème à quelqu'un d'autre.
Et c'est très compliquer à faire. J'ai rien trouver sur internet qui pourrait m'aider alors je me suis pencher sur ce forum pour avoir de l'aide.
J'attend de vos idées :)
Vous n’avez pas trouvé la réponse que vous recherchez ?
BrunoMaxFrank
Messages postés14Date d'inscriptionvendredi 18 mai 2007StatutMembreDernière intervention14 janvier 2008 8 janv. 2008 à 15:04
Il n'y a jamais personne qui a tenté cette manoeuvre nul part sur Internet ???
Si quelqu'un l'a tenté et que ça a fonctionné ... svp ... aidé moi ... je suis a bout de souffle. Ça fait 1 semaine que je tente toutes les solutions possibles que j'avais en tête. Si quelqu'un a une idée prenez 2 minutes de votre temps pour me la faire parvenir svp.
BrunoMaxFrank
Messages postés14Date d'inscriptionvendredi 18 mai 2007StatutMembreDernière intervention14 janvier 2008 8 janv. 2008 à 22:00
Voici un printscreen du résultat
Dans le fond, chaque partie se multiplie selon le nombre de client à afficher mais au lieu de mettre des informations différentes pour chaque client pour chaque répétition, chacune d'elle est écrasé par l'enregistrement suivant pour finalement affiché exemple 8 fois le meme client. Je veux que chaque répétition soit par rapport à un client chaque et le dire à Access en VB mais je ne sais pas comment dire que je par une nouvelle répétition.
BrunoMaxFrank
Messages postés14Date d'inscriptionvendredi 18 mai 2007StatutMembreDernière intervention14 janvier 2008 10 janv. 2008 à 14:11
Je vais essayer de tout t'expliquer le plus clairement possible.
Dans le haut A.Lassonde Inc., c'est le client.
Professional Carriers Inc. est un transporteur.
Le rapport doit être créer pour connaître les coût d'un client par transporteur selon des mois d'une année prédifinie.
Donc si le client à exporter à l'aide de 8 transporteurs différents, on doit pouvoir multiplier ce gabarit d'information 8 fois pour chacun des transporteurs durant la période donnée.
Ce que j'arrive à faire présentement c'est de remplir 8 fois le même gabarit avec de l'information d'un seul transporteur puisque les autres sont écrasé par les nouvelles informations que j'insère dans les textBox. Tout ça à l'aide VBA d'Access. Ce que je n'arrive pas à faire c'est d'indiquer que je part un nouveau gabarit avec l'information d'un nouveau transporteur donc je ne veux pas écraser les données du transporteur que je vienne d'insérer dans le rapport mais bien ajouter un les informations dans un nouvel encadré.
BrunoMaxFrank
Messages postés14Date d'inscriptionvendredi 18 mai 2007StatutMembreDernière intervention14 janvier 2008 11 janv. 2008 à 14:29
Ce n'est pas tout a fait sa encore.
Le probleme est le suivant... ma requete me donne sa mettons
Pour le CLIENT1
TRANSPORTEUR1 30$ 101$ Mars
TRANSPORTEUR1 25$ 235$ Septembre
TRANSPORTEUR2 50$ 150$ Février
TRANSPORTEUR2 50$ 400$ Octobre
TRANSPORTEUR3 75$ 351$ Octobre
TRANSPORTEUR4 366$ 55$ Décembre
Tu peux remarque que j'ai deux valeurs pour un même transporteur comme TRANSPORTEUR1 et TRANSPORTEUR2 qui sont en double.
Alors si tu jète un oeil à l'image que je t'ai envoyé tu va comprend que dans une répétition de la partie DETAIL il faut que je mette les valeurs de 2 résultats de la requête pour un transporteur pour chacun de ses mois et lorsque j'ai fini les informations d'un transporteur il faut que je puisse indiquer que je veux un autre DETAIL du même gabarit pour le transporteur suivant.
Donc Access n'offre pas la possibilité de faire sa automatiquement alors il faut que je le fasse en VB.
Sa devrait vraiment éclaircir le problème.
J'attend de tes nouvelles.
Voici un exemple de mon code VB
****************************
If resultat.RecordCount > 0 Then
While (Not resultat.EOF)
If resultat.BOF Or nomTransporteurPrécédent <> resultat("Transporteur") Then
textBoxNomTransporteur = resultat("Transporteur")
End If
fsltp
Messages postés94Date d'inscriptionlundi 26 novembre 2007StatutMembreDernière intervention16 janvier 2008 11 janv. 2008 à 19:07
Pour moi tu n'y arrivaras pas sans changer ta table de depart.
Il faut absolument quetu ais une cle unique client transporteur puis les valeurs sur le meme enregistrment.
Il faut mieux faire unetable de travail puis basé ldition dessus.
au lieu de CA
Pour le CLIENT1
TRANSPORTEUR1 30$ 101$ Mars
TRANSPORTEUR1 25$ 235$ Septembre
TRANSPORTEUR2 50$ 150$ Février
TRANSPORTEUR2 50$ 400$ Octobre
TRANSPORTEUR3 75$ 351$ Octobre
TRANSPORTEUR4 366$ 55$ Décembre
Il te faut
TRANSPORTEUR1 30$ 101$ Mars ,25$ 235$ Septembre
TRANSPORTEUR2 50$ 150$ Février, 50$ 400$ Octobre
TRANSPORTEUR3 75$ 351$ Octobre
TRANSPORTEUR4 366$ 55$ Décembre
BrunoMaxFrank
Messages postés14Date d'inscriptionvendredi 18 mai 2007StatutMembreDernière intervention14 janvier 2008 11 janv. 2008 à 19:42
Oui je vois ton principe, mais je peux en aucun cas modifier la base de données alors il faut absolument que je trouve la façon VB d'indiquer que je veux partir un nouveau DETAIL manuellement.
C'est qui a un moyen puisque Access le fait déjà ... alors c'est sur que je peux trouver sa quelque part.
Je vais continuer mes recherche merci quand même pour ton aide :)