bonjour,
je suis débutant en Access, j'ai crée une requête, mais le contenu est modifiable, est ce qu'il Ya une solution pour la rendre non modifiable svp.
merci
bonjour,
je suis débutant en Access, j'ai crée une requête, mais le contenu est modifiable, est ce qu'il Ya une solution pour la rendre non modifiable svp.
merci
Bonjour.
La réponse est Oui mais probablement que tu ne devrais pas. Les utilisateurs ne sont pas sensé accéder directement aux requêtes.
Il est recommandé qu'ils passent par un formulaire qui lui-même affiche et contrôle les opérations sur les données.
ceci dit pour mettre une requête en lecture seulement il suffit de :
- Créer une table (ex : tblVerrou) qui ne contient qu'un seul champ et un seul enregistrement.
- Ajouter cette table à ta requête sans aucune jointure.
cela va créer ce qu'on appelle un produit croisé mais comme cela donne N x 1, tes données ne sembleront pas altérées.
Quand Access se retrouve dans une requête avec une relation de 1 à N, il ne peut pas savoir où les modifications pourraient être apportées et donc empêche toute modification => Lecture seulement.
A+
Vous voulez une réponse rapide et efficace à vos questions téchniques ?
Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.
re et merci pour votre réponse, mais j'ai toujours le même problème, j'ai deux requêtes presque identique, une est modifiable et l'autre non, je comprend pas pourquoi!!!, il ya dans chacune un tableau avec plusieurs champs.
je suis vraiment perdu.
Apparement je n'avais pas compris ton besoin.
Peux-tu poster le SQL de tes 2 requêtes. Cela donnera sans-doute une piste.
A+
Vous voulez une réponse rapide et efficace à vos questions téchniques ?
Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.
ok, voici les 2 codes de mes requêtes :
1 - pour la requête 17 qui est non modifiable :
2 - la requête 20 qui est modifiable ( la changer non modifiable) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Public Function maFonction0103Click() ''''''''''''''''''''DoCmd.OpenReport "Requête17", acViewReport, , , acWindowNormal ''''DoCmd.OpenQuery "Requete17Controle0103Tableau", acViewNormal, acReadOnly DoCmd.OpenForm "Formulaire301Requete17" End Function
mode sql ça donne : 1- requete 17 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Public Function maFonction1210Click() ''''''''''''''''''''DoCmd.OpenReport "Requête20", acViewReport, , , acWindowNormal '''' DoCmd.OpenQuery "Requete20Controle1210TableauMachines", acViewNormal, acReadOnly DoCmd.OpenForm "Formulaire304Requete20" End Function
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT Table01Machines.[N°], [Appartenance], [Categorie], [CarPrincipales], [Batiment], [Service], [Salle], [REC1], [TelREC1], [InterneREC1], [MailREC1], [REC2], [TelREC2], [InterneREC2], [MailREC2], [RDoc], [TelRDoc], [InterneRDoc], [MailRDoc], [RTech], [TelRTech], [InterneRTech], [MailRTech], [LogAssocie], Table36Disponibilite.Disponibilite FROM Table01Machines, Table36Disponibilite WHERE (((Table01Machines.Disponibilite)=(Table36Disponibilite.N°)) And ((Table36Disponibilite.Intitule)<>'abandonnee')) ORDER BY Table01Machines.[N°];
2- requete 20 :
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT * FROM Table01Machines;
Bonjour.
Ton problème vient de là :
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part FROM Table01Machines, Table36Disponibilite
Tu as 2 tables et Access ne sait pas où il devrait faire les modifications donc il bloque. Note que parfois il serait supposé le savoir mais il ne le sait pas pareil.
Si tu peux, remplace la jointure par un DFirst(). Ce sera peut-être un peu plus lent.
Si tu es dans un formulaire et selon tes données, tu peux aussi utiliser des listes déroulantes pour afficher les données en provenant d'autres tables sans faire de jointure.
Tu peux aussi utiliser un sous-formulaire pour présenter des données reliées sans utiliser de jointure dans ton formulaire principal.
A+
Vous voulez une réponse rapide et efficace à vos questions téchniques ?
Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.
merci marot pour ta réponse.
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