Bonjour à tous!
Mon problème est simple. Lorsque je fais une actualisation d'un formulaire ou un refresh, Access plante et me propose de redémarrer en réparant ma base.
Je ne trouve pas de solution. Connaissez vous se problème?
Bonjour à tous!
Mon problème est simple. Lorsque je fais une actualisation d'un formulaire ou un refresh, Access plante et me propose de redémarrer en réparant ma base.
Je ne trouve pas de solution. Connaissez vous se problème?
salut,
avec si peu d'elements on va tacher de te donner les idees generalement proposees :
- compacte ta base
- si ca continue de planter, crees-en une nouvelle et importe tous les modules/tables/queries/macros
donne nous un peu plus de details pour qu'on aille dans le bon sens
Bonne idée, mais malheureusement cela ne fonctionnne pas.
Par contre un Recalc fonctionne mais c'est plus lent . Vraiment bizzare.
Vérifier que le systeme et access sont à jour (service pack)
si c'est pareil
Enlever les expressions une à une jusqu"à trouver celle qui pose problème.
Pour les mises à jour c'est ok.
Et malheureusement je n'ai que l'expression me.refresh comme instruction
Bonjour,
Essaie déjà de recréer une nouvelle base.
Tu crées une base vierge, tu y importes tous tes objets (attention si tu as des menus personnalisés de cocher l'option correspondante), tu compiles ton code et tu compactes.
De toute façon, ça ne pourra que faire du bien à ton application. Elle devrait "maigrir" de façon significative.
Domi2
Merci pour ces conseils.
Je pense avoir trouvé la source du problème.
En fait mon formulaire principal et mon sous-formulaire ont des relations champs père - champs fils.
Si je supprime cette relation, pu de soucis.
Une idée pour contourner tout ca?
C'est toi qui a mis en place la relation ou c'est Access qui l'a fait automatiquement.
Se problème n'est pas "normal" il faut trouver d'où vient le problème et le corriger.
Tu peux poster le contenu des 2 et le type des 2 expressions.
bjr,
éventuellement si c'est le formulaire qui est vérolé, essaye de l' exporter/importer au format texte :
CTRL+G pour accéder à la fenêter d'exécution pour taper les codes VBA.
A faire sur une copie de la base pour tester!
1 - Exporter le formulaire:
2 - Supprimer le formulaire, compacter la base.
Code : Sélectionner tout - Visualiser dans une fenêtre à part application.SaveAsText acForm,"LeNomDuFormulaire",currentproject.path & "\form.txt"
3 - Importer le formulaire:
Parfois cet export/import remet le formulaire d'applomb.
Code : Sélectionner tout - Visualiser dans une fenêtre à part application.LoadFromText acForm,"LeNomDuFormulaire",currentproject.path & "\form.txt"
Eh bien malheureusement j'ai essayé cette méthode et cela ne fonctionne pas. une autre idée?
Est-il possible d'en savoir plus ? Notamment en répondant aux questions de mon post.
J'ai cassé ma boule de cristal et mon chien a bouffé mon dernier tarot de Marseille.
Bien sur, merci de l'intérêt que tu portes à mon problème.
J'ai exporté et re-importé le formulaire.
Par contre le problème viens bien de la liaison entre le champs père et fils de mon formulaire et sous formulaire.
Si en source de données pour le sous formulaire je défini une requête avec comme critères de sélection le N° de mon formulaire principale selon fonctionne.
Bonjour,
Il s'agit donc d'un simple problème d'expression dans ces 2 propriétés.
La liaison doit être une stricte égalité, c'est la première condition.
Je te suggère de regarder la condition where de ta requete en mode SQL et de l'appliquer strictement dans les 2 propriétés.
Exemple :
ça devrait se traduire comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part WHERE [Table1].[ChampIDpere]=[Table2].[ChampIDfils]
Champ père : [Table1].[ChampIDpere]
Champ fils : [Table2].[ChampIDfils]
Note que tu peux faire référence dans le champ père à un controle. Comme une zone de liste par exemple.
[MaZoneListe]
[ChampIDfils]
Dans la mesure ou la zone liste (le controle) renvoi bien la valeur attendu.
Un autre test que tu peux faire c'est laisser ACCESS faire le boulot.
Tu sépare ton sous-formulaire du formulaire et tu le remet en faisant un glisser/déposer. Formulaire Ouvert en mode création, tu y fais glisser l'objet formulaire représentant ton sous formulaire. Les 2 propriétés devraient se configurer automatiquement.
Cordialement,
Merci pour tous ces conseils.
J'ai essayer ces méthodes mais cela ne fonctionne pas
Par contre le viens de trouver l'origine du bug.
En fait mon formulaire est basé sur une table "offre" et une table "détails offre". dans ces 2 tables j'ai un champ numéro auto nommé [N°] .
En fait si je change le nom du control N° dans mon formulaire principal, l'erreur ne se reproduit plus.
Par contre ce nom est repris dans beaucoup d'expressions et de requêtes, y a t'il un moyen de le renommer sans devoir modifier toutes ces expressions.
Bonjour,
Dans le cas ou tu utilises des caractères cabalistique (pour ne pas dire "à la c..") entoure-les avec des crochets. []
Quoiqu'il en soit ce type de caractères est bani par bon nombre d'entre-nous.
Cordialement,
Merci, tu as parfaitement raison et je prend bonne note de la remarque. Cela dis nommer le champ de cette façon est une erreur de jeunesse. Existe t'il une solution pour le renommer sans devoir changer son nom dans toutes les macro, requettes et le code vba.
Passer par une requête pour faire la substitution. Une belle usine à gaz en perspective.
Changer le nom de la table, créer la requête avec l'ancien nom de la table. En espérant que tu n'utilises pas des TableDefs et dbOpenTable et autre.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager