[Access] Définir zone d'impression formulaire

Résolu/Fermé
Sheraf Messages postés 261 Date d'inscription jeudi 30 octobre 2003 Statut Membre Dernière intervention 10 juin 2009 - 12 sept. 2005 à 15:25
 matrix - 25 juin 2008 à 13:59
Bonjour,

Je voulais savoir s'il était possible de définir une zone d'impression dans un formulaire access, ou à défaut, si l'on pouvait exclure de l'impression certains éléments (combobox, liste, etc.)

Merci d'avance.

Cdlt

43 réponses

Sheraf Messages postés 261 Date d'inscription jeudi 30 octobre 2003 Statut Membre Dernière intervention 10 juin 2009 48
21 sept. 2005 à 15:18
Salut,

Pour les dates à moins de 6 chiffres, je parlais de saisir 1/7 au lieu de 01/07/05 par exemple. Mais comme je te dis, les gens ici sont habitués comme ca, et je trouve ca meme plus pratique que de saisir la date complete.

Sinon, j'ai un autre problème. Quand je créé un Etat pour avoir le récapitulatif des horaires d'un employé sur une période, je réussie à obtenir le nombre d'heures effectuées par jour, par contre, je n'arrive pas à avoir le nombre total d'heures sur la période.
J'ai pourtant une fonction qui me permet d'avoir un total d'heures supérieurd à 24h00 mais je ne sais pas comment additionner les horaires de chaque jour de la période.

As-tu une idée ?

Merci.

0
Utilisateur anonyme
21 sept. 2005 à 15:37
Salaut,

- Pour les dates, si tu mets dans ton formulaire deux zone de texte indépendantes avec comme format jj\/mm\/aaaa, si la personne tapes 1/7, la saisie dans la zone sera transformée en 01/07/2005 automatiquement (2005 car nous sommes en 2005).

