OVH Cloud OVH Cloud

Connection à Access

2 réponses
Avatar
EG
Bonjour,

L'année dernière sur ce site, on m'avait conseillé de prendre DAO pour me
connecter à Access. Dans une réponse que j'ai reçu hier concernant une autre
question, on me dit que ADO est plus performant et plus à jour.

Comment fait-on pour se connecter avec ADO ?

Est-il possible de mettre un mot de passe sur la BD Access et de pouvoir se
connecter avec ADO (car avec DAO je crois qu'on ne peut pas mettre de mot de
passe) ?

Merci !

2 réponses

Avatar
michdenis
Bonjour EG,

Tu dois d'abord ajouter la référence :

'Microsoft activex data objects 2.0 librairy


Voici un petit exemple :
'-------------------------
Sub GetDataWithADO()

'connexion à une base de donnée
'possédant un mot de passe.

Dim C As Integer
Dim cnt As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim MyRange As Range
Set MyRange = Range("g4")

cnt.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:Mes Documentsbd1.mdb;" & _
"Jet OLEDB:Database Password=loto;", _
"admin", ""
rst.Open "Select * From Etudiant", cnt, adOpenStatic

If Rst.RecordCount = 0 Then
'copie les noms des champs vers la plage de cellule désignée
Do
MyRange.Offset(, C) = rst.Fields(C).Name
C = C + 1
x = x + 1
Loop Until x = rst.Fields.Count
MyRange.Offset(1, 0).CopyFromRecordset rst
Else
Msgbox "aucun enregistrement trouvé."
End If

' Ferme la connection et le recordset
Rst.Close: Cnt.Close

'Libère la mémoire vive occupée par les objets
Set Rst = Nothing: Set Cnt = Nothing
Set Rg = Nothing
End Sub
'---------------------------


Salutations!




"EG" a écrit dans le message de news:

Bonjour,

L'année dernière sur ce site, on m'avait conseillé de prendre DAO pour me
connecter à Access. Dans une réponse que j'ai reçu hier concernant une autre
question, on me dit que ADO est plus performant et plus à jour.

Comment fait-on pour se connecter avec ADO ?

Est-il possible de mettre un mot de passe sur la BD Access et de pouvoir se
connecter avec ADO (car avec DAO je crois qu'on ne peut pas mettre de mot de
passe) ?

Merci !
Avatar
michdenis
Correction : Dans la procédure, dans cette ligne de code

If Rst.RecordCount = 0 Then

Modifié le signe "=" pour ">"

If Rst.RecordCount > 0 Then


Salutations


"michdenis" a écrit dans le message de news:
Bonjour EG,

Tu dois d'abord ajouter la référence :

'Microsoft activex data objects 2.0 librairy


Voici un petit exemple :
'-------------------------
Sub GetDataWithADO()

'connexion à une base de donnée
'possédant un mot de passe.

Dim C As Integer
Dim cnt As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim MyRange As Range
Set MyRange = Range("g4")

cnt.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:Mes Documentsbd1.mdb;" & _
"Jet OLEDB:Database Password=loto;", _
"admin", ""
rst.Open "Select * From Etudiant", cnt, adOpenStatic

If Rst.RecordCount = 0 Then
'copie les noms des champs vers la plage de cellule désignée
Do
MyRange.Offset(, C) = rst.Fields(C).Name
C = C + 1
x = x + 1
Loop Until x = rst.Fields.Count
MyRange.Offset(1, 0).CopyFromRecordset rst
Else
Msgbox "aucun enregistrement trouvé."
End If

' Ferme la connection et le recordset
Rst.Close: Cnt.Close

'Libère la mémoire vive occupée par les objets
Set Rst = Nothing: Set Cnt = Nothing
Set Rg = Nothing
End Sub
'---------------------------


Salutations!




"EG" a écrit dans le message de news:

Bonjour,

L'année dernière sur ce site, on m'avait conseillé de prendre DAO pour me
connecter à Access. Dans une réponse que j'ai reçu hier concernant une autre
question, on me dit que ADO est plus performant et plus à jour.

Comment fait-on pour se connecter avec ADO ?

Est-il possible de mettre un mot de passe sur la BD Access et de pouvoir se
connecter avec ADO (car avec DAO je crois qu'on ne peut pas mettre de mot de
passe) ?

Merci !