Problème d'accès à une base Access via VB6 (erreur 13)

Problème d'accès à une base Access via VB6 (erreur 13) - VB/VBA/VBS - Programmation

Marsh Posté le 09-06-2006 à 22:45:18    

Bonjour ! j'ai cherché un sujet où poser ma question mais pas trouvé...alors j'espère ne pas faire d'erreur en ouvrant celui-ci.
Je suis en train de programmer une application sous VB6 et je dois faire accès à une base de données Access. Pour ça je me sers d'un code écrit pour une autre application, mais dans la mienne, ça ne marche pas...
 
Voilà le contexte : je veux faire appel à la table Utilisateurs de la base Base.
 
Dans le module_BAS j'ai déclaré ça :
 
    Public wrkJet As Workspace
    Public db As Database
    Public RsUsers As Recordset
    Global Const bd As String = "D:\BaseAccesDistance.mdb"
 
Et dans la feuille où j'ai besoin de l'appel :
 
    Set wrkJet = CreateWorkspace("", "admin", "", dbUseJet)
    Set db = wrkJet.OpenDatabase(bd, _
      False)
     
    Set RsUsers = db.OpenRecordset("Utilisateurs" )
    RsUsers.MoveFirst
 
Au niveau de l'avant dernière ligne j'ai l'erreur 13 "Type incompatible"...
J'ai aussi tenté la commande      Set RsUsers = db.OpenRecordset("Utilisateurs", dbOpenTable) mais idem.
Le problème ne vient a priori pas de ma base, car si je la place dans l'autre application je n'ai pas de problème. Par contre en prenant une base déjà existante j'ai toujours le problème.
 
C'est peut être tout bête, je ne sais pas ; je suis débutante dans ce langage...et un peu impuissante car j'ai fini par vraiment recopier le code de l'autre application et toujours le même problème. Mon maître de stage, plus calé que moi, n'a pas eu d'illumination non plus...alors je fais appel ici en espérant que quelqu'un puisse me dépanner car je vais avoir beaucoup d'accès de ce type à faire !
 
Merci d'avance...

Reply

Marsh Posté le 09-06-2006 à 22:45:18   

Reply

Marsh Posté le 09-06-2006 à 23:32:40    

Tout le monde a démarré +/- comme toi, en examinant le code des autres, par contre pour une novice les bases de données ce n'est pas le plus simple
Bref qqs liens ( certains en Anglais ) qui pourraient t'aider
 
http://jacma.developpez.com/
http://www.vb-helper.com/AdoTalk.htm
http://www.vb-helper.com/index_categories.html
http://www.vb-helper.com/index_database.html
 
Chaines de connexion
http://www.carlprothman.net/Default.aspx?tabid=81
 

Reply

Marsh Posté le 10-06-2006 à 00:04:37    

Merci je regarderai en détail demain car mes yeux refusent de rester plus longtemps devant un PC (j'ai déjà exploré le premier site pendant mes heures de galère sur ce problème ou d'autres, résolus ceux-la !!)
En ce qui concerne les bases de données je connais déjà, j'ai eu des cours, et access c'est pas très compliqué de s'y adapter (surtout quand tu as aussi un exemple de BD).
Le problème vient donc plutôt de VB, de ce qu'il faut aller chercher comme références pour accéder à certains trucs....j'ai fini par trouver aussi, sauf pour là, ou e problème vient de je ne sais ou !

Reply

Marsh Posté le 10-06-2006 à 03:19:43    

Lire l'aide en ligne concernant l'erreur 13  
je ne connais pas la manière dont tes champs Access ont été déclarés ni comment ils sont récupérés sous VB6 et mon humble avis le pb est là


Message édité par kiki29 le 10-06-2006 à 03:22:52
Reply

Marsh Posté le 10-06-2006 à 10:48:49    

belsuncette a écrit :


Dans le module_BAS j'ai déclaré ça :
 
    Public wrkJet As Workspace
    Public db As Database
    Public RsUsers As Recordset
    Global Const bd As String = "D:\BaseAccesDistance.mdb"


 
Essaye de déclarer ta variable RsUser comme ceci:
 

Code :
  1. Public RsUsers as DAO.RecordSet


 
kenavo,
 
Jean-Marc


---------------
OtObOxBlOg - - - Etre seul à avoir tort  c'est plus difficile, mais c'est bien plus beau que d'avoir raison avec une bande de cons
Reply

Marsh Posté le 10-06-2006 à 23:33:07    

Merci aussi pour la réponse, malheureusement pas encore pu la tester :S
Chez moi je n'ai pas encore visual basic, je suis en attente d'un mot de passe pour le télécharger ! Alors bon au pire je vois ça lundi mais en tout cas merci et je donnerai le résultat !

Reply

Marsh Posté le 12-06-2006 à 11:10:46    

Impeccable ça marche...merci beaucoup OtObOx ! Je cherche maintenant comment construire un masque de saisie pour adresse IP dans Access, si tu as une culture étendue aussi à ça ;)
Merci en tout cas ça fait plaisir d'arriver au boulot le lundi matin et de commencer par une victoire !!!

Reply

Marsh Posté le 12-06-2006 à 18:13:09    

Ravi de t'avoir aidé :)
Pour ton masque de saisie, tu peux essayer dans load_form ceci:

Code :
  1. textboxNom.inputmask="999.999.999"


Le plus simple est que tu définisses directement dans Access le masque du champ de la table.
 
kenavo,
 
Jean-Marc


---------------
OtObOxBlOg - - - Etre seul à avoir tort  c'est plus difficile, mais c'est bien plus beau que d'avoir raison avec une bande de cons
Reply

Marsh Posté le 12-06-2006 à 21:46:28    

En fait je l'avais défini dans access et ça me faisait des merdes, et puis mon responsable de stage voulait le meme genre de truc avec une nuance et finalement ça compliquait trop alors j'ai gardé ma solution.
Encore merci ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed