Salut,
Je vais essayer d'après plus clair.
J'ai une base Access avec comme table tempsetnoms dans laquelle et déjà entrée des noms de produits pour être précis
J'ai ajouté à mon code ta modif qui permet de ne plus prendre en compte les chiffre après le signe -.
Tout cela fonctionne trés bien.
Mais voila si par exemple dans la base Access tempsetnoms j'ai comme nom teddy.ba-123 Et que je tape dans txt_nom_produit.Text : tedd il l'accepte et le mes dans une autre base(dont les lignes ne figure pas dans cité si dessus).
Mais voila
------------------------------------------------------------------------------------------------
Private Sub cmd_ajouter_Click()
' connexion à la base de données
Set cnx = New ADODB.Connection
'objet de connexion
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 stock"
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.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
txt_date_stock = DTPickerstock.Value 'la valeur recuperée par DTPickerstock.Value = txt_date_stock
' verification des champs
If form_ajout_produit.txt_nom_produit = "" Or form_ajout_produit.txt_quantite = "" Or form_ajout_produit.txt_date_stock = "" Then
MsgBox "Les champs que vous avez laissé vides sont obligatoires ", vbOKCancel + vbInformation, "Erreur"
Else
txt_date_stock = DateAdd("M", (Text1), (txt_date_stock)) ' ajouter à la date insrite dans txt_date_stock la valeur de text1 en nombre de mois
date_mnt = Date 'Date du jour de l'entrée
date_choisie = txt_date_stock 'Date d'expiration entrée à la main, date choisie c'est la date qui va entrée dans la base
sql_insert = "INSERT INTO stock(nom_pdt,quantite,date_expiration,date_entree) values(""" & txt_nom_produit & """ , """ & txt_quantite & """ , """ & date_choisie & """ , """ & date_mnt & """ ) "
' appel de la fonction qui va ajouter le produit
Call Form1.supprimer_modifier_produit_ajouter(sql_insert)
' 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 = ""
txt_quantite = ""
Else
Unload Me
End If
End If
fin:
End Sub
-------------------------------------------------------------------------------------------
J'aimerais uniquement mettre en mémoire les noms que j'ai dans la base Access avec comme table tempsetnoms avec l'orthographe précis mais avec des chiffres différents après le signes - , sinon refuser.
Suis-je précis ?
Dit moi si cette la méthode est la bonne.
sql_tout_les_noms = "SELECT * FROM tempsetnoms WHERE reference_pdt LIKE '" & getSqlLike(txt_nom_produit.Text, False) & "' ORDER BY reference_pdt;"
Call recherchetempsetnoms(sql_tout_les_noms)
Merci