begin process at 2012 02 14 18:48:48
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Base de données

 > 

SQL

 > 

Problème de code(Date)


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Problème de code(Date)

mercredi 1 juillet 2009 à 14:00:59 | Problème de code(Date)

sancho12345

Bonjour à tous,

 

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.

  1. 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 .
  2. 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,  .

*************************************************

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

 

End If

End If

Next i

date_mnt = Date

date_choisie = txt_date_prodan

If valide = True Then

sql_insert_prodan = "INSERT INTO prodan(nom_pdt,quantite,date_expiration,date_entree) values(""" & txt_nom_produit_prodan & """ , """ & txt_quantite_prodan & """ , """ & date_choisie & """ , """ & date_mnt & """ ) "

' appel de la fonction qui va ajouter le produit

 

Call Form1.supprimer_modifier_produit_ajouter_prodan(sql_insert_prodan)

' si on veut quitter ou ajouter un autre produit

choix = MsgBox("Opération effectuée , voulez vous ajoutez un autre produit ?", vbQuestion + vbYesNo, "Confirmation")

If choix = vbYes Then

txt_nom_produit_prodan = ""

txt_quantite_prodan = ""

Else

Unload Me

End If

' fin choix

 

End If

End If

 

fin:

 

End Sub

 

 

Questions :

Auriez-vous une solution en modifiant ce code pour justement :

 

1.      Ne pas accepter autre chose que des valeurs numériques dans le txt_date_prodan.

2.      Contrôler si la date et valide, si oui  l'enregistrer sinon revenir et la retaper

 

Merci par avance à tous
mercredi 1 juillet 2009 à 14:16:46 | Re : Problème de code(Date)

hellangel777

Bonjour,

Pas besoin de poster 2 fois
1. Regarde la fonction IsNumeric
2. Test le format

Ensuite donne ton code et le message d'erreur

HellAngel777
Les machines ne font pas d'erreurs
Heureusement nous sommes humains
mercredi 1 juillet 2009 à 15:30:23 | Re : Problème de code(Date)

Renfield

Administrateur CodeS-SourceS
IsDate pour tester la vaidité d'une date, c'est plus simple.

un peu de lecture à ce sujet:

http://blogs.codes-sources.com/renfield/archive/2009/04/14/param-tres-r-gionnaux-en-g-n-ral-et-avec-vb6.aspx
mercredi 1 juillet 2009 à 15:46:10 | Re : Problème de code(Date)

Calade

Et pourquoi ne pas utiliser le contrôle calendrier. Cela simplifierait la saisie aux utilisateurs.

Calade

mercredi 1 juillet 2009 à 15:51:12 | Re : Problème de code(Date)

Renfield

Administrateur CodeS-SourceS
Réponse acceptée !
DtPicker
accessible via
Menu Projet > Composants (Ctrl+T) > Microsoft Windows Common Controls 2
jeudi 2 juillet 2009 à 01:36:24 | Re : Problème de code(Date)

sancho12345

Merci à tous pour vos réponses mais c'est la solution de Renfieldque j'ai adopté.

 

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.

 

Encore merci à tous.

 

A+   



Cette discussion est classée dans : date, txt, produit, if, prodan


Répondre à ce message

Sujets en rapport avec ce message

Operation sur date [ par Manau81 ] j'aimerai savoire se qui cloche dans ce bou de code l'erreur est " type incompatible "[^^confus2] Private Sub Form_Load() MsgBox Calcule(DateTime.Dat Fonction qui ne s'execute qu'en 2009... [ par mbelzou ] Bonjour, Je viens poster un morceau de mon code parce que la je suis un peu perdu, je ne comprends pas pourquoi cela ne marche que pour les dates de probleme de mise a jour date [ par kefir1998 ] bonjour voila le code maisPrivate Function IsFerie(Date_testee As Date) As Boolean    Dim JJ, AA, MM As Integer    Dim NbOr, Epacte As Integer    Dim programme avec l'objet date [ par newgame ] bonjoursalut on m'a donné de réaliser un pgm qui calcule le nbr de jour ouvrable on vous donne la date début puis la date fin et puis vous donnez le n [Déplace .Net --> VBA] Problème de boucle et de mémoire "tampon" [ par alextring ] Bonjour, Je débute avec VBA et j'ai fais un USERFORM qui demande à un moment de rentrer soit le nom du produit soit sa référence. Ce que je voudrai c' Creation graphique dans un formulaire suivant valeur d'une table [ par daimadoshi60 ] Bonjour à tous. Voila, je cherche à afficher un graphique dans un formulaire en suivant les valeurs d'une table qui contient toute les valeurs nécéss Group By Format([DATE]) VBA - SQL [ par bastien0675 ] Bonjour, je suis en train de bosser sur un formulaire Access qui vient taper dans une BD. J'ai deux zoneListe représentant des Portefeuilles et des m Import Plusieur txt dans une table sql [ par cluster57190 ] Bonjour a tous, Petite présentation de mon problème, j'ai un fichier texte de 275Mo qui contient 140000 étiquettes sans aucun séparateur. J'ai donc


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,281 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales