Problème de Compatibilité dans VB6

Résolu
ZORTRE Messages postés 7 Date d'inscription lundi 29 juillet 2013 Statut Membre Dernière intervention 14 février 2018 - 29 juil. 2013 à 20:21
ZORTRE Messages postés 7 Date d'inscription lundi 29 juillet 2013 Statut Membre Dernière intervention 14 février 2018 - 3 août 2013 à 00:47
Salut!
J'ai un souci concernant la connexion à une base de donnée plus précisément avec Recordset, voici mon code:
 Option Explicit
Dim bd As Database
Dim rs As Recordset

Private Sub Form_Load()

   Set bd = OpenDatabase(App.Path & "\" & "MaBase.mdb")
   Set rs = bd.OpenRecordset("Tab_But", dbOpenDynaset)


Après exécusion, on m'affiche cette erreur : Type Incompatible
Et l'erreur concerne ce code
Set rs = bd.OpenRecordset("Tab_But", dbOpenDynaset)


Ma seconde préoccupation, est que dans la même application, j'ai utilisé le Composant WindowsMediaPlayer, au début cela marchait à merveille mais, depuis hier je n'arrive plus à joueur une chanson avec; au fait, ça marche pas et on m'affiche aucune erreur.
Merci pour votre compréhension.

4 réponses

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
29 juil. 2013 à 21:37
Bonsoir,

Une question par message.

DAO est à ééviter, il est obsolète depuis longtemps, préfères utiliser ADO.
Sinon, si ADO et DAO sont référencé dans ton projet, il faut dire au quel il faut utiliser le Recordset.
0
ZORTRE Messages postés 7 Date d'inscription lundi 29 juillet 2013 Statut Membre Dernière intervention 14 février 2018
2 août 2013 à 21:17
S'il vous plaît NHenry, je voudrais avoir une explication à propos de votre intervention dans laquelle vous dites: <si ADO et DAO sont référencé dans ton projet, il faut dire au quel il faut utiliser le Recordset.>.
Au fait, en vérité je ne sais pas comment je m'y prendre.
Merci pour votre compréhension!

ZORTRE
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
2 août 2013 à 21:55
Salut

DAO est le type de moteur utilisé lorsqu'on dimensionne des objets "As Database" ou "As RecordSet"
DAO est obsolète (dépassé) et toutes ses fonctions ne sont pas opérationnelles, notamment sa méthode .Find.
Il faut utiliser ADODB : Ajoute une référence à "Microsoft ActiveX Data Objects 2.8 Library" qui est le fichier "msado28.tlb".
Ensuite, dimensionne tes objets comme :
Dim db As ADODB.Connection
Dim rs As ADODB.RecordSet
Tu trouveras des exemples parmi les sources sur le site, car il te faudra trouver la chaine de connexion correcte (ConnectionString) pour la connexion initiale.

Quant à ton erreur sur :
bd.OpenRecordset("Tab_But", dbOpenDynaset)
cela vient du fait que dbOpenDynaset signifie que tu veux ouvrir une requête déjà présente dans ta base de données (procédure stockée).
Voir rs.Open sous ADODB

Encore une fois, de multiples exemples existent parmi les sources disponibles sur le site : Charges-en quelques une et tu sauras vite comment faire !
0
ZORTRE Messages postés 7 Date d'inscription lundi 29 juillet 2013 Statut Membre Dernière intervention 14 février 2018
3 août 2013 à 00:47
Merci beaucoup!
0
Rejoignez-nous