begin process at 2008 08 22 05:06:06
1 229 775 membres
46 nouveaux aujourd'hui
14 267 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Besoin d'aide : VB6 & Requete Access [ Base de données / SQL ] (eupeup)

Besoin d'aide : VB6 & Requete Access le 07/03/2007 11:37:43

eupeup

Bonjour à tous,

j'ai un petit souci, j'ai codé en VBA sous excel une application qui va récupérer des données dans une base de données Access puis je traite mes données et je les retourne dans la base, sous excel mon projet fonctionne super bien.
Du coup j'ai voulu migrer de VBA vers VB6 et là j'ai un problème, donc en VBA je procédais de la manière suivante pour requêter  :
'----------------------------------------------------
Dim bds As DAO.Database
Dim rst As DAO.Recordset

Set bds = OpenDatabase("U:\COMMUN\MOAL Panorama\PAPENEL\OATTEC10\TEC10.mdb",  
                       False,False)

Req0$ = "Select * From VerifInstrument Where INSTRUMENTID = '" & p_IdDeal & "'"

Set rst = bds.OpenRecordset(Req0$)
'----------------------------------------------------
Jusque là c'est classique, après je traite les données que je récupère, enfin bon ca fonctionne bien sous excel.

Qd je migre le code sous VB6 j'ai une erreur qd la procédure arrive sur l'instruction :

Dim bds As DAO.Database


L'erreur est du type :
"Erreur de compilation : Type défini par l'utilisateur non defini"

J'imagine qu'il y a des compléments ou une librairie à importer en vba pour supporter le code propre à access(comme sous excel d'ailleurs), enfin je sais pas, donc si qlqu'un peut m'aider ce serait vraiment cool...

Merci d'avance
Eupeup





Re : Besoin d'aide : VB6 & Requete Access le 07/03/2007 12:21:51

ZedMaTrix
Salut.

Tu doit ajouter dans les références de ton projet 'Microsoft DAO 2.5/3.51 Compatibility Library'.

Dans VB6, ouvre ton projet, puis dans le menu Projet -> Références
Dans la fenêtre, recherche Microsoft DAO 2.5/3.51 Compatibility Library et coche le.

ZedMaTriX

Re : Besoin d'aide : VB6 & Requete Access le 07/03/2007 14:56:47

eupeup
Merci ZedMatrix, maintenant je n'ai plus ce type d'erreur, par contre VB6 me balance un nouveau message d'erreur lors de l'ouverture de la base :

C'est au niveau de l'instruction :

Set bds = OpenDatabase("U:\COMMUN\TEC10.mdb")

Et le message d'erreur est le suivant :

Erreur d'exécution 3343:
Format de base de données ('U:\COMMUN\TEC10.mdb') non reconnu


Là je comprends vraiment pas, parce qu'en VBA sous excel c'est exactement la même instruction, et je n'ai aucun problème, ca marche trop bien...
Si qlqu'un a une piste...!?!

Merci d'avance

Eupeup

Re : Besoin d'aide : VB6 & Requete Access le 07/03/2007 15:07:35

domsig

bonjour

peut-être faut-il que tu réenregistres ta base mdb dans un format compréhensible par VB ? je crois que VB6 lit jusqu'à access2002 mais je n'en suis pas plus sûr que ça en fait...

 

bon courage

Allez voir mon site !
http://www.amis-marolles.org
le site d'une association s'occupant de patrimoine et de traditions


Re : Besoin d'aide : VB6 & Requete Access le 07/03/2007 19:11:43

ZedMaTrix
Tout à fait domsig !
Il faut faire attention au format de la base Access. Moi sous windows 2000 avec Access 2000 Vb fonctionne, aprés je croix pas que ca fonctionne.

Convertis ( aprés avoir fais une sauvegarde ) ta base en access 2000

ZedMaTriX

Re : Besoin d'aide : VB6 & Requete Access le 07/03/2007 19:28:20

HUGOFLASH
Bonjour,
pour que le format de ta base soit reconnu il faut que tu face référence à Microsoft DAO 6.0 Compatibility Library

les versions antérieur ne supporte pas les bases au format ACCESS 2000 et supérieur.

Re : Besoin d'aide : VB6 & Requete Access le 08/03/2007 11:10:22

eupeup
Réponse acceptée !

Merci à tous, en fait j'ai trouvé mais j'ai procédé autrement

Si ca interesse qlqu'un, vla le code que j'ai :

Dim Cndata As ADODB.Connection
Dim rst As ADODB.Recordset
Dim Sql As String
Dim requete As ADODB.Command

'Instancie la connexion
Set Cndata = New ADODB.Connection
Cndata.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data   
                           Source=U:\COMMUN\PAPENEL\TEC10\TEST_ACCESS\TEC10.mdb;"
                           & "Mode=Share Deny Write;" & "Persist Security
                           Info=False"

Cndata.Open
   
'on instancie le recordset
Set rst = New ADODB.Recordset
   
'on crée l'objet command
'on l'instancie
Set requete = New ADODB.Command
'1ERE METHODE   
requete.CommandType = adCmdTable
requete.CommandText = "[VolatPast]"
'2EME METHODE  
Sql = "Select * From VerifInstrument Where INSTRUMENTID = '" & p_IdDeal & "'"

'Ouverture du recordset
rst.Open Sql, Cndata, adOpenDynamic, adLockBatchOptimistic


Dim test As String
'Récupération d'un attribut du premier n-upplet
test = rst.Fields!Product





Et ca marche nikel!!!!

Bye



Classé sous : vba, access, données, vb6, excel

Participer à cet échange

Pub



Appels d'offres

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS