Afficher resultat requete sql dans datagrid

Résolu/Fermé
La.Cata Messages postés 4 Date d'inscription vendredi 13 juin 2008 Statut Membre Dernière intervention 18 juin 2008 - 16 juin 2008 à 19:29
Milou2211 Messages postés 35 Date d'inscription mardi 29 avril 2008 Statut Membre Dernière intervention 14 septembre 2008 - 19 juin 2008 à 10:20
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

Milou2211 Messages postés 35 Date d'inscription mardi 29 avril 2008 Statut Membre Dernière intervention 14 septembre 2008 11
16 juin 2008 à 21:09
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 ?
0
La.Cata Messages postés 4 Date d'inscription vendredi 13 juin 2008 Statut Membre Dernière intervention 18 juin 2008 1
16 juin 2008 à 21:30
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é)
0
Milou2211 Messages postés 35 Date d'inscription mardi 29 avril 2008 Statut Membre Dernière intervention 14 septembre 2008 11 > La.Cata Messages postés 4 Date d'inscription vendredi 13 juin 2008 Statut Membre Dernière intervention 18 juin 2008
17 juin 2008 à 07:52
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)
0
La.Cata Messages postés 4 Date d'inscription vendredi 13 juin 2008 Statut Membre Dernière intervention 18 juin 2008 1 > Milou2211 Messages postés 35 Date d'inscription mardi 29 avril 2008 Statut Membre Dernière intervention 14 septembre 2008
18 juin 2008 à 22:24
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.
0
Milou2211 Messages postés 35 Date d'inscription mardi 29 avril 2008 Statut Membre Dernière intervention 14 septembre 2008 11 > La.Cata Messages postés 4 Date d'inscription vendredi 13 juin 2008 Statut Membre Dernière intervention 18 juin 2008
19 juin 2008 à 10:20
BRAVO.

Bonne continuation.
0