Afficher resultat requete sql dans datagrid [Résolu/Fermé]

Signaler
Messages postés
4
Date d'inscription
vendredi 13 juin 2008
Statut
Membre
Dernière intervention
18 juin 2008
-
Messages postés
35
Date d'inscription
mardi 29 avril 2008
Statut
Membre
Dernière intervention
14 septembre 2008
-
Bonjour,
Je debute sous VB 6 et j'aimerai afficher le résultat d'une requete sql dans un datagrid. J'ai mis ma requete dans une variable string nommée requete. Sur un site j'ai obtenu le code suivant :

Sub remplir_grid()
Dim sql As String
Dim ds As DataSet
String = "execute" & requete
DataSet = c.GetDatta(sql)
Try
MaDataGrid.DataSource = ds
MaDataGrid.DataBind()
Catch ex As Exception
End Try
End Sub

Seulement j'obtiens une erreur de compilation ligne 8 ( expression = attendue). Du coup je suis bloqué. Si quelqu'un pouvait me dire ce qui cloche ou me donner une autre manière d'y arriver ça me sauverait la vie.

1 réponse

Messages postés
35
Date d'inscription
mardi 29 avril 2008
Statut
Membre
Dernière intervention
14 septembre 2008
9
Bonjour,

J'ai une astuce plus directe :

1. je crée un dataenvironnement dans lequel je crée ma connexion à la base de données access, et les commandes (tables et requêtes) dont j'aurai besoin.

intérêt : pas de code à écrire, ouverture et fermeture de la connexion gérées par VB en direct, respectivemet lors de l'exécution et lors de l'arrêt de l'exécution.

2. dessin du datagrid dans mon formulaire

3. dans l'évènement form_load, ajout des informations de connexion du datagrid :

Private Sub Form_Load()

Set Me.DataGrid1.DataSource = DataEnvironment1 'nom de l'environnement de données créé
Me.DataGrid1.DataMember = "tquestions" 'nom de la commande créé dans le dataenvironment1

End Sub

4. exécution du formulaire : chargement automatique des données dans les colonnes

Cela répond-il à ta question ?
Messages postés
4
Date d'inscription
vendredi 13 juin 2008
Statut
Membre
Dernière intervention
18 juin 2008
1
Plus ou moins. En fait j'ai créé une procédure de recherche (affectée à un bouton) dans une table qui génère en fonction des critères de recherche une requete sql (select * from table where <critères>). Cette partie marche sans probleme. Il ne reste plus qu'à l'exécuter et à afficher les résultats dans le datagrid. Ta méthode marche mais elle n'agit qu'au chargement de la feuille. Y a-t-il un moyen de l'adapter, je n'y arrive pas (quand j'ai essayé le datagrid s'est vidé)
Messages postés
35
Date d'inscription
mardi 29 avril 2008
Statut
Membre
Dernière intervention
14 septembre 2008
9 >
Messages postés
4
Date d'inscription
vendredi 13 juin 2008
Statut
Membre
Dernière intervention
18 juin 2008

Normal qu'elle ne foncionne qu'au chargement de la feuille : la procédure est inclue dans l'évènment form_load.

Il vaudrait donc mieux déplacer le chargement du datagrid dans l'évènement bouton_clic()

De plus, le résultat étant dynamique, il faut penser à remettre à blanc le datagrid avant chargement.

Ceci est un exemple rapide à insérer dans le bouton_clic, mais je pense que l'on peut encore mieux faire.
Me.DataGrid1.DataMember = ""
Set Me.DataGrid1.DataSource = DataEnvironment1 'nom de l'environnement de données créé
Me.DataGrid1.DataMember = "tquestions" 'nom de la commande créé dans le dataenvironment1 (ta requête SQL)
Messages postés
4
Date d'inscription
vendredi 13 juin 2008
Statut
Membre
Dernière intervention
18 juin 2008
1 >
Messages postés
35
Date d'inscription
mardi 29 avril 2008
Statut
Membre
Dernière intervention
14 septembre 2008

Cooooooooool ça tourne ! Ah ça fait plaisir. En fait quand j'ai mis ton code, la première exécution a marché mais après impossible de rafraichir le datagrid (un chichi de vb que j'ai pas compris du tt) du coup j'ai essayé plutot de rafraichir l'Adodc. Ce qui donne

Adodc.RecordSource = requete ' où requete contient le code sql
Adodc.Refresh

Maintenant ça marche au poil. Merci pour tout, j'avais franchement pas pensé à utiliser l'adodc de cette manière.
Messages postés
35
Date d'inscription
mardi 29 avril 2008
Statut
Membre
Dernière intervention
14 septembre 2008
9 >
Messages postés
4
Date d'inscription
vendredi 13 juin 2008
Statut
Membre
Dernière intervention
18 juin 2008

BRAVO.

Bonne continuation.