Question sur DATAGRID et RECORDSET (please help me)
cs_ymerej
Messages postés165Date d'inscriptionvendredi 9 avril 2004StatutMembreDernière intervention 5 octobre 2007
-
16 juin 2004 à 14:36
cs_ymerej
Messages postés165Date d'inscriptionvendredi 9 avril 2004StatutMembreDernière intervention 5 octobre 2007
-
16 juin 2004 à 15:52
Bonjour,
j'ai une datagrid dgRech
et un recordset rstProduit
et pourtant on ne peut pas modifier les données dans la grille !
est ce normal ??
est ce que c'est parceque ma grille n'est pas associé a un controle ADO par hasard ?
A voir également:
Question sur DATAGRID et RECORDSET (please help me)
gaa179
Messages postés361Date d'inscriptionmercredi 21 mai 2003StatutMembreDernière intervention12 novembre 20092 16 juin 2004 à 14:49
Salut,
Ton recordset doit être du type ADODB (Dim RstProduit as ADODB.Recordset). Si c'est OK, tu dois l'ouvrir en écriture:
Syntaxe:
RstProduit.Open "Select * from Table where Champ1=" & Var1, MyDedCn, adOpenStatic, adLockOptimistic
gaa179
Messages postés361Date d'inscriptionmercredi 21 mai 2003StatutMembreDernière intervention12 novembre 20092 16 juin 2004 à 15:00
Vérifie les paramètres de ta connexion ADO, elle est peut être en read only.
J'ai pas de problème d'édition ni d'ajout de record.
MyDedCn.ConnectionString Provider=MSDASQL.1;Persist Security Info=False;User ID=root;Data Source=Rigest;Mode=ReadWrite
Vous n’avez pas trouvé la réponse que vous recherchez ?
gaa179
Messages postés361Date d'inscriptionmercredi 21 mai 2003StatutMembreDernière intervention12 novembre 20092 16 juin 2004 à 15:08
Pour essai,
crée une connection au travers d'un dataenvironment et ensuite une commande. Associe la commande à ton dtagrid et voit si tu peux éditer tes données. Peut-être que le user que tu utilise n'a qu'un droit de read-only sur ta DB.
cs_ymerej
Messages postés165Date d'inscriptionvendredi 9 avril 2004StatutMembreDernière intervention 5 octobre 2007 16 juin 2004 à 15:42
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