rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

[access]interdire doublons encodage formulair

alain105d, le vendredi 24 février 2006 à 16:33:52
Bonjour à tous,
Voila mon problème,j’ai un projet en cours sur une location d’appartements(en access 2000) ,j’ai un formulaire client qui a un sous formulaire location
Dans le SF location j’ai les champs [date d’entrée] [date de sortie] [nom chalet] …
Après une réservation les données sont ajoutées à une table archive(puis effacées dans le SF location).
Je voudrais interdire l’encodage d’une date d’entrée déjà existante (dans table archive) pour un même chalet mais autoriser la date si c’est pour un autre chalet.
J’ai réussi à interdire quand la date est dans la table archive mais pas en associant l'appartement.
Quelqu’un a une idée ?
Merci de votre aide
Répondre à alain105d  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
zenon, le samedi 25 février 2006 à 10:06:20
Pourrais-tu en dire plus quant à la structure de tes tables?

Je ne trouve pas logique de déplacer les enregistrements d'une table à l'autre.

Ne serait-il pas plus simple d'extraire les dates libres à l'aide d'une requête pour n'afficher que les chalets libres.

Si tu fais de la location saisonnière comme la dénomination "chalet" me le fait penser (à moins que tu ne sois Suisse? (lol)) ne penses-tu pas illogique de faire d'un formulaire "client" le formulaire principal? ne serait-il pas plus simple de partir d'un tableau affichant tous les chalets libres par date puis, une fois le choix du chalet et de la date effectués d'encoder les données du client...

Je ferais une table "chalets" reprenant la description des chalets,
une table "location" reprenant les dates de location, une clé externe N°de client et une clé externe N°de chalet et une table "clients" reprenant les coordonnées des clients.

A mon avis avec ça tu as tout;
Répondre à zenon

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
alain105d, le dimanche 26 février 2006 à 15:55:44
Bonjour
Merci d’avoir répondu
Je suis d’accord ,les tables chalet client et location sont faites comme ca
Je déplace les enregistrements de la table location pour les archivés dans une autre table.
Le formulaire location reprend chaque client avec le chalet qu’il loue les dates entrée ,de sortie, les charges et le prix a payer
Moi je voulais que la personne qui encode les dates de la location ne puisse pas encoder une date qui existe déjà pour un chalet ,normalement elle se base sur la table archive pour voir les date occupées mais si elle se trompe elle fera une deuxiéme reservation ?
Je ne sais pas si j’ai bien explique mon probléme
Merci
Répondre à alain105d

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
HDU, le dimanche 26 février 2006 à 16:19:53
salut, comme l'a dit zenon, tu as 1 pb de structure...

sinon, si tu es "obligé" de faire avec, regarde la fonctin dcount, elle te permettra de regarder si 1 date est déja saisie.
TCHUZZZZZZZZZZZZZZ
@+
Répondre à HDU

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
zenon, le dimanche 26 février 2006 à 16:30:16
Je pense avoir bien compris, mais si tu laissais tous les enregistrements dans la même table, ce serait plus facile de n'afficher dans le formulaire dans lequel tu encodes les nouvelles locations que les périodes libres.

On pourrait par exemple créer un formulaire principal reprenant les chalets avec un sous-formulaire affichant les périodes disponibles et/ou un formulaire de recherche par dates affichant tous les chalets libres à la période voulue. On pourrait ajouter d'autres critères comme la capacité d'accueil...

Si les locations sont encodées dans une table distincte, ce n'est plus possible. On peut tout au plus écrire une procédure VB pour vérifier si le chalet est libre et afficher un message d'erreur si ce n'est pas le cas.

En fait, dès qu'une période est réservée, elle disparait des possibilités de location et si on veut afficher toutes les réservations, il suffit d'appliquer une requête sélection à la table pour n'afficher que les enregistrements où les dates ne sont pas Null. Comme la table contient une référence au N°de chalet et au N°Client toutes les données peuvent être retrouvées et on n'a pas besoins d'une table archives.
Répondre à zenon

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
alain105d, le dimanche 26 février 2006 à 17:02:17
Merci de vos réponse
J'essaie de resoudre le prob sans changer ma structure ,pour moi toute les dates sont libres sauf celle dans ma table archive
Je pensais faire une macro qui compare la date d'entrée et le chalet que l'on entre dans le formulaire et les comparer au enregistrement dans la table archive.
J'ai utilisé la condition
CpteDom("[Date d'entrée]";"Archive dates";"[Date d'entrée]=Forms![CLIENTS+ SFormulairelocation]![LOCATION Sous-formulaire1]![Date d'entrée]")>0
action bte message
dans la macro pour savoir si la date est déja prise cela fonctionne mais si j'essaie d'ajouter la condition pour le chalet je n'est pas assez de caractere (texte trop long)
une idée?
Merci
Répondre à alain105d

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
zenon, le dimanche 26 février 2006 à 17:12:23
Tu peux faire la même chose en VB sans être limité par le nombre de caractères.

La fct DCount est effectivement une bonne idée.
Tant pis pour la structure...
Répondre à zenon

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
alain105d, le lundi 27 février 2006 à 14:43:58
Bonjour,
Je crois que le VB est la meilleur solution ,mais comme je n’y connais pas grand chose en prog j’ ai converti ma macro ,qui fonctionne seulement avec les dates ,en VB
Mais je n’arrive pas a la transformer avec le deuxième critère le nomchalet
Voila ma macro convertie sans modif
Si quelqu’un a une idée
Merci

Option Compare Database

'-----------------------------------------------------------­-
' verification_doublon_date
'
'-----------------------------------------------------------­-
Function verification_doublon_date()
On Error GoTo verification_doublon_date_Err

If (DCount("[Date d'entrée]", "Archive dates", "[Date d'entrée]=[Formulaires]![CLIENTS+ SFormulaire]![LOCATION Sous-formulaire1]![Date d'entrée]") > 0) Then
Beep
MsgBox "attention doublon", vbOKOnly, ""
End If


verification_doublon_date_Exit:
Exit Function

verification_doublon_date_Err:
MsgBox Error$
Resume verification_doublon_date_Exit

End Function
Répondre à alain105d

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
HDU, le lundi 27 février 2006 à 16:16:14
Bonjour,

il te faut rajouter un AND dans ta condition.


If (DCount("[Date d'entrée]", "Archive dates", "[Date d'entrée]=[Formulaires]![CLIENTS+ SFormulaire]![LOCATION Sous-formulaire1]![Date d'entrée] AND nomchalet=form!location!blabla") > 0) Then 
TCHUZZZZZZZZZZZZZZ
@+
Répondre à HDU

9


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
alain105d, le lundi 27 février 2006 à 17:29:17
Merci beaucoups
Ca marche
J'avais essayé avec and mais pas avec cette syntaxe.
Salut
Répondre à alain105d

10


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 HDU, le lundi 27 février 2006 à 21:55:02
Pas de mal, et bonne continuation !

TCHUZZZZZZZZZZZZZZ
@+
Répondre à HDU
Logiciels pertinents trouvés dans les téléchargements
Télécharger PHTML Encoder 5.2PHTML Encoder - Comment protéger jalousement le code script de vos pages quand vous avez mis des nuits blanches à les écrire. La solution...Catégorie: Editeurs HTML
Licence: Freeware/gratuit
Télécharger Riva FLV encoder 2.0Riva FLV encoder - Riva FLV encoder permet de transcoder vos fichiers vidéo au format advanced Flash Video (FLV). Riva FLV encoder supporte...Catégorie: Conversion
Licence: Freeware/gratuit
Télécharger Firefox Accessibility Extension 1.4.5.0Firefox Accessibility Extension - Sous Windows il existe déjà une option d'accessibilité pour les personnes à mobilité réduite ou ayant des problèmes de vue....Catégorie: Extensions Firefox
Licence: Freeware/gratuit
Télécharger K-Lite Codec Pack Full 4.1.7K-Lite Codec Pack Full - K-Lite Codec Pack est une collection de codecs et de filtres nécessaires pour encoder ou décoder des formats audio ou vidéo....Catégorie: Codecs
Licence: Open Source
Plus de logiciels gratuits sur « [access]interdire doublons encodage formulair »