Tout compte fé G encore besoin de toi car l'insertion dans la base fonctionne mais pas la mise à jour, voici mon code de la fonction qui se lance qd l'utilisateur clic sur le bouton ajouter ou modifier suivant le cas : PS : ne fé pas attention à la fonction ReturnNullIfVide. PS2 : pourtant lors d'une mise à jour, la msgbox qui me dit que la MAJ c bien passé se lance bien alors je n'y comprend plus rien !
Private Sub cmdAdd_Click() Dim rstNewProduit As ADODB.Recordset
Set rstNewProduit = New ADODB.Recordset rstNewProduit.Open "Produit", AdoAquatec, adOpenKeyset, adLockOptimistic, adCmdTable On Error GoTo err_insert If Me.Tag = AJOUTER Then rstNewProduit.AddNew Else rstNewProduit.Find "id_prod = " & frmMain.dgRech.Columns(0), , adSearchForward, 1 End If With rstNewProduit .Fields("id_type") = cmbType(1).Text .Fields("id_taille") = cmbTaille(1).Text .Fields("reference") = ReturnNullIfVide(txtFields(1).Text) .Fields("reference_four") = ReturnNullIfVide(txtFields(2).Text) .Fields("libelle_fr") = ReturnNullIfVide(txtFields(3).Text) .Fields("libelle_an") = ReturnNullIfVide(txtFields(4).Text) .Fields("description") = ReturnNullIfVide(txtFields(5).Text) .Fields("prix_achat") = ReturnNullIfVide(txtFields(6).Text) .Fields("prix_revient") = ReturnNullIfVide(txtFields(7).Text) .Fields("prix_vente") = ReturnNullIfVide(txtFields(8).Text) .Fields("quantite") = ReturnNullIfVide(txtFields(9).Text) .Fields("stock_mini") = ReturnNullIfVide(txtFields(10).Text) .Update End With If Me.Tag = AJOUTER Then MsgBox "L'article " & txtFields(3) & vbNewLine & "Référence " & txtFields(1) & vbNewLine & "a été ajouté avec succès dans la base", vbInformation, "Succès de l'opération" Else MsgBox "L'article " & txtFields(3) & vbNewLine & "Référence " & txtFields(1) & vbNewLine & "a été modifié avec succès dans la base", vbInformation, "Succès de l'opération" End If RechercheProduit "", RECHERCHE_TOUT Unload Me Exit Sub err_insert: If AdoAquatec.Errors.Count > 0 Then Select Case AdoAquatec.Errors.Item(0).Number Case ERREUR_NULL MsgBox "Vous avez oubliez de spécifier un champ obligatoire", vbExclamation, "Erreur lors de l'insertion dans la base" Case ERREUR_TYPE MsgBox "Erreur de type : " & vbNewLine & "-Les prix doivent etre des réels à virgule" & vbNewLine & "-La quantité et le stock minimum des entiers", vbExclamation, "Erreur lors de l'insertion dans la base" Case Else MsgBox "Description erreur :" & vbNewLine & AdoAquatec.Errors.Item(0).Description, vbExclamation, "Erreur lors de l'insertion dans la base" End Select Else MsgBox Err.Description End If
End Sub
|