Comment afficher le contenus d'une table en access dans une appl VB6

toufiqihaddou
Messages postés
38
Date d'inscription
jeudi 13 janvier 2011
Statut
Membre
Dernière intervention
23 juillet 2011
- 12 mai 2011 à 23:22
cs_Jack
Messages postés
14007
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
- 13 mai 2011 à 17:37
Salut tout le monde, j'ai ce code qui marche dans une application mais dans cette nouvelle appl non, elle s'affiche vide, est ce que j'ai oublier quelque chose, voici le code :

Dim rs As New Recordset



Private Sub Form_Load()
Set cn = New Connection
With cn
.Provider = "Microsoft.jet.oledb.4.0"
.ConnectionString = "Gestion de pharmacie.mdb"
.Open
End With
rs.CursorLocation = adUseClient
rs.Open "select * from [Medicament] order by LibelleMedicament", cn, adOpenStatic, adLockOptimistic
rs.Sort = "CodeMedicament ASC"
Set DataGrid1.DataSource = rs
End Sub



Merci de me donner la réponse svp...

11 réponses

cs_Jack
Messages postés
14007
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
78
13 mai 2011 à 02:10
Salut

De quel types (référence) sont tes variables cn ou rs ?
On le répète à tour de bras : DAO (Microsoft DAO 3.6 Object Library) est obsolète. Il faut utiliser ADODB (Microsoft ActiveX Data Objects 2.8 Library) - les méthodes sont pratiquement les mêmes, mais DAO ne fonctionne pas toujours, méfiance (surtout dans la méthode .Find).

Oui, tu as oublié de vérifier que la connexion était correcte avant de faire ta requête --> tester si cn.State = adStateOpen avant de poursuivre.

A quoi te sert le "Order By" dans la requête SQL puisque tu les réorganise lors du rs.Sort ?
Perso, je garderai le Order by et supprimerai le .Sort

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
toufiqihaddou
Messages postés
38
Date d'inscription
jeudi 13 janvier 2011
Statut
Membre
Dernière intervention
23 juillet 2011

13 mai 2011 à 02:42
Salut,

Oui, la connéction marche bien, seulement le Datagrid dans le formulaire n'affiche rien
0
toufiqihaddou
Messages postés
38
Date d'inscription
jeudi 13 janvier 2011
Statut
Membre
Dernière intervention
23 juillet 2011

13 mai 2011 à 02:43
le types (référence) sont tes variables cn ou rs c'est DAO (Microsoft DAO 3.6 Object Library)
0
toufiqihaddou
Messages postés
38
Date d'inscription
jeudi 13 janvier 2011
Statut
Membre
Dernière intervention
23 juillet 2011

13 mai 2011 à 03:40
Je vous envoie l'appl entière? et me renvoyé le résultat? je te fais confiance???
0

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

Posez votre question
cs_Jack
Messages postés
14007
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
78
13 mai 2011 à 10:29
"Oui, la connéction marche bien"
Il n'y a qu'en testant le .State que tu le sauras.

"le Datagrid dans le formulaire n'affiche rien"
Oui, mais est-ce que le RecordSet contient lui-même quelque chose ?
Que donne rs.RecordCount après le rs.Open ?

As-tu vérifié dans les doc que c'est comme ça qu'on envoie un RecordSet à une DataGrid ?

Je reviens sur ta syntaxe :
rs.Open
ça n'existe pas en DAO.
Revois ta syntaxe car elle ne peut pas fonctionner.

La première chose à faire en cas de problème (réflexe du programmeur) :
- Demander une compilation du programme avant exécution :
Sous VB6, il faut lancer l'apllication avec Ctrl-F5 et pas F5
Sous VBA, menu Débogage + Compilation
- Supprimer absolument tous les "On Error Resume Next" de ton programme.
Cette méthode de gestion de l'erreur masque toutes les erreurs et il devient impossible de les détecter. Elle ne doit être utilisée que dans certains cas très précis.
0
cs_Jack
Messages postés
14007
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
78
13 mai 2011 à 10:31
PS : Désolé, .State n'existe pas pour DAO
Impossible donc de vérifier que la connexion est correcte.
Vraiment, il vaudrait mieux passer à ADODB.
0
toufiqihaddou
Messages postés
38
Date d'inscription
jeudi 13 janvier 2011
Statut
Membre
Dernière intervention
23 juillet 2011

13 mai 2011 à 14:11
Salut,

Oui merci c'est ce que je vais faire, je vais changer la méthode, pour .State, il y a un débogage dans le programme lorsqu'il arrive à cette ligne, merci beaucoup pour vos réponses, si vous avez un exemple concret de ADODB pour le Datagrid, pouvez vous me le parvenir ?

A+
0
cs_Jack
Messages postés
14007
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
78
13 mai 2011 à 14:14
Les exemples, ce n'est pas ce qui manque.
Suffit de chercher "adodb datagrid" parmi les sources
0
toufiqihaddou
Messages postés
38
Date d'inscription
jeudi 13 janvier 2011
Statut
Membre
Dernière intervention
23 juillet 2011

13 mai 2011 à 15:29
D'accords, merci
0
toufiqihaddou
Messages postés
38
Date d'inscription
jeudi 13 janvier 2011
Statut
Membre
Dernière intervention
23 juillet 2011

13 mai 2011 à 17:29
Salut, ca y est, j'ai résolus le problème, j'ai utulisé Adodc pour afficher les données dans ma grid, merci
0
cs_Jack
Messages postés
14007
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
78
13 mai 2011 à 17:37
De rien.
ADODC appartien à la même famille (ADO) que ADODB.
0