Interf. Visual basic 6.0->base Access 2000

Fermé
chicco - 21 juin 2004 à 20:34
 cours statiatique - 14 mai 2009 à 22:09
monsieur s
j'ai un probleme pour faire la connection entre mon interface developpe avec visual basic 6.0 et ma base cree en access 2000.
comment resoudre ce probleme en une base hors v.b.

merci
A voir également:

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
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
1
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
1
Bonjour,

J'ai le même problème de format non reconnu...
J'ai fait comme vous avez dit, à savoir, utilisé Microsoft DAO 3.6.
Mais le problème persiste...
Pourriez-vous m'aider s'il vous plait?
Par avance merci!
0
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
0
cours statiatique
14 mai 2009 à 22:09
je peut chercher les cours statistique
1
PERRIN Victor
24 juil. 2004 à 14:17
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.
0

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):
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 ;)
0
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.
0
Svp, j'ai tout essyé mais tjs le problème persiste quand je connecte ma base access 2000 et vb6 par le controle DATA
0
J'aile même problème mais en utilisant Access 2003
0
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
Un conseil : changer en ADO (code ou objets) au lieu du DATA, c'est plus stable et ça supporte toutes les version d'Access
0
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
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"):

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
0
Bonjour,
J'ai le meme probléme j'utilise une base des données sous access2003 et je n'arrive pas à executer mon programme sous VB6. J'ai essayé avec DAO 3.6 mais pas de solution. Que faire svp
0
kurodo > ZAIANE
7 nov. 2008 à 10:27
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
0