Vb et connexion access2003
ahmed
-
Polux31 Messages postés 7219 Statut Membre -
Polux31 Messages postés 7219 Statut Membre -
Bonjour,
Je développe une application VB6 sur la plate forme d'un Windows XP SP3 et je n'arrive pas à me connecter à la base que j'ai créée dans Access 2003. Il me dit qu'il ne reconnaît pas le format de la base. J'ai essayé avec d'autres codes mais rien à faire. Pouvez-vous m'aider ?
Je vous envoie les codes que j'ai utilisés :
Code 1:
Private Sub Form_Load()
Dim dbs As Database
Set dbs = OpenDatabase("C:\;yDB.mdb")
If dbs.Connect <> 0 Then
MsgBox "parfait"
Else
MsgBox "error"
End If
End Sub
Affiche l'erreur suivante:
Erreur d'exécution '3343':
Format de base de données ('C:\myDB.mdb') non reconnu.
Code 2:
Private Sub Form_Load()
Dim dbs As ADODB.Connection
Set dbs= New ADODB.Connection
cnx.Provider = "Microsoft.Jet.Oledb.4.0"
cnx.ConnectionString = "C:\myDB.mdb"
dbs.Open
End Sub
Affiche l'erreur suivante:
Erreur de compilation
Type défini par l'utilisateur non défini (ADODB.Connection)
Je développe une application VB6 sur la plate forme d'un Windows XP SP3 et je n'arrive pas à me connecter à la base que j'ai créée dans Access 2003. Il me dit qu'il ne reconnaît pas le format de la base. J'ai essayé avec d'autres codes mais rien à faire. Pouvez-vous m'aider ?
Je vous envoie les codes que j'ai utilisés :
Code 1:
Private Sub Form_Load()
Dim dbs As Database
Set dbs = OpenDatabase("C:\;yDB.mdb")
If dbs.Connect <> 0 Then
MsgBox "parfait"
Else
MsgBox "error"
End If
End Sub
Affiche l'erreur suivante:
Erreur d'exécution '3343':
Format de base de données ('C:\myDB.mdb') non reconnu.
Code 2:
Private Sub Form_Load()
Dim dbs As ADODB.Connection
Set dbs= New ADODB.Connection
cnx.Provider = "Microsoft.Jet.Oledb.4.0"
cnx.ConnectionString = "C:\myDB.mdb"
dbs.Open
End Sub
Affiche l'erreur suivante:
Erreur de compilation
Type défini par l'utilisateur non défini (ADODB.Connection)
A voir également:
- Vb et connexion access2003
- Gmail connexion - Guide
- Connexion chromecast - Guide
- Gmail connexion autre compte - Guide
- Vb - Télécharger - Langages
- Site inaccessible n'autorise pas la connexion - Guide
4 réponses
Bonjour
essaies
basé sur du VBA, donc... en VBA si tu utilises ta syntaxe "new ado...", il faut cocher la bibiothèque "Microsoft ActiveX Data Object ...." dans outils- références, je ne sais pas si équivalent en Vb
Michel
essaies
Dim dbs As Object
Set dbs = CreateObject("ADODB.Connection")
fichier = "C:\myDB.mdb"
dbs.Open "Provider = Microsoft.Jet.OLEDB.4.0;" & _
"data source=" & fichier & ";"
basé sur du VBA, donc... en VBA si tu utilises ta syntaxe "new ado...", il faut cocher la bibiothèque "Microsoft ActiveX Data Object ...." dans outils- références, je ne sais pas si équivalent en Vb
Michel
Bonjour,
Oui Michel, il faut référencé Microsoft ActiveX Data Library x.xx même en VB6.
Voilà un exemple de module qui permet de se connecter à une base Access, de passer une requête à la base et de parcourir un recordset.
Bonne continuation.
Oui Michel, il faut référencé Microsoft ActiveX Data Library x.xx même en VB6.
Voilà un exemple de module qui permet de se connecter à une base Access, de passer une requête à la base et de parcourir un recordset.
Option Explicit
Private AdoCnx As ADODB.Connection
Private rs As Recordset
Private CmdSql As ADODB.Command
'Chemin de la base de donnée à mettre ci dessous
Private Const BDD = "C:\bd\maBase.mdb"
Public Function ConnectBdd()
Dim CnxString As String
On Error Resume Next
Set AdoCnx = New ADODB.Connection
If AdoCnx.State = adStateOpen Then
MsgBox "La connection est déjà ouverte"
Exit Function
End If
'======== Ouverture Access ============'
CnxString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & BDD & ";" & _
"Persist Security Info=False"
AdoCnx.Open CnxString
AdoCnx.CursorLocation = adUseClient
'Gestion de l'exception
If Err <> 0 Or AdoCnx.State = adStateClosed Then
MsgBox "Connection impossible avec la base"
Exit Function
End If
End Function
'Passage d'une requete par un recordset. Le recordset est passé en référence dans les paramètres de la fonction
Public Function OuvrirRecordset(ByVal Requete As String, ByRef rs As ADODB.Recordset) As Boolean
On Error Resume Next
On Error Resume Next
rs.Open Requete, ModBdd.AdoCnx, , , adCmdText
If Err > 0 Then
OuvrirRecordset = False
Exit Function
End If
rs.MoveFirst
OuvrirRecordset = True
End Function
'Fonctions permettant de parcourir un recordset passé en paramètre.
Public Function RSLireSuivant(ByRef rs As ADODB.Recordset) As Boolean
On Error Resume Next
rs.MoveNext
If rs.EOF Then
RSLireSuivant = False
Exit Function
End If
If Err <> 0 Then
RSLireSuivant = False
Exit Function
End If
RSLireSuivant = True
End Function
Public Function RSLirePrecedent(ByRef rs As ADODB.Recordset) As Boolean
On Error Resume Next
rs.MovePrevious
If rs.BOF Then
RSLirePrecedent = False
Exit Function
End If
If Err <> 0 Then
RSLirePrecedent = False
Exit Function
End If
RSLirePrecedent = True
End Function
Public Function RSLirePremier(ByRef rs As ADODB.Recordset) As Boolean
On Error Resume Next
rs.MoveFirst
If Err <> 0 Then
RSLirePremier = False
Exit Function
End If
RSLirePremier = True
End Function
Public Function RSLireDernier(ByRef rs As ADODB.Recordset) As Boolean
On Error Resume Next
rs.MoveLast
If Err <> 0 Then
RSLireDernier = False
Exit Function
End If
RSLireDernier = True
End Function
Bonne continuation.
Merci, Polux
Pour ma part j'utilise au maxi les createobject car, à mon sens, l'appli est beaucoup plus portable (changement d'ordi)
1 de des 4, je vais réinstaller Vb6... :o)
Bonne fin de WE ensoleillée
Pour ma part j'utilise au maxi les createobject car, à mon sens, l'appli est beaucoup plus portable (changement d'ordi)
1 de des 4, je vais réinstaller Vb6... :o)
Bonne fin de WE ensoleillée
C'est une question d'habitude et pour ma part je n'aime pas mélanger le code.
Je ne code jamais derrière un UF. Je préfère faire un module à part pour gérer l'UF aussi bien dans l'affichage que dans les évènements. Tout comme je vais faire un module pour chaque fonctionnalité demandée.
Si je dois me connecter à une base, je vais faire un module pour gérer les accès à la base.
Si on doit modifier ou refaire l'IHM, je n'ai pas à tout reprendre et j'ai très peu de modification à opérer.
Je pratique cette méthode avec tous les langages que je suis amené à utiliser.
Je te souhaite également une bonne fin de WE qui n'est pas aussi ensoleillé que ça pour moi.
A+
Je ne code jamais derrière un UF. Je préfère faire un module à part pour gérer l'UF aussi bien dans l'affichage que dans les évènements. Tout comme je vais faire un module pour chaque fonctionnalité demandée.
Si je dois me connecter à une base, je vais faire un module pour gérer les accès à la base.
Si on doit modifier ou refaire l'IHM, je n'ai pas à tout reprendre et j'ai très peu de modification à opérer.
Je pratique cette méthode avec tous les langages que je suis amené à utiliser.
Je te souhaite également une bonne fin de WE qui n'est pas aussi ensoleillé que ça pour moi.
A+