Afficher resultat requete sql dans datagrid

Résolu
La.Cata Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -  
Milou2211 Messages postés 35 Date d'inscription   Statut Membre Dernière intervention   -
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.
A voir également:

1 réponse

Milou2211 Messages postés 35 Date d'inscription   Statut Membre Dernière intervention   11
 
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   Statut Membre Dernière intervention   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é)
0
Milou2211 Messages postés 35 Date d'inscription   Statut Membre Dernière intervention   11 > La.Cata Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   1 > Milou2211 Messages postés 35 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   11 > La.Cata Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
BRAVO.

Bonne continuation.
0