Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Mes macro ne fonctionnent pas avec le runtime access

1 réponse
Avatar
Gortex
Bonjour,
j'ai un fichier excel qui me permet de gere mes contact
depuis un userform qui a pour base une table access
pour que mon userform recupere , ajoute , modifie , et supprime les informations dans
la table access et j'ai aussi la Function fMDP qui me permet de rendre visible des de mon classeur
hélas ces deux bouts de macro ne fonctionnent pas avec le runtime access
j'ai fais le test un pc qui a access et tout fonctonne tres bien
si vous avez une solution pour adapter avec le runtime access

Cordialement

Function fMDP(Utilisateur As String, MdP As String) As Boolean
Dim ACapp As Access.Application, db As DAO.Database, rTrouve As DAO.Recordset, Sql As String
Dim ws As Worksheet, fd As DAO.Field

On Error Resume Next
Set ACapp = New Access.Application
Set db = DBEngine.OpenDatabase("e;e;C:Users GortexDocumentstable.accdb"e;e;, False, False, "e;e;;pwd=PAPA"e;e;)
Sql = "e;e;select * from Tombins where [NOM PRENOM]='"e;e; & Utilisateur & "e;e;' and [Mot de Passe] ='"e;e; & MdP & "e;e;'"e;e;
Set rTrouve = db.OpenRecordset(Sql)
If rTrouve.EOF Then
fMDP = False
Else
fMDP = True
For Each ws In ThisWorkbook.Sheets
For Each fd In rTrouve.Fields
If ws.Name = fd.Name Then
If fd.Value = "e;e;X"e;e; Then
ws.Visible = True
Else
ws.Visible = xlSheetVeryHidden
End If
Exit For
End If
Next fd
Next ws
End If
db.Close
ActiveWindow.DisplayWorkbookTabs = False
End Function

Option Explicit
Const c_t_contacts As String = "e;e;PARAMETREAGE"e;e;
Dim ACapp As Access.Application, db As DAO.Database, rcontacts As DAO.Recordset

Private Sub CommandButton4_Click()
If Me.ComboBox1.Value = "e;e;"e;e; Then
MsgBox "e;e;veuillez sélectionner une donnée dans la liste déroulante"e;e;
Else
rcontacts.FindFirst ("e;e;[NOM PRENOM]='"e;e; & Me.ComboBox1.Value & "e;e;'"e;e;)
rcontacts.Edit
rcontacts![NOM PRENOM] = Me.TextBox1.Value
rcontacts!MAIL = Me.TextBox2.Value
rcontacts!TELEPHONE = Me.TextBox3.Value
rcontacts!ADRESSE = Me.TextBox4.Value
If Me.CheckBox1 = True Then
rcontacts!PHOTOS = "e;e;oui"e;e;
Else
rcontacts!PHOTOS = "e;e;NON"e;e;
End If
rcontacts.Update
End If
Me.TextBox1 = "e;e;"e;e;
Me.TextBox2 = "e;e;"e;e;
Me.TextBox3 = "e;e;"e;e;
Me.TextBox4 = "e;e;"e;e;
Me.CheckBox1 = False
MsgBox "e;e;Votre enregistrement a ete modifier"e;e;
End Sub
Private Sub CommandButton1_Click()
If MsgBox("e;e;Validez vous ces données?"e;e;, vbYesNo, "e;e;Validation"e;e;) = vbYes Then
rcontacts.AddNew
rcontacts![NOM PRENOM] = Me.TextBox1.Value
rcontacts!MAIL = Me.TextBox2.Value
rcontacts!TELEPHONE = Me.TextBox3.Value
rcontacts!ADRESSE = Me.TextBox4.Value
If Me.CheckBox1 = True Then
rcontacts!PHOTOS = "e;e;oui"e;e;
Else
rcontacts!PHOTOS = "e;e;NON"e;e;
End If
rcontacts.Update
End If
Me.TextBox1 = "e;e;"e;e;
Me.TextBox2 = "e;e;"e;e;
Me.TextBox3 = "e;e;"e;e;
Me.TextBox4 = "e;e;"e;e;
Me.CheckBox1 = False
End Sub
Private Sub CommandButton5_Click()
rcontacts.FindFirst ("e;e;[NOM PRENOM]='"e;e; & Me.TextBox1.Value & "e;e;'"e;e;)
rcontacts.MovePrevious
If Not rcontacts.BOF Then
Me.TextBox1.Text = rcontacts![NOM PRENOM]
Me.TextBox2.Text = rcontacts!MAIL
Me.TextBox3.Text = rcontacts!TELEPHONE
Me.TextBox4.Text = rcontacts!ADRESSE
If rcontacts!PHOTOS = "e;e;oui"e;e; Then
Me.CheckBox1 = True
Else
Me.CheckBox1 = False
End If
Else
MsgBox "e;e;Vous êtes au premier enregistrement"e;e;
End If
End Sub

