VBA avec password, comment faire pour écrire?
Résolu
themax84
Messages postés
49
Statut
Membre
-
themax84 Messages postés 49 Statut Membre -
themax84 Messages postés 49 Statut Membre -
Bonjour, j'ai créé un tableau ss Excel pour saisir des infos et un bouton pour automatiser les enregsitrements dans une base access.
Jusque la tout fonctionne
Par contre maintenant,j'ai mis un mot de passe sur ma base.
Donc quand je clique sur mon bouton excel, il me dis que le mot de passe n'est pas bon. (fenetre erreur de vba me renvoyant a mon code excel).
je ne sais pas ou placer mon password dans mon code.
Voila mon code.Merci de votre aide.
Private Sub copie_Click()
Dim Plage As Range
Dim Array1 As Variant
Dim x As Variant
Dim Db1 As Database
Dim Rs1 As Recordset
' Ouverture de la base de données bd1.mdb
Set Db1 = DBEngine.OpenDatabase(ThisWorkbook.Path & "bd1.mdb")
' Ouverture de la table Client
Set Rs1 = Db1.OpenRecordset("Client", dbOpenDynaset)
' Détermination de la taille de la plage à envoyer vers Access
Set Plage = Worksheets("Feuil1").Range("A1").CurrentRegion.Offset(1, 0)
Set Plage = Plage.Resize(Plage.Rows.Count - 1, Plage.Columns.Count)
Plage.Select
' Lecture de la plage pour renvoyer une valeur contenant un tableau
Array1 = Plage.Value
' Ecriture des données depuis Excel vers les enregistrement de la table Factures
For x = 1 To UBound(Array1, 1)
With Rs1
.AddNew
.Fields("Code") = Array1(x, 1)
.Fields("Nom") = Array1(x, 2)
.Fields("Adresse1") = Array1(x, 3)
.Fields("Postal") = Array1(x, 4)
.Fields("Adresse2") = Array1(x, 5)
'.Fields("Activité") = Array1(x, 6)
'.Fields("Dat") = Array1(x, 7)
.Update
End With
Next
' Fermeture de la base bd1.mdb
Db1.Close
Jusque la tout fonctionne
Par contre maintenant,j'ai mis un mot de passe sur ma base.
Donc quand je clique sur mon bouton excel, il me dis que le mot de passe n'est pas bon. (fenetre erreur de vba me renvoyant a mon code excel).
je ne sais pas ou placer mon password dans mon code.
Voila mon code.Merci de votre aide.
Private Sub copie_Click()
Dim Plage As Range
Dim Array1 As Variant
Dim x As Variant
Dim Db1 As Database
Dim Rs1 As Recordset
' Ouverture de la base de données bd1.mdb
Set Db1 = DBEngine.OpenDatabase(ThisWorkbook.Path & "bd1.mdb")
' Ouverture de la table Client
Set Rs1 = Db1.OpenRecordset("Client", dbOpenDynaset)
' Détermination de la taille de la plage à envoyer vers Access
Set Plage = Worksheets("Feuil1").Range("A1").CurrentRegion.Offset(1, 0)
Set Plage = Plage.Resize(Plage.Rows.Count - 1, Plage.Columns.Count)
Plage.Select
' Lecture de la plage pour renvoyer une valeur contenant un tableau
Array1 = Plage.Value
' Ecriture des données depuis Excel vers les enregistrement de la table Factures
For x = 1 To UBound(Array1, 1)
With Rs1
.AddNew
.Fields("Code") = Array1(x, 1)
.Fields("Nom") = Array1(x, 2)
.Fields("Adresse1") = Array1(x, 3)
.Fields("Postal") = Array1(x, 4)
.Fields("Adresse2") = Array1(x, 5)
'.Fields("Activité") = Array1(x, 6)
'.Fields("Dat") = Array1(x, 7)
.Update
End With
Next
' Fermeture de la base bd1.mdb
Db1.Close
A voir également:
- VBA avec password, comment faire pour écrire?
- Comment écrire # sur pc - Guide
- Ecrire en gras sur whatsapp - Guide
- Application pour écrire les chiffre en lettre - Télécharger - Outils professionnels
- Écrire en majuscule - Guide
- Ecrire en miroir - Guide
6 réponses
Je me demande sis tu ne dois pas créer un Datasource de type MDB dans lequel tu mets le user et mot de passe puis .
Function user()
Dim Con as ADODB.Connection
Dim Rst as ADODB.Recorset
Set Con = CreateObject("ADODB.Connection")
Set Rst = CreateObject("ADODB.Recordset")
Con.Open "DSN=<DSNNAME>"
Rst.Open "Select * From client",Con
End Function
Une fois la connexion établie, on peut parcourir le Recordset
Exemple :
Rst.MoveFirst
Do While Not Rst.EOF()
insérer ici votre source
Rst.MoveNext
Loop
Function user()
Dim Con as ADODB.Connection
Dim Rst as ADODB.Recorset
Set Con = CreateObject("ADODB.Connection")
Set Rst = CreateObject("ADODB.Recordset")
Con.Open "DSN=<DSNNAME>"
Rst.Open "Select * From client",Con
End Function
Une fois la connexion établie, on peut parcourir le Recordset
Exemple :
Rst.MoveFirst
Do While Not Rst.EOF()
insérer ici votre source
Rst.MoveNext
Loop
merci et comment on fait ton dim con as AD...
je ne l'ai pas dans ma liste ?
Il faut rajouter une option dans le menu outils de vba non?
comment adapter ta solution a la mienne?
je suis pas tré for en vba dsl!
je ne l'ai pas dans ma liste ?
Il faut rajouter une option dans le menu outils de vba non?
comment adapter ta solution a la mienne?
je suis pas tré for en vba dsl!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question