![]() |
| Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé. | |||||||
|
|||||||
| VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE. |
![]() |
|
|
Outils de la discussion |
|
|
#1 (permalink) |
|
Candidat au titre de Membre du Club
![]() Date d'inscription: mai 2008
Messages: 27
|
Bonjour,
j'ai une table et un formulaire dans le formulaire on a un champ controleX de type DTPicker (on choisit une date dans un calendrier) dans ma table j'ai un champ Date de type Date/heure quand on clique sur le bouton de commande valider de mon formulaire le champ de date est rempli par la date mis dans controleX Je voudrais maintenant que quand on clique sur valider de vérifier que la valeur de controleX ne soit pas dans ma table Si dans ma table message d'erreur sinon on met à jour la table C'est pour éviter de réserver une date déjà choisit Si vous avez des idéees de comment faire merci de m'aider |
|
|
|
|
|
#2 (permalink) |
![]() |
Bonjour
Une des solutions est d'utiliser la fonction de domaine DLookup : http://starec.developpez.com/tuto/fonctionsdomaines/ Tu peux également utiliser une requête SQL avec un recordset, et tester le nombre d'enregistrements en retour. Starec |
|
|
|
|
|
#3 (permalink) |
|
Candidat au titre de Membre du Club
![]() Date d'inscription: mai 2008
Messages: 27
|
j'avais déjà essayé avec Dlookup mais il ne trouve pas le champ (même s'il existe)
Code :
Dim varX As Variant ... Private Sub valider_Click() varX = DLookup("[Date]", "tableau", "[Date] = 08/09/2008 ") If Me.CtlActiveX2 = varX Then MsgBox "vous ne pouvez pas réserver à cette date, elle est prise" Else MsgBox "date disponible réservation possible" End If ... j'ai le message suivant "date disponible réservation possible" alors que cette date est dans ma table "tableau" ce qui veut dire qu'il ne trouve pas à priori cette date dans ma table j'essaie d'afficher la valeur de varX mais j'ai un message vide j'avais mis Code :
MsgBox " " & varX & " " |
|
|
|
|
|
#4 (permalink) |
|
Expert Confirmé Sénior
![]() |
salut,
si ton champ [Date] est de type date, le mieux reste d'appliquer la bonne syntaxe des champs date, non ? Code :
varX = DLookup("[Date]", "tableau", "[Date] = 08/09/2008 ") Code :
varX = DLookup("[Date]", "tableau", "[Date] = #08/09/2008#")
__________________
Piou-Piou Poussin Developpeur Pas de question technique par MP, je ne réponds pas ![]() Mon perso ? Une vraie brute |
|
|
|
|
|
#5 (permalink) |
|
Candidat au titre de Membre du Club
![]() Date d'inscription: mai 2008
Messages: 27
|
Code :
varX = DLookup("[Date]", "tableau", "[Date] = #08/09/2008#") je précise que le champ [Date] est bien de type date j'ai essayé un autre code mais pareil aussi quand j'affiche varx j'ai un message d'érreur "utilisation incorrecte de null ce qui signifie que varx prend la valeur null Code :
varX = DLookup("[Date]", "tableau", "[Date] =" & Me.CtlActiveX2) MsgBox varX If Me.CtlActiveX2 = varX Then MsgBox "vous ne pouvez pas réserver à cette date, elle est prise" Else MsgBox "date disponible réservation possible" End If |
|
|
|
|
|
#6 (permalink) |
![]() |
Bonjour
VarX doit être de type variant pour accepter une valeur nulle, ensuite il faut tester avec la fonction IsNull, si c'est null, c'est qu'il n'y a pas de correspondance, donc pas de date. Essayes dans ce style Code :
Dim varx As Variant varx = DLookup("[Date]", "tableau", "[Date]=#" & Me.CtlActiveX2.Value & "#") If IsNull(varx) Then MsgBox "pas de correspondance" Else MsgBox "c'est bon" End If |
|
|
|
|
|
#7 (permalink) |
|
Candidat au titre de Membre du Club
![]() Date d'inscription: mai 2008
Messages: 27
|
bonjour,
ça marche quand je change ma table par une autre table contenant aussi des dates du coup je reste sur la deuxième table je vous remercie beaucoup pour votre aide je prend du plaisir à faire access, c'est ma première découverte et c grace à vous Bon courage |
|
|
|
|
|
#9 (permalink) |
|
Candidat au titre de Membre du Club
![]() Date d'inscription: mai 2008
Messages: 27
|
ça fonctionne avec la nouvelle table mais il ne trouve pas la date 08/09/2008
si je rentre 08/09/2008 j'ai "pas de corresondance" alors qu'elle est dans ma table sinon pour le reste pas de souci qu'est ce que ça peut être comme erreur? |
|
|
|
|
![]() |
![]() |
||
Vérifier si une date se trouve dans la table
|
||
| Outils de la discussion | |
|
|