Question sur DATAGRID et RECORDSET (please help me)

cs_ymerej Messages postés 165 Date d'inscription vendredi 9 avril 2004 Statut Membre Dernière intervention 5 octobre 2007 - 16 juin 2004 à 14:36
cs_ymerej Messages postés 165 Date d'inscription vendredi 9 avril 2004 Statut Membre Dernière intervention 5 octobre 2007 - 16 juin 2004 à 15:52
Bonjour,
j'ai une datagrid dgRech
et un recordset rstProduit

g fé
set dgRech.datasource = rstproduit

dgRech.AllowUpdate = True
gRech.AllowAddNew = True
dgRech.AllowDelete = True

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:

10 réponses

gaa179 Messages postés 361 Date d'inscription mercredi 21 mai 2003 Statut Membre Dernière intervention 12 novembre 2009 2
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

A+
0
cs_ymerej Messages postés 165 Date d'inscription vendredi 9 avril 2004 Statut Membre Dernière intervention 5 octobre 2007
16 juin 2004 à 14:53
oui il est bien de type ADODB.Recordset
mais je l'ouvrais en adOpenKeyset, adLockPessimistic
0
cs_ymerej Messages postés 165 Date d'inscription vendredi 9 avril 2004 Statut Membre Dernière intervention 5 octobre 2007
16 juin 2004 à 14:56
mais ca marche tjs pas là !
Bonc po grave je vé essayer de faire autrement !
0
gaa179 Messages postés 361 Date d'inscription mercredi 21 mai 2003 Statut Membre Dernière intervention 12 novembre 2009 2
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_ymerej Messages postés 165 Date d'inscription vendredi 9 avril 2004 Statut Membre Dernière intervention 5 octobre 2007
16 juin 2004 à 15:02
je n'ai pas ouvert de la même facon car j'utilise le SGBD postgreSQL sur un serveur UNIX /

AdoAquatec.ConnectionString = "UID=" & userName & ";PWD=" & password & ";" & "DRIVER={PostgreSQL};Server=" & IPServeur & ";Database=" & NomBaseDeDonnées & ";"
0
gaa179 Messages postés 361 Date d'inscription mercredi 21 mai 2003 Statut Membre Dernière intervention 12 novembre 2009 2
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.
0
cs_ymerej Messages postés 165 Date d'inscription vendredi 9 avril 2004 Statut Membre Dernière intervention 5 octobre 2007
16 juin 2004 à 15:10
ah peut etre OUI.
Non mais ecoute je te remerci vraiment de ta patience et de ta gentillesse mais je vais faire autrement :

en double cliquant sur une ligne, ca ouvre une fenetre et pi voilà c + conviviale !
@+ et merci encore
0
cs_ymerej Messages postés 165 Date d'inscription vendredi 9 avril 2004 Statut Membre Derniè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

End Sub
0
gaa179 Messages postés 361 Date d'inscription mercredi 21 mai 2003 Statut Membre Dernière intervention 12 novembre 2009 2
16 juin 2004 à 15:48
tu dois faire un rstproduit.requery pour rafraichier ton datagrid
0
cs_ymerej Messages postés 165 Date d'inscription vendredi 9 avril 2004 Statut Membre Dernière intervention 5 octobre 2007
16 juin 2004 à 15:52
franchement !!!
t génial !!!!!!
merci bcp !!
Gt en train de tenter de faie autre chose avec une requete SQL "UPDATE table SET ......"

allez je t'emebete plus !
lol
0
Rejoignez-nous