Private Sub CommandButton6_Click()
rcontacts.FindFirst ("e;e;[NOM PRENOM]='"e;e; & Me.TextBox1.Value & "e;e;'"e;e;)
rcontacts.MoveNext
If Not rcontacts.EOF Then
Me.TextBox1.Text = rcontacts![NOM PRENOM]
Me.TextBox2.Text = rcontacts!MAIL
Me.TextBox3.Text = rcontacts!TELEPHONE
Me.TextBox4.Text = rcontacts!ADRESSE
If rcontacts!PHOTOS = "e;e;oui"e;e; Then
Me.CheckBox1 = True
Else
Me.CheckBox1 = False
End If
Else
MsgBox "e;e;Vous êtes au dernier enregistrement"e;e;
End If
End Sub
Private Sub ComboBox1_Change()
Dim photo As String
rcontacts.FindFirst ("e;e;[NOM PRENOM]='"e;e; & Me.ComboBox1.Value & "e;e;'"e;e;)
Me.TextBox1.Text = rcontacts![NOM PRENOM]
Me.TextBox2.Text = rcontacts!MAIL
Me.TextBox3.Text = rcontacts!TELEPHONE
Me.TextBox4.Text = rcontacts!ADRESSE
If rcontacts!PHOTOS = "e;e;oui"e;e; Then
Me.CheckBox1 = True
Else
Me.CheckBox1 = False
End If
On Error GoTo defaut

photo = TextBox1.Value
Image1.Picture = LoadPicture("e;e;C:Users GortexPicturesorgane"e;e; & photo & "e;e;.jpg"e;e;)
Exit Sub

defaut:
Image1.Picture = LoadPicture("e;e;C:Users GortexPicturesorganeDefaut.jpg"e;e;)
End Sub
Private Sub CommandButton2_Click()
Unload Me
End Sub
Private Sub TextBox1_Change()
Dim photo As String
On Error GoTo defaut

photo = TextBox1.Value
Image1.Picture = LoadPicture("e;e;C:Users GortexPicturesorgane"e;e; & photo & "e;e;.jpg"e;e;)
Exit Sub

defaut:
Image1.Picture = LoadPicture("e;e;C:Users GortexPicturesorganeDefaut.jpg"e;e;)
End Sub

Private Sub UserForm_Initialize()

Set ACapp = New Access.Application
Set db = ACapp.DBEngine.OpenDatabase _
("e;e;C:Users GortexDocumentsfiche contactescontactes.accdb"e;e;, False, False, "e;e;;pwd=PAPA"e;e;)
Set rcontacts = db.OpenRecordset(c_t_contacts, dbOpenDynaset)
Do While Not rcontacts.EOF
ComboBox1.AddItem rcontacts![NOM PRENOM]
rcontacts.MoveNext
Loop
End Sub

1 réponse

Avatar
Michel__D
Bonjour,
Le 01/04/2019 à 13:15, Gortex a écrit :
Bonjour,
j'ai un fichier excel qui me permet de gere mes contact
depuis un userform qui a pour base une table access
pour que mon userform recupere , ajoute , modifie , et supprime les informations
dans
la table access et j'ai aussi la Function fMDP qui me permet de rendre visible
des de mon classeur
hélas ces deux bouts de macro ne fonctionnent pas avec le runtime access
j'ai fais le test un pc qui a access et tout fonctonne tres bien
si vous avez une solution pour adapter avec le runtime access
Cordialement
Function fMDP(Utilisateur As String, MdP As String) As Boolean
Dim ACapp As Access.Application, db As DAO.Database, rTrouve As DAO.Recordset,
Sql As String
Dim ws As Worksheet, fd As DAO.Field
On Error Resume Next
Set ACapp = New Access.Application

Avec le runtime, tu ne peux pas (il me semble) créer un objet "Access.Application"
Set db = DBEngine.OpenDatabase("e;e;C:Users GortexDocumentstable.accdb"e;e;,
False, False, "e;e;;pwd=PAPA"e;e;)
Sql = "e;e;select * from Tombins where [NOM PRENOM]='"e;e; & Utilisateur &
"e;e;' and [Mot de Passe] ='"e;e; & MdP & "e;e;'"e;e;
Set rTrouve = db.OpenRecordset(Sql)
If rTrouve.EOF Then
fMDP = False
Else
fMDP = True
For Each ws In ThisWorkbook.Sheets
For Each fd In rTrouve.Fields
If ws.Name = fd.Name Then
If fd.Value = "e;e;X"e;e; Then
ws.Visible = True
Else
ws.Visible = xlSheetVeryHidden
End If
Exit For
End If
Next fd
Next ws
End If
db.Close
ActiveWindow.DisplayWorkbookTabs = False
End Function
Option Explicit
Const c_t_contacts As String = "e;e;PARAMETREAGE"e;e;
Dim ACapp As Access.Application, db As DAO.Database, rcontacts As DAO.Recordset
Private Sub CommandButton4_Click()
If Me.ComboBox1.Value = "e;e;"e;e; Then
MsgBox "e;e;veuillez sélectionner une donnée dans la liste déroulante"e;e;
Else
rcontacts.FindFirst ("e;e;[NOM PRENOM]='"e;e; & Me.ComboBox1.Value &
"e;e;'"e;e;)
rcontacts.Edit
rcontacts![NOM PRENOM] = Me.TextBox1.Value
rcontacts!MAIL = Me.TextBox2.Value
rcontacts!TELEPHONE = Me.TextBox3.Value
rcontacts!ADRESSE = Me.TextBox4.Value
If Me.CheckBox1 = True Then
rcontacts!PHOTOS = "e;e;oui"e;e;
Else
rcontacts!PHOTOS = "e;e;NON"e;e;
End If
rcontacts.Update
End If
Me.TextBox1 = "e;e;"e;e;
Me.TextBox2 = "e;e;"e;e;
Me.TextBox3 = "e;e;"e;e;
Me.TextBox4 = "e;e;"e;e;
Me.CheckBox1 = False
MsgBox "e;e;Votre enregistrement a ete modifier"e;e;
End Sub
Private Sub CommandButton1_Click()
If MsgBox("e;e;Validez vous ces données?"e;e;, vbYesNo, "e;e;Validation"e;e;) > vbYes Then
rcontacts.AddNew
rcontacts![NOM PRENOM] = Me.TextBox1.Value
rcontacts!MAIL = Me.TextBox2.Value
rcontacts!TELEPHONE = Me.TextBox3.Value
rcontacts!ADRESSE = Me.TextBox4.Value
If Me.CheckBox1 = True Then
rcontacts!PHOTOS = "e;e;oui"e;e;
Else
rcontacts!PHOTOS = "e;e;NON"e;e;
End If
rcontacts.Update
End If
Me.TextBox1 = "e;e;"e;e;
Me.TextBox2 = "e;e;"e;e;
Me.TextBox3 = "e;e;"e;e;
Me.TextBox4 = "e;e;"e;e;
Me.CheckBox1 = False
End Sub
Private Sub CommandButton5_Click()
rcontacts.FindFirst ("e;e;[NOM PRENOM]='"e;e; & Me.TextBox1.Value &
"e;e;'"e;e;)
rcontacts.MovePrevious
If Not rcontacts.BOF Then
Me.TextBox1.Text = rcontacts![NOM PRENOM]
Me.TextBox2.Text = rcontacts!MAIL
Me.TextBox3.Text = rcontacts!TELEPHONE
Me.TextBox4.Text = rcontacts!ADRESSE
If rcontacts!PHOTOS = "e;e;oui"e;e; Then
Me.CheckBox1 = True
Else
Me.CheckBox1 = False
End If
Else
MsgBox "e;e;Vous êtes au premier enregistrement"e;e;
End If
End Sub
Private Sub CommandButton6_Click()
rcontacts.FindFirst ("e;e;[NOM PRENOM]='"e;e; & Me.TextBox1.Value &
"e;e;'"e;e;)
rcontacts.MoveNext
If Not rcontacts.EOF Then
Me.TextBox1.Text = rcontacts![NOM PRENOM]
Me.TextBox2.Text = rcontacts!MAIL
Me.TextBox3.Text = rcontacts!TELEPHONE
Me.TextBox4.Text = rcontacts!ADRESSE
If rcontacts!PHOTOS = "e;e;oui"e;e; Then
Me.CheckBox1 = True
Else
Me.CheckBox1 = False
End If
Else
MsgBox "e;e;Vous êtes au dernier enregistrement"e;e;
End If
End Sub
Private Sub ComboBox1_Change()
Dim photo As String
rcontacts.FindFirst ("e;e;[NOM PRENOM]='"e;e; & Me.ComboBox1.Value &
"e;e;'"e;e;)
Me.TextBox1.Text = rcontacts![NOM PRENOM]
Me.TextBox2.Text = rcontacts!MAIL
Me.TextBox3.Text = rcontacts!TELEPHONE
Me.TextBox4.Text = rcontacts!ADRESSE
If rcontacts!PHOTOS = "e;e;oui"e;e; Then
Me.CheckBox1 = True
Else
Me.CheckBox1 = False
End If
On Error GoTo defaut
photo = TextBox1.Value
Image1.Picture = LoadPicture("e;e;C:Users GortexPicturesorgane"e;e; & photo &
"e;e;.jpg"e;e;)
Exit Sub
defaut:
Image1.Picture = LoadPicture("e;e;C:Users GortexPicturesorganeDefaut.jpg"e;e;)
End Sub
Private Sub CommandButton2_Click()
Unload Me
End Sub
Private Sub TextBox1_Change()
Dim photo As String
On Error GoTo defaut
photo = TextBox1.Value
Image1.Picture = LoadPicture("e;e;C:Users GortexPicturesorgane"e;e; & photo &
"e;e;.jpg"e;e;)
Exit Sub
defaut:
Image1.Picture = LoadPicture("e;e;C:Users GortexPicturesorganeDefaut.jpg"e;e;)
End Sub
Private Sub UserForm_Initialize()
Set ACapp = New Access.Application
Set db = ACapp.DBEngine.OpenDatabase _
("e;e;C:Users GortexDocumentsfiche contactescontactes.accdb"e;e;, False,
False, "e;e;;pwd=PAPA"e;e;)
Set rcontacts = db.OpenRecordset(c_t_contacts, dbOpenDynaset)
Do While Not rcontacts.EOF
ComboBox1.AddItem rcontacts![NOM PRENOM]
rcontacts.MoveNext
Loop
End Sub