- Pour ton état, il faudrait que tu crées un regroupement sur le champ heures (clic droit sur l'état en mode création, trier et regrouper, choisis heure, avec pied de groupe à oui), dans le pied de groupe tu mets une zone de texte indépendante, et comme source tu mets =somme(ton_champ_heures).

Ca marche ?
0
Sheraf Messages postés 261 Date d'inscription jeudi 30 octobre 2003 Statut Membre Dernière intervention 10 juin 2009 48
21 sept. 2005 à 16:06
j'ai toujours le même problème. Je pense que c'est dû au format. Ca se présente comme ca :

Date : Arrivée --- Départ --- Pause --- Repas --- Total

l'opération que je fais est : départ - arrivée - pause - repas.
Ca me sort bien le nombre d'heures totales effectuée par jour.
Pour le résultat du regroupement, ca me met un #erreur.
Comme je te le disais, la fonction que j'utilise demande des paramètres au format Double, or le résultat retourné par jour est au format date.

J'avoue que je suis un peu perdu.
Une idée ?
0
Utilisateur anonyme
21 sept. 2005 à 16:12
re,

Ca me sort bien le nombre d'heures totales effectuée par jour.


Ca te sort bien le nombre d'heures dans quoi ? A quel format ?

Comme je te le disais, la fonction que j'utilise demande des paramètres au format Double, or le résultat retourné par jour est au format date.

C'est quoi ces paramètres ? Le résultat est retourné dans quoi ? Si c'est dans la requête, regarde le format du champ, si c'est dans un état ou un formulaire, regardes le format de la zone.

0

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

Posez votre question
Sheraf Messages postés 261 Date d'inscription jeudi 30 octobre 2003 Statut Membre Dernière intervention 10 juin 2009 48
21 sept. 2005 à 17:13
Ca te sort bien le nombre d'heures dans quoi ? A quel format ? 


Ca me sort le nombre d'heure dans une zone de texte au format Date abrégé. Le calcul se fait comme expliqué dans le post au dessus.

C'est quoi ces paramètres ? Le résultat est retourné dans quoi ? Si c'est dans la requête, regarde le format du champ, si c'est dans un état ou un formulaire, regardes le format de la zone. 


Le résultat est retourné dans la zone de texte de l'état. Il utilise la fonction enHeure(resultat). Voici le code de la fonction.

Public Function EnHeure(ParTemps As Double, Optional ParSecondesAffichees As Boolean = False)
Dim VarJours As Long, VarHeures As Long, VarMinutes As Long, VarSecondes As Long
VarJours = Int(ParTemps)
ParTemps = (ParTemps - VarJours) * 86400 'nombre de secondes
VarSecondes = ParTemps Mod 60
ParTemps = ParTemps - VarSecondes
VarMinutes = (ParTemps Mod 3600) / 60 ' Minutes
ParTemps = ParTemps - VarMinutes * 60
VarHeures = (ParTemps Mod 86400) / 3600 ' Heures
VarHeures = VarHeures + VarJours * 24
If IsMissing(ParSecondesAffichees) Or ParSecondesAffichees = True Then
EnHeure = VarHeures & ":" & Format(VarMinutes, "00") & ":" & Format(VarSecondes, "00")
Else
EnHeure = VarHeures & ":" & Format(VarMinutes, "00")
End If
End Function

Je l'ai trouvée sur ce site : http://www.info-3000.com/access/heureplus24.php

J'ai désormais à la place du nombre total d'heures effectuée sur la période, le total d'heure effectué sur le dernier jour de la période.

voici la photo :
http://www.sheraf.com/preview.jpg

Voici l'état en mode création avec un peu plus de précisions peut-être:
http://www.sheraf.com/cr%E9ation.jpg

Je ne sais pas si ca pourra t'indiquer quelque chose.
En tout cas, je t'avoue que je suis un peu géné de te demander autant de trucs, n'hésite pas à m'envoyer ballader :x. D'autant que je n'aurais pas le temps de te répondre aujourd'hui car je pars en déplacement.

Merci encore.

0
Utilisateur anonyme
21 sept. 2005 à 17:25
Re,

Bon, ta zone en pied de page qui calcule le total, je ne vois pas ce que tu as mis en source, du moins en paramètres de ta fonction 'enheure'.
Tu as mis enheure(resultat) ou en heure(somme(resultat)). ?
Si tu as mis enheure(somme(resultat)) et que ça ne fonctionne pas, essaie de créer une zone (zone1) avec =somme(resultat) pour voir, et crées ensuite une zone avec =enheure(zone1).
Au pire evoies moi la base...

Bon dep'
0
Sheraf Messages postés 261 Date d'inscription jeudi 30 octobre 2003 Statut Membre Dernière intervention 10 juin 2009 48
3 oct. 2005 à 16:02
Salut,

Ca fait un petit bout de temps :o
J'ai une chtite question à propos de ma base Access. En fait j'ai opté pour une utilisation de celle-ci en TSE car le fait d'héberger une partie de la base sur un poste client et l'autre partie sur le serveur me la fait ralentir énormément, à tel point que certaines fonctionnalités plantent uen fois sur deux; alors que ces mêmes fonctionnalités sont très rapide lorsque les deux fichiers de la base sont sur le même ordinateur.
Mon problèmes est que mon serveur ne reconnait pas le fichier MDE. J'aurais voulu savoir quels sont les composants à installer pour que celui-ci puisse démarrer depuis le serveur, sans que j'ai à installer Access. J'ai eu beau chercher sur gogole, je n'ai rien trouvé de probant.
Merci d'avance


Au fait, je ne sais pas si tu as vu, mais je t'ai mis les liens sur www.sheraf.com
0
Utilisateur anonyme
3 oct. 2005 à 16:13
Hello,

En tse, tu es obligé (techniquement parlant) d'avoir access d'installé sur le serveur, et de l'avoir sur chaque poste qui accède à l'application (légalement parlant).

Il te reste sinon la solution d'installer le runtime Access, mais il te faut une licence Office developper.

Pour les liens, j'avais vu, merci !

0
Sheraf Messages postés 261 Date d'inscription jeudi 30 octobre 2003 Statut Membre Dernière intervention 10 juin 2009 48
3 oct. 2005 à 16:22
OK, merci pour les renseignements.
0
Utilisateur anonyme
3 oct. 2005 à 21:57
Au fait, tes utilisateurs sont-ils distants ?
Tu m'as dit :
Pour le partage de la base, je vais avoir deux utilisateurs en permanence dessus (les deux postes dans l'entreprise qui vont servir aux employés à pointer), plus les chefs de service et la paie qui vérifieront les horaires et les éditeront. 

Si non, pourquoi passer par du TSE ? S'ils sont en "local", mets la base (entière si tu veux) dans un répertoire du serveur (au fait c'est quoi ?), donnes les droits qui vont bien, et hop !
Le TSE c'est bien, mais vive les limites !

0
Sheraf Messages postés 261 Date d'inscription jeudi 30 octobre 2003 Statut Membre Dernière intervention 10 juin 2009 48
4 oct. 2005 à 16:24
Salut,

La base est utilisée depuis plusieurs postes simultanément.
En permanence, deux postes pour que les employés puissent pointer, plus quelques connexions des chefs de service et du service paie pour la vérification et la validation des horaires de travail.
Le serveur est un windows 2000.
Je pense que TSE n'est pas une mauvaise idée dans le sens ou ca m'évite d'avoir à faire des requetes sur un réseau qui est assez lent.
Comme je te disais, j'ai essayé les memes requetes en local, elle se font très rapidement, alors qu'en réseau ca plante plus d'une fois sur deux.
Aussi peut etre que je fais travailler access sur des recordsets trop volumineux ? Je ne sais pas, mais je me pencherais dessus quand j'aurais le temps, ce qui n'est visiblement pas pret d'arriver, vu la megatonne de taf que je me prends en ce moment :o)


A+
0
Utilisateur anonyme
4 oct. 2005 à 16:43
Hello,

tu as essayé de mettre la base entière (sans table liée) sur un répertoire du serveur et de l'ouvrir depuis les postes des utilisateurs ? Ca plante aussi ?

Sinon, elle fait combien en taille cette base après compactage ?

Puis une question : le plantage 1 fois sur deux, il n'interviendrait pas par hasard tout le temps sur le(s) même(s) poste(s) ? Je dis ça au cas où des références soient manquantes sur des postes, ça se voit souvent ça...

Bon courage.

0
Sheraf Messages postés 261 Date d'inscription jeudi 30 octobre 2003 Statut Membre Dernière intervention 10 juin 2009 48
4 oct. 2005 à 23:08
Salut,

Tu as bien raison, le plus simple est vraiment de faire un raccourci tout bête vers le poste utilisateur. Je pensais que ca aurait fait ralentir encore plus, et bien j'ai eu tort. J'ai donc mis des raccourcis sur chaque poste utilisateur, et tout baigne.

Le plantage par contre ne différait pas selon les postes. Sur tous, il plantait une fois sur deux, et plus aux heures durant lesquelles le réseau était très sollicité.

Sinon, la base fait environ 1Mo après compactage.

Encore merci pour tes conseils.

0
Utilisateur anonyme
5 oct. 2005 à 08:14
Si tout baigne, tant mieux...

Tu dois donc avoir un problème de réseau, par contre quoi, that is the question !

A plus tard et bonne continuation...

0
Sheraf Messages postés 261 Date d'inscription jeudi 30 octobre 2003 Statut Membre Dernière intervention 10 juin 2009 48
20 oct. 2005 à 11:39
Salut,

Je reviens vers toi car je suis coincé. Je suis en train de faire le site intranet de la boite en php, et j'aurais voulu savoir comment utiliser une variable d'un script vbs avec php.

Si tu as une idée ca serait cool.

A+
0
Utilisateur anonyme
20 oct. 2005 à 14:03
Salut,

Désolé, mais php et moi ça fait 2, vbs également ;-)

Une idée comme ça, sans connaître ce que tu veux faire : s'il n'y a pas un moyen direct, tu peux peut-être passer par un fichier ?

Je te conseille d'ouvrir un nouveau post dans le forum, il y a des spécialistes dans le coin :O)

Bonne continuation.
0
Sheraf Messages postés 261 Date d'inscription jeudi 30 octobre 2003 Statut Membre Dernière intervention 10 juin 2009 48
20 oct. 2005 à 15:51
J'ai essayé mais personne n'a répondu.

Sur développez.com personne n'a répondu non plus. Je commence à croire que mon problème fait chier les spécialistes :p

a+
0
Sheraf Messages postés 261 Date d'inscription jeudi 30 octobre 2003 Statut Membre Dernière intervention 10 juin 2009 48
20 mars 2006 à 20:56
Salut,

Je reviens sur ce forum car je suis bloqué, toujours sur mon application de pointage.
En fait, on me demande maintenant d'en faire une application capable de gérer les RTT.
Tout est bon, il ne me manque qu'une toute petite chose.

J'ai ceci :
supSQL = "SELECT * FROM HeuresSup WHERE login = '" & aux("login") & "' AND mois = " & MoisAvant & ""

Sup.Open supSQL, CurrentProject.Connection, adOpenStatic, adLockOptimistic

cette requete doit me retourner un ou zéro enregistrement. Je cherche en fait à savoir si l'enregistrement ayant la double clé primaire login/mois existe réellement.

Le problème c'est que je ne sais pas comment faire, et je ne suis pas non plus sûr de ma méthode.

Si une idée traine par là, je suis preneur.

Cordialement.
0
Utilisateur anonyme
21 mars 2006 à 10:12
Salut,

Regardes du côté de la fonction dcount si celle-ci peut répondre à tes attentes.

Cette fonction te renvoie le nombre d'enregistrements d'un domaine précis.
Exemple : si le nombre d'enregistrements de la requête est > 4 alors, sinon...
if dcount ("champ1", "ta_requete")>4 then
.....
else
......
end if


0
Sheraf Messages postés 261 Date d'inscription jeudi 30 octobre 2003 Statut Membre Dernière intervention 10 juin 2009 48
21 mars 2006 à 16:38
Salut,

Merci pour ta réponse, je n'en attendais pas moins de toi :)

Dcount n'est malheureusement pas approprié puisqu'il s'agit pour moi d'un recordset, mais je m'en reservirai. J'avais déjà essayé RecordCount, mais je ne m'en sortais toujours pas.
J'ai en fait modifier mes condition et la structure de mes boucles, et là ca fonctionne. Mais j'ai bien cru que je ne m'en sortirai jamais !!!

En tout cas encore merci.

A bientot.
0