A voir également:
- Interf. Visual basic 6.0->base Access 2000
- Visual basic - Télécharger - Langages
- Microsoft 365 basic - Accueil - Microsoft Office
- Microsoft visual c++ runtime - Guide
- Visual paradigm - Télécharger - Gestion de données
- Visual basic 6.0 download - Télécharger - Divers Utilitaires
10 réponses
romain_natiez
Messages postés
179
Date d'inscription
mardi 15 juin 2004
Statut
Membre
Dernière intervention
22 février 2006
31
22 juin 2004 à 11:26
22 juin 2004 à 11:26
c'est koi ton problème exact ?
c'est à dire avec kel objet tu veu faire la liaison avec access ou bien
quest-ce ke tu veu faire avec ton application?
Toi t'est au moins stagiare ! mdr 8-)
romain_natiez
c'est à dire avec kel objet tu veu faire la liaison avec access ou bien
quest-ce ke tu veu faire avec ton application?
Toi t'est au moins stagiare ! mdr 8-)
romain_natiez
Je pense que tu as inséré un contrôle Data dans ton application ce qui t'as permis d'accéder à ta base Access. Or, le contrôle Data fourni avec VB6 utilise la bibliothèque Microsoft DAO 3.51 (ce qui correspond à Access 97).
Pour accéder aux bases Access 97, 2000, il faut utiliser Microsoft DAO 3.6. Pour cela :
Menu Projet > Références > Coche Microsoft DAO 3.6 Object Library.
Remarques :
- Si tu n'utilise pas vraiment le contrôle Data mais que tu manipules directement les objets de ta base de données. Tu peux le supprimer de ton interface. VB6 a juste besoin de cette référence à DAO 3.6
- Les Services Packs ne résolvent pas ce "problème" puisqu'il s'agit d'une question de référence.
- Lors du déploiement du programme, il faudra vérifier que cette biliothèque est bien incluse.
Voilà tout
Beyes
Pour accéder aux bases Access 97, 2000, il faut utiliser Microsoft DAO 3.6. Pour cela :
Menu Projet > Références > Coche Microsoft DAO 3.6 Object Library.
Remarques :
- Si tu n'utilise pas vraiment le contrôle Data mais que tu manipules directement les objets de ta base de données. Tu peux le supprimer de ton interface. VB6 a juste besoin de cette référence à DAO 3.6
- Les Services Packs ne résolvent pas ce "problème" puisqu'il s'agit d'une question de référence.
- Lors du déploiement du programme, il faudra vérifier que cette biliothèque est bien incluse.
Voilà tout
Beyes
Bonjour
J'ai consulté votre réponse sur la connexion VB6 ET ACCESS 2000, et même en rajoutant le DAO 3.6 OBJECT LIBRARY , ca ne marche pas , mais moi ce qui me dérange c'est que j'ai pu ouvrir les bases qui sont incluses en exemple comme BIBLIO.MDB, mais dés que je crée une nouvelle base, il ne reconnait pas le format ;
alors SVP, eclairez-moi sur ce sujet
et merci d'avance
J'ai consulté votre réponse sur la connexion VB6 ET ACCESS 2000, et même en rajoutant le DAO 3.6 OBJECT LIBRARY , ca ne marche pas , mais moi ce qui me dérange c'est que j'ai pu ouvrir les bases qui sont incluses en exemple comme BIBLIO.MDB, mais dés que je crée une nouvelle base, il ne reconnait pas le format ;
alors SVP, eclairez-moi sur ce sujet
et merci d'avance
Quand on essaie d'ouvrir une base de données ACCESS 2000 avec VB6 on a le message format non reconnu n° d'erreur 3343, j'ai été obligé de la convertir en ACCESS 97 pour pouvoir l'utiliser. J'ai pensé que VB6 datant de 1997 et ACCESS 2000 datant de 2000 en principe cela s'expliquait et que dans un service pack il y aurait la solution. Mais ni le sercice pack3, ni le pack4 ne résolvent le problème.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
heu, ça fait longtemps que j'ai pas fait ça, mais je me souviens d'un problème similaire. En gros c'était une histoire de version de drivers.
J'utilisait les objets ADO, pour se connecter à access 2000 ça donnait à peu près ça (de mémoire et avec un vieux bout de code):
etc. etc.
Alors c'est pas forcement la même syntaxe avec DAO, mais l'idée est là, j'espère que ça vous donera une bonne piste ;)
J'utilisait les objets ADO, pour se connecter à access 2000 ça donnait à peu près ça (de mémoire et avec un vieux bout de code):
dim cn As ADODB.Connection
Set cn = New ADODB.Connection
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=uneBDD.mdb"
etc. etc.
Alors c'est pas forcement la même syntaxe avec DAO, mais l'idée est là, j'espère que ça vous donera une bonne piste ;)
il faut utiliser la connection ado pour pouvoir connecter via un data une base access 2000.
Ou alorssimplement en creant les objets data directement en code.
Ou alorssimplement en creant les objets data directement en code.
Svp, j'ai tout essyé mais tjs le problème persiste quand je connecte ma base access 2000 et vb6 par le controle DATA
sam3000
Messages postés
1225
Date d'inscription
mercredi 22 décembre 2004
Statut
Membre
Dernière intervention
13 juin 2005
144
9 mai 2005 à 11:09
9 mai 2005 à 11:09
Un conseil : changer en ADO (code ou objets) au lieu du DATA, c'est plus stable et ça supporte toutes les version d'Access
sam3000
Messages postés
1225
Date d'inscription
mercredi 22 décembre 2004
Statut
Membre
Dernière intervention
13 juin 2005
144
9 mai 2005 à 11:10
9 mai 2005 à 11:10
Exemple:
dans une FORM tu met une boite TEXT (text1) et le code suivant (je suppose que ta base est dans le meme dossier que le projet VB, et le fichier est "db1.mdb"):
dans une FORM tu met une boite TEXT (text1) et le code suivant (je suppose que ta base est dans le meme dossier que le projet VB, et le fichier est "db1.mdb"):
dim cnx as ADODB.connection dim rst as ADODB.recordset sub form_load() set cnx=new ADODB.connection cn.Open "Driver={Microsoft Access Driver (*.mdb)};Dbq=" + App.Path + "\db1.mdb;" If cnx.State = adStateOpen Then Set rst = New ADODB.Recordset rst.Open "select champ1 from table1", cnx text1.text="" While Not rst.EOF text1.text=text1.text+Str(rst.Fields(0).Value)+vbcrlf rst.MoveNext Wend rst.Close Set rst = Nothing cnx.close end if set cnx=nothing end sub
Bonjour,
j'ai eu ce problème avec une base access 2003, lié à une requête faisant appel à une fonction VBA. le résultat de la requête est envoyé dans un fichier excel.
j'ai donc créé une instance access sous vb6 et ceci à résolu mon problème.
Les références à intégrer sont : (menu Projet, Item Références...)
Microsoft Excel 11.0 Object Library
Microsoft Accessl 11.0 Object Library
Microsoft DAO 3.6 Object Library
Voici le code de la fonction qui lance access et bon courage
Sub LanceIntanceAccess()
Dim appAccess As New Access.Application
' ++++++++++++++++++++++++++++++++++++++++++++++++++++++
' NombaseAccess : nom complet et Path de la base Access à ouvrir
' MaRequete : nom de la requête access à exécuter
' Vérifie si le fichier Excel existe déjà et le supprime
' CheminDuFichier : nom complet et path du fichier excel
' ------------------------------------------------------
If Dir(CheminDuFichier) > "" Then
Kill CheminDuFichier
End If
On Error Resume Next
' ----------------------------------
' Création de l'instance Access 2003, cela fonctionne aussi pour les autres versions d'access
' ----------------------------------
Set appAccess = New Access.Application
On Error GoTo LanceIntanceAccessErreur
appAccess.Visible = False ' access ne sera pas visible sinon mettre à True
' -------------------------------
' Ouverture de la base de données
' -------------------------------
appAccess.OpenCurrentDatabase NombaseAccess, False
' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
' Exécution et transfert des données dans le fichier excel
' --------------------------------------------------------
appAccess.DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, MaRequete, CheminDuFichier
' ++++++++++++++++++++
' Gestion des messages ' c'est une procédure simple (TraiteMessage) qui écrit les message dans un fichier .log
' le fichier est ouvert puis fermé à chaque écriture.
' --------------------
TraiteMessage "Les résultats de " & MaRequete & " sont dans le fichier " & CheminDuFichier
' ++++++++++++++++++++++++++++++
' Quite proprement l'application
' ------------------------------
appAccess.CloseCurrentDatabase
appAccess.Quit
Set appAccess = Nothing
Exit Sub
LanceIntanceAccessErreur:
If Not (appAccess Is Nothing) Then ' L'application est toutefois lancée donc ...
appAccess.Quit
Set appAccess = Nothing
End If
TraiteMessage "Fin ANORMALE du Traitement de " & MaRequete
End Sub
j'ai eu ce problème avec une base access 2003, lié à une requête faisant appel à une fonction VBA. le résultat de la requête est envoyé dans un fichier excel.
j'ai donc créé une instance access sous vb6 et ceci à résolu mon problème.
Les références à intégrer sont : (menu Projet, Item Références...)
Microsoft Excel 11.0 Object Library
Microsoft Accessl 11.0 Object Library
Microsoft DAO 3.6 Object Library
Voici le code de la fonction qui lance access et bon courage
Sub LanceIntanceAccess()
Dim appAccess As New Access.Application
' ++++++++++++++++++++++++++++++++++++++++++++++++++++++
' NombaseAccess : nom complet et Path de la base Access à ouvrir
' MaRequete : nom de la requête access à exécuter
' Vérifie si le fichier Excel existe déjà et le supprime
' CheminDuFichier : nom complet et path du fichier excel
' ------------------------------------------------------
If Dir(CheminDuFichier) > "" Then
Kill CheminDuFichier
End If
On Error Resume Next
' ----------------------------------
' Création de l'instance Access 2003, cela fonctionne aussi pour les autres versions d'access
' ----------------------------------
Set appAccess = New Access.Application
On Error GoTo LanceIntanceAccessErreur
appAccess.Visible = False ' access ne sera pas visible sinon mettre à True
' -------------------------------
' Ouverture de la base de données
' -------------------------------
appAccess.OpenCurrentDatabase NombaseAccess, False
' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
' Exécution et transfert des données dans le fichier excel
' --------------------------------------------------------
appAccess.DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, MaRequete, CheminDuFichier
' ++++++++++++++++++++
' Gestion des messages ' c'est une procédure simple (TraiteMessage) qui écrit les message dans un fichier .log
' le fichier est ouvert puis fermé à chaque écriture.
' --------------------
TraiteMessage "Les résultats de " & MaRequete & " sont dans le fichier " & CheminDuFichier
' ++++++++++++++++++++++++++++++
' Quite proprement l'application
' ------------------------------
appAccess.CloseCurrentDatabase
appAccess.Quit
Set appAccess = Nothing
Exit Sub
LanceIntanceAccessErreur:
If Not (appAccess Is Nothing) Then ' L'application est toutefois lancée donc ...
appAccess.Quit
Set appAccess = Nothing
End If
TraiteMessage "Fin ANORMALE du Traitement de " & MaRequete
End Sub