Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2920 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  datagrid éditable ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

datagrid éditable ?

n°617896
art_dupond
je suis neuneu... oui oui !!
Posté le 21-01-2004 à 14:58:43  profilanswer
 

youp,
 
 
j'essaye de remplir un datagrid avec des données d'une DB
 
après recherche, je fais :


    Set rs = coco.Execute(query)
    Set DataGrid1.DataSource = rs
    DataGrid1.Refresh


 
mais ca ne marche pas... mon datagrid reste vide
 
(le Rs est un recordset et il est bien rempli)
 
 
ce qui est bizarre, c'est qu'il ne se passe rien non plus quand je fais :
 

Datagrid1.columns(1).width = 1000


 
 
j'ai loupé quelque chose (surement) ?
 
 
 
 
merci


Message édité par art_dupond le 22-01-2004 à 10:01:38

---------------
oui oui
mood
Publicité
Posté le 21-01-2004 à 14:58:43  profilanswer
 

n°617902
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 21-01-2004 à 15:03:30  profilanswer
 

je sais pas si tu utilises ou pas le DataGrid de .NET, mais si c'est le cas, tu dois utiliser la méthode SetDataBinding de ton objet DataGrid pour le remplir


---------------
J'ai un string dans l'array (Paris Hilton)
n°617925
art_dupond
je suis neuneu... oui oui !!
Posté le 21-01-2004 à 15:11:09  profilanswer
 

j'utilise vb6
 
mais je vais toujours voir ca


---------------
oui oui
n°617999
drasche
Posté le 21-01-2004 à 15:44:06  profilanswer
 

Il n'y a pas de problème au niveau code, même que la méthode Refresh est superflue. C'est forcément le recordset qui foire.


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°618035
art_dupond
je suis neuneu... oui oui !!
Posté le 21-01-2004 à 16:07:06  profilanswer
 

yop,
 
bon, je faisais ca avec un DataEnv
 
maintenant, je fais ça comme ça et il me fait : recordset "not bookmarkable..."


Public Sub Form_Load()
Dim CoConnection As ADODB.Connection
Dim Rs As ADODB.Recordset
Dim query As String
 
   Set CoConnection = New ADODB.Connection
    Set Rs = New ADODB.Recordset
 
    CoConnection.ConnectionString = "driver={SQL Server};server=sql_serveur;uid=login;pwd=password;database=base"
    CoConnection.Open
    query = "SELECT * FROM table"
     
    'Set Rs.Properties("Bookmarkable" ) = True
    Set Rs = CoConnection.Execute(query)
    Set grille.DataSource = CoConnection.Execute(query)
     
    Rs.Close
    CoConnection.Close
End Sub


 
:(


Message édité par art_dupond le 21-01-2004 à 16:07:17

---------------
oui oui
n°618123
drasche
Posté le 21-01-2004 à 16:33:45  profilanswer
 

ya un truc qui me choque en tout cas, c'est que tu fermes le recorset à la fin de la procédure. La connection à la limite on s'en fout (d'ailleurs mettre la propriété ActiveConnection du recordset à Nothing est de bon aloi).


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°618129
drasche
Posté le 21-01-2004 à 16:34:46  profilanswer
 

ah ben c'est pour ça que le datagrid est vide, c'est justement parce que tu as fermé ton recordset [:joce]


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°618137
art_dupond
je suis neuneu... oui oui !!
Posté le 21-01-2004 à 16:37:23  profilanswer
 

ben j'ai déjà eu des problèmes en ne le fermant pas, alors je le ferme.
 
je vais essayer en le laissant ouvert


---------------
oui oui
n°618138
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 21-01-2004 à 16:38:08  profilanswer
 

fais gaffe aux courants d'air si tu le laisses ouvert !
 
[:neowen]


---------------
J'ai un string dans l'array (Paris Hilton)
n°618154
drasche
Posté le 21-01-2004 à 16:41:51  profilanswer
 

art_dupond a écrit :

ben j'ai déjà eu des problèmes en ne le fermant pas, alors je le ferme.
 
je vais essayer en le laissant ouvert


tu DOIS le laisser ouvert, il n'y a aucun doute à avoir là dessus ;)
l'intérêt du recordset est que tu passes toujours par lui lorsque tu browses ton datagrid et qu'éventuellement tu modifies des données dedans. Tout se passe de manière transparente.


Message édité par drasche le 21-01-2004 à 16:42:45

---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
mood
Publicité
Posté le 21-01-2004 à 16:41:51  profilanswer
 

n°618158
art_dupond
je suis neuneu... oui oui !!
Posté le 21-01-2004 à 16:43:12  profilanswer
 

arf, je viens de comprendre.
 
le datagrid est lié à la base, c'est pourtant simple
 
sorry d'être neuneu :p
 
 
merci drasche :)


---------------
oui oui
n°618679
art_dupond
je suis neuneu... oui oui !!
Posté le 22-01-2004 à 10:08:43  profilanswer
 

yop le datagrid c'est bon...
 
par contre, j'arrive pas à le rendre éditable :(
 
j'ai trouvé un exemple sur le net ou le datagrid est éditable, mais en le copiant dans mon projet, il ne l'est plus :(  
 
et je ne vois pas ce qui le rend "editable" dans le code :(


---------------
oui oui
n°618684
drasche
Posté le 22-01-2004 à 10:15:07  profilanswer
 

c'est ton Execute qui te met dedans: il est prévu pour retourner un recordset et .|
Si tu veux avoir une chance d'updater:
 

Code :
  1. Set Rs = New ADODB.Recordset
  2. Call Rs.Open(query, CoConnection)


 
Attention, avec ça tu es connecté à la DB directement et les modifs se font en temps réel. Si tu veux éviter ça, il y a la technique des recordsets déconnectés.


Message édité par drasche le 22-01-2004 à 10:48:24

---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°618696
art_dupond
je suis neuneu... oui oui !!
Posté le 22-01-2004 à 10:34:43  profilanswer
 

yop merci,  
 
 
mais il me dit:
 

cette opération n'est pas autorisée sur un objet ayant une référence vers une connection non valide ou fermée.


 
 
Pourtant je n'ai changé que  
 
Set Rs = CoConnection.Execute(query)  
 
par ce que tu as donné. Donc à priori, la connection doit être bonne, non ?


Message édité par art_dupond le 22-01-2004 à 10:34:58

---------------
oui oui
n°618706
drasche
Posté le 22-01-2004 à 10:47:55  profilanswer
 

ah mais merde, quel distrait [:joce]
 
faut préciser l'objet connection en paramètre (juste après query)
j'ai édité mon précédent post.


Message édité par drasche le 22-01-2004 à 10:53:34

---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°618712
art_dupond
je suis neuneu... oui oui !!
Posté le 22-01-2004 à 10:57:56  profilanswer
 

yop voici le truc complet
 


Call Rs.Open(query, CoConnection, , adCmdTable)


 
encore merci monsieur :)


---------------
oui oui
n°618714
drasche
Posté le 22-01-2004 à 11:04:37  profilanswer
 

le adCmdTable est optionnel, et il est à spécifier si tu passes une query style "le_nom_de_ma_table", alors qu'avec une requête SQL, tu mettras plutôt adCmdText ;)


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°618719
art_dupond
je suis neuneu... oui oui !!
Posté le 22-01-2004 à 11:08:49  profilanswer
 

ah... en tout cas ca ne marche pas si je ne le mets pas... enfin bon.. ca marche, on va pas chipotter :p
 
 
merci beaucoup en tout cas


---------------
oui oui
n°618731
art_dupond
je suis neuneu... oui oui !!
Posté le 22-01-2004 à 11:23:04  profilanswer
 

argh... sorry mais ca marche pas en fait :p
 
je peux bien éditer, mais ca ne fait pas "vraiment" les changements dans la base.
 
je pourrais le faire en récupérant les valeurs, mais comme tu as dit que c'était sensé se faire tout seul :ange:


---------------
oui oui
n°618736
drasche
Posté le 22-01-2004 à 11:28:26  profilanswer
 

[:gratgrat]
 
essaie un Update ou UpdateBatch sur le recordset lorsque tu quittes ta fenêtre. Perso je travaille toujour par recordset déconnecté donc je sais pas comme ça se passe lorsque tu restes connecté.


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°618743
art_dupond
je suis neuneu... oui oui !!
Posté le 22-01-2004 à 11:33:37  profilanswer
 

yop ca marche :)
 
:jap:
 
 
ps: c'est ca un recordset déconnecté ?  
 
Private WithEvents rs As ADODB.Recordset


---------------
oui oui
n°618747
drasche
Posté le 22-01-2004 à 11:41:19  profilanswer
 

Non, ça c'est pour gérer les évènements émis par le recordset. Cela peut être utile si tu veux voir l'état de chargement d'un très gros recordset par exemple.
 
Un recordset déconnecté, comme son nom l'indique, est séparé de l'objet connection (on met la propriété ActiveConnection à Nothing). De cette manière, le recordset travaille de façon locale à 100%, mais les enregistrements chargés sont verrouillés côté DB.
 
Une fois que ton boulot est fini (tu fais des ajouts, modifications et suppressions, ce que tu veux), tu te reconnectes à la DB et tu te synchronises en faisant un UpdateBatch.  A l'occasion, je posterai une version épurée de mon code qui démontre cette technique fort utile.


Message édité par drasche le 22-01-2004 à 11:41:31

---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°618841
art_dupond
je suis neuneu... oui oui !!
Posté le 22-01-2004 à 13:15:25  profilanswer
 

yop yop  :)
 
 
 :jap:  
 
 
 :hello:


---------------
oui oui
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  datagrid éditable ?

 

Sujets relatifs
Afficher des infos dans une datagrid provenant de multi-tableafficher le contenu d'un requette SQL dans 1 DataGrid ou autre ?
Raffraichissement d'un DataGridDatagrid Vide
DataGrid et DataTableConnection à plusieurs tables avec un datagrid
[ VB.NET ] [ Datagrid ] - Impression "wysiwyg"Recordset ADO et DataGrid... Aidez moi!!!
Lignes en couleur dans un datagridRaffraichissement d'un DataGrid en VB6
Plus de sujets relatifs à : datagrid éditable ?


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)