sancho12345
Messages postés131Date d'inscriptionjeudi 21 mai 2009StatutMembreDernière intervention18 mars 2012
-
1 juil. 2009 à 14:00
sancho12345
Messages postés131Date d'inscriptionjeudi 21 mai 2009StatutMembreDernière intervention18 mars 2012
-
2 juil. 2009 à 01:36
Bonjour à tous,
<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
Voilà j’ai un problème sur mon code.
L’extrait du code correspond à un bouton de validation pour enregistrer des données dans une base ACCESS.
<ol style="MARGIN-TOP: 0cm" type="1">
<li class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt">Lorsque l’on valide par cmd_ajouter_prodan_Click() si la date n’est pas valide il enregistre quand même dans la base ACCCESS mais sans la date, après avoir valider le MsgBox .</li>
<li class ="MsoNormal" style= "MARGIN: 0cm 0cm 0pt; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt">Si dans le texte box txt_date_prodan on écrit un texte nom numérique il accepte quand même et enregistre dans la base ACCCESS mais sans mettre de date, après avoir valider le MsgBox, .</li>
</ol>
*************************************************
Private Sub cmd_ajouter_prodan_Click()
' connexion à la base de données
'objet de connexion
Set cnx = New ADODB.Connection
Set rst = New ADODB.Recordset
'Définition du pilote de connexion
cnx.Provider = "Microsoft.Jet.Oledb.4.0"
'Définition de la chaîne de connexion
cnx.ConnectionString = "baseproduits.mdb"
'Ouverture de la base de données
cnx.Open
Dim requete As String
requete = " SELECT nom_pdt FROM prodan"
rst.Open requete, cnx
'affichage des enregistrements
If rst.EOF = True Then
Else
'test si le produit existe déja dans la base ( si oui aller à fin: )
rst.MoveFirst
While Not (rst.EOF)
If txt_nom_produit_prodan.Text = rst("nom_pdt") Then
MsgBox "Ce produit existe déja dans la liste , pour ajouter une quantité de ce produit au stock , utiliser l'option Ajouter Quantité au menu principal .", vbInformation + vbOKOnly, "Produit existant"
GoTo fin
End If
rst.MoveNext
Wend
rst.Close
cnx.Close
End If
' verification des champs
If form_ajout_produit_prodan.txt_nom_produit_prodan "" Or form_ajout_produit_prodan.txt_quantite_prodan "" Or form_ajout_produit_prodan.txt_date_prodan = "" Then
MsgBox "Les champs que vous avez laissé vides sont obligatoires ", vbOKCancel + vbInformation, "Erreur"
Else
' verification du format de la date ( limiter les erreurs seulement )
For i = 1 To 10
If i 3 Or i 6 Then
Else
a = Mid(txt_date_prodan.Text, i, 1)
If a "0" Or a "1" Or a = "2" Or a = "3" Or a = "4" Or a = "5" Or a = "6" Or a = "7" Or a = "8" Or a = "9" Then
' requete d'ajout de données
valide = True ' si la date est bonne
' si erreur dans la date
Else
MsgBox " Attention , une date s'écrit de la forme : 01/01/2000 ", vbOKOnly + vbInformation, "Erreur"
i = 11
'txt_date_prodan = "" 'si on rajoute cette ligne cela insert dans le stock sans date
sancho12345
Messages postés131Date d'inscriptionjeudi 21 mai 2009StatutMembreDernière intervention18 mars 2012 2 juil. 2009 à 01:36
Merci à tous pour vos réponses mais c’est la solution de Renfieldque j’ai adopté.<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /??>
Le DtPicker est un peu lourd pour la saisie de la date mais par contre il n’y a plus de possibilité d’erreurs en sortie.
J’ai récupéré la valeur(value) pour afficher dans un textbox.