cs_marco60
Messages postés14Date d'inscriptionsamedi 24 mars 2007StatutMembreDernière intervention 6 février 2010
-
18 déc. 2007 à 09:27
cs_marco60
Messages postés14Date d'inscriptionsamedi 24 mars 2007StatutMembreDernière intervention 6 février 2010
-
22 déc. 2007 à 08:43
bonjour voila plusieur jour que je cherche je suis un debutant
j'ai dans un tableau access des données
je veux verifier si une date exite et si elle exite interdire sont enrgitrement dans le tableau
la date que je prend en reference est donne par un label or meme si la date exite pas il me dit quelle exite donc j'ai ete sur des forums et j'ai essayer avec currentdb mais se mot n'est pas reconnu comme mot cle
Sub controldate()
Dim a As Date
Dim b As Date
Dim datechercher As Date
datechercher = Format((frmcalendrier.Label8(0).Caption), ("dd/mm/yy"))
frmcalendrier.Adodc1.Recordset.Find "dates=" & datechercher, , adSearchForward, 1
Do While Not frmcalendrier.Adodc1.Recordset.EOF
MsgBox "date-->" & frmcalendrier.Adodc1.Recordset!dates
Le newbie
Messages postés200Date d'inscriptionmardi 17 octobre 2006StatutMembreDernière intervention24 mars 20122 18 déc. 2007 à 11:54
Salut,
Et si tu essayais de faire une requête sql du type :
"select date from latable where date = ' "tonlabel.text" ';
pour ensuite testé le nombre d'enregistrement contenu dans ton recordset (monrecordset.count).
Si le count = 1, la date est prise sinon c'est ok tu peux l'enregistrer.
Cela ne sert à rien puisque tu veux testé si une date est prise par 1 et 1 seul enregistrement (de ce que j'ai compris).
Là tu fais une boucle Tant que tu as des enregistrements or il faut que tu testes si une date existe donc la requête la plus appropriée est celle que je t'ai indiqué
"select date from latable where date = ' "tonlabel.text" ';
Ensuite tu testes si ton recordset à un enregistrement si le recordset à un enregistrement, la date est prise (logique) donc ton true est retourné si tu veux. Sinon il est à 0 donc tu peux ajouter l'enregistrement.
De ce que je vois, tu es dans une sub (procédure) pas dans une function (...fonction) donc tu ne retourne pas de résultat (true ou false).
Maintenant essaye d'être plus precis. As tu des erreurs ? ou ? quel est le message ? Que ligne ? ton code est il le même ? Met le nouveau,.... Ce type de renseignements pourra aider les personnes du forum à répondre rapidement et précisément à tes attentes.
cs_marco60
Messages postés14Date d'inscriptionsamedi 24 mars 2007StatutMembreDernière intervention 6 février 2010 19 déc. 2007 à 10:50
BONJOUR et merci de de ton aide
voila la essais sa
Sub controldate()
Dim rst As Recordset
Dim datechercher As Date
datechercher = Format((frmcalendrier.Label8(0).Caption), ("dd/mm/yy"))Set rst frmcalendrier.Adodc1.Recordset("SELECT dates FROM compteur1 " & "WHERE dates 'datechercher';")
MsgBox "Impossible D'ajouter le jour est deja utilisé!"
frmcalendrier.donne1.Text = ""
End Sub
je suis pas sur de se que je fait et sa me donne
impossible de trover lobjet dans la collection corespondant au nom ou a la reference ordinale demandé j'ai uttilisé la fonction aide f1 pour where
Vous n’avez pas trouvé la réponse que vous recherchez ?
Le newbie
Messages postés200Date d'inscriptionmardi 17 octobre 2006StatutMembreDernière intervention24 mars 20122 19 déc. 2007 à 12:13
Oui OK. Plusieurs problèmes.
Pour la requête ça marchera mieux comme ça :
frmcalendrier.Adodc1.Recordset("SELECT dates FROM compteur1 WHERE dates = ' " & datechercher & " ';").
Attention tu veux la valeur de datechercher et nom le texte "datechercher"
Ensuite dans ta base de données de quel type le champs "dates" : datetime, char(x) ?
Si c'est du char(x), ça suffit : dim datechercher as string = frmcalendrier.Label8(0).Caption
sinon fait cdate(Label8(0).caption) ça doit passer. Est tu sur que datechercher comme tu les récupère est bon ? (Vérifie avec une msgbox s'il le faut.
cs_marco60
Messages postés14Date d'inscriptionsamedi 24 mars 2007StatutMembreDernière intervention 6 février 2010 22 déc. 2007 à 08:43
bonjour c'est encore moi j'essai de comprende quand je mmet une date sa marche
Private Sub Form_Load()
Dim b, d
Dim sql As String
Dim cnx As ADODB.Connection
b = Now
Dim ntx
Dim rst As ADODB.Recordset
Set cnx = New ADODB.Connection
Label1.Caption = Format((b), ("dd/mm/yy"))
d = CDate(Label1.Caption)
Set rst = New ADODB.Recordset
Text2.Text = d
cnx.Provider = "Microsoft.Jet.Oledb.4.0"
cnx.ConnectionString = "C:\compteur temp\bd1.mdb"
cnx.Opensql "SELECT dates FROM compteur1 WHERE dates #22/12/2007# "
rst.Open sql, cnx
If rst.EOF Then
rst.Close
rst.Open
MsgBox ("date ok")
Else
MsgBox ("date deja utiliser")
ntx = rst!dates
Text1.Text = ntx
End If
End Sub
donc apres j'essai avec la date recupere dans un label
Private Sub Form_Load()
Dim b, d
Dim sql As String
Dim cnx As ADODB.Connection
b = Now
Dim ntx
Dim rst As ADODB.Recordset
Set cnx = New ADODB.Connection
Label1.Caption = Format((b), ("dd/mm/yy"))
d = CDate(Label1.Caption)
Set rst = New ADODB.Recordset
Text2.Text = d
cnx.Provider = "Microsoft.Jet.Oledb.4.0"
cnx.ConnectionString = "C:\compteur temp\bd1.mdb"
cnx.Opensql "SELECT dates FROM compteur1 WHERE dates '" & d & "'"
rst.Open sql, cnx
If rst.EOF Then
rst.Close
rst.Open
MsgBox ("date ok")
Else
MsgBox ("date deja utiliser")
ntx = rst!dates
Text1.Text = ntx
End If
End Sub
il me marque type de donnée incompatible dans lexpression du critére
poutant quand je regarde le text2 j'ai bien 22/12/2007