Connexion à Access protégé par password via Outlook

Le
Yvan
Hello tout le monde !

Je plante là je tente d'accéder à une table access pour mettre à jour une
combobox dans un formulaire Outlook. J'ai le code suivant mais j'obtiens un
message d'erreur:

"Impossible de lire les enregistrements; pas d'autorisation de lecture sur
'Liste_Articles_pr_Form_Rdv_Outlook'.

Voici mon code:

'-
Sub Bouton_CherchArticle_click()

Dim rst
Dim dao
Dim wks
Dim dbs
Dim cbbox
Dim strOfficePath
Dim appAccess
Dim ArtArray (5000, 2)

'Pick up path to Access database directory from Access and Office
'version from Outlook
Set appAccess = Item.Application.CreateObject("Access.Application")
strOfficePath = appAccess.SysCmd(9)
' MsgBox "Access folder: " & strOfficePath
strVersion = Item.Application.Version
strDBPath = "C:Documents and SettingsMagninMes
documentsACCESSApps4BizTables_A4B_ak_mappage.mdb"
' MsgBox "DBName: " & strDBName

Set dbe = Application.CreateObject("DAO.DBEngine.36")

Set wks = dbe.Workspaces(0)
Set dbs = wks.OpenDatabase(strDBPath)
appAccess.Quit

msgbox "1"
Set rst = dbs.OpenRecordset("Liste_Articles_pr_Form_Rdv_Outlook")
msgbox "2"
Set cbbox =
Item.GetInspector.ModifiedFormPages("Mouvements").Controls("ComboBox35")

cbbox.ColumnCount = 3
cbbox.ColumnWidths = "25; 75 pt; 200 pt"

'Assign Access data to an array of 3 columns and 100 rows
ArtArray(5000, 2) = rst.GetRows(1000)

cbbox.Column() = ArtArray(5000, 2)

End sub
'-

Vous l'aurez compris, le message d'erreur survient entre la msgbox 1 et la
2

Quelqu'un peut m'aider ? Je suis obligé de garder le groupe de travail
actuel pour ma base Access. Comme donc pourrais-je faire la connection en
donnant un user et un password ?

Merci d'avance !
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Michel_D
Le #6302221
Voici deux exemples d'ouverture de base sécurisée au niveau utilisateur
(Le fichier de groupe de travail étant ici 'SYSTEM.MDW')

DAO
Sub DAOOpenSecuredDatabase()
Dim wks As DAO.Workspace
Dim db As DAO.Database
DBEngine.SystemDB = _
"C:Program FilesMicrosoft OfficeOfficeSYSTEM.MDW"
Set wks = DBEngine.CreateWorkspace("", "Admin", "")
Set db = wks.OpenDatabase(".Comptoir.mdb")

' tu insère ton code ici

db.Close
wks.Close
End Sub

ADO
Sub ADOOpenSecuredDatabase()
Dim cnn As New ADODB.connection
cnn.Provider = "Microsoft.Jet.OLEDB.4.0;"
cnn.Properties("Jet OLEDB:System database") = _
"C:Program FilesMicrosoft OfficeOfficeSYSTEM.MDW"
cnn.Open "Data Source=.Comptoir.mdb;User Id­min;Password=;"
cnn.Close
End Sub



"Yvan"
Hello tout le monde !

Je plante là... je tente d'accéder à une table access pour mettre à jour une
combobox dans un formulaire Outlook. J'ai le code suivant mais j'obtiens un
message d'erreur:

"Impossible de lire les enregistrements; pas d'autorisation de lecture sur
'Liste_Articles_pr_Form_Rdv_Outlook'.

Voici mon code:

'-------------------------------------------------------------------------------
Sub Bouton_CherchArticle_click()

Dim rst
Dim dao
Dim wks
Dim dbs
Dim cbbox
Dim strOfficePath
Dim appAccess
Dim ArtArray (5000, 2)

'Pick up path to Access database directory from Access and Office
'version from Outlook
Set appAccess = Item.Application.CreateObject("Access.Application")
strOfficePath = appAccess.SysCmd(9)
' MsgBox "Access folder: " & strOfficePath
strVersion = Item.Application.Version
strDBPath = "C:Documents and SettingsMagninMes
documentsACCESSApps4BizTables_A4B_ak_mappage.mdb"
' MsgBox "DBName: " & strDBName

Set dbe = Application.CreateObject("DAO.DBEngine.36")

Set wks = dbe.Workspaces(0)
Set dbs = wks.OpenDatabase(strDBPath)
appAccess.Quit

msgbox "1"
Set rst = dbs.OpenRecordset("Liste_Articles_pr_Form_Rdv_Outlook")
msgbox "2"
Set cbbox > Item.GetInspector.ModifiedFormPages("Mouvements").Controls("ComboBox35")

cbbox.ColumnCount = 3
cbbox.ColumnWidths = "25; 75 pt; 200 pt"

'Assign Access data to an array of 3 columns and 100 rows
ArtArray(5000, 2) = rst.GetRows(1000)

cbbox.Column() = ArtArray(5000, 2)

End sub
'-------------------------------------------------------------------------------

Vous l'aurez compris, le message d'erreur survient entre la msgbox 1 et la
2...

Quelqu'un peut m'aider ? Je suis obligé de garder le groupe de travail
actuel pour ma base Access. Comme donc pourrais-je faire la connection en
donnant un user et un password ?

Merci d'avance !


Michel_D
Le #6302131
Autant pour moi, j'avais pas fait attention à "via Outlook", mais bon
avec les exemples tu devrais pouvoir t'en sortir quand même.
(regarder éventuellement l'aide sur "CreateWorkspace")

[...]

Set dbe = Application.CreateObject("DAO.DBEngine.36")
dbe.SystemDB = "C:Program FilesMicrosoft OfficeOfficeSYSTEM.MDW"
Set wks = dbe.CreateWorkspace("", "Admin", "")
Set dbs = wks.OpenDatabase(strDBPath)
msgbox "1"
Set rst = dbs.OpenRecordset("Liste_Articles_pr_Form_Rdv_Outlook")
msgbox "2"

PS: Je n'ai pas testé.


"Michel_D"
Voici deux exemples d'ouverture de base sécurisée au niveau utilisateur
(Le fichier de groupe de travail étant ici 'SYSTEM.MDW')

DAO
Sub DAOOpenSecuredDatabase()
Dim wks As DAO.Workspace
Dim db As DAO.Database
DBEngine.SystemDB = _
"C:Program FilesMicrosoft OfficeOfficeSYSTEM.MDW"
Set wks = DBEngine.CreateWorkspace("", "Admin", "")
Set db = wks.OpenDatabase(".Comptoir.mdb")

' tu insère ton code ici

db.Close
wks.Close
End Sub

ADO
Sub ADOOpenSecuredDatabase()
Dim cnn As New ADODB.connection
cnn.Provider = "Microsoft.Jet.OLEDB.4.0;"
cnn.Properties("Jet OLEDB:System database") = _
"C:Program FilesMicrosoft OfficeOfficeSYSTEM.MDW"
cnn.Open "Data Source=.Comptoir.mdb;User Id­min;Password=;"
cnn.Close
End Sub



"Yvan"
Hello tout le monde !

Je plante là... je tente d'accéder à une table access pour mettre à jour une
combobox dans un formulaire Outlook. J'ai le code suivant mais j'obtiens un
message d'erreur:

"Impossible de lire les enregistrements; pas d'autorisation de lecture sur
'Liste_Articles_pr_Form_Rdv_Outlook'.

Voici mon code:

'-------------------------------------------------------------------------------
Sub Bouton_CherchArticle_click()

Dim rst
Dim dao
Dim wks
Dim dbs
Dim cbbox
Dim strOfficePath
Dim appAccess
Dim ArtArray (5000, 2)

'Pick up path to Access database directory from Access and Office
'version from Outlook
Set appAccess = Item.Application.CreateObject("Access.Application")
strOfficePath = appAccess.SysCmd(9)
' MsgBox "Access folder: " & strOfficePath
strVersion = Item.Application.Version
strDBPath = "C:Documents and SettingsMagninMes
documentsACCESSApps4BizTables_A4B_ak_mappage.mdb"
' MsgBox "DBName: " & strDBName

Set dbe = Application.CreateObject("DAO.DBEngine.36")

Set wks = dbe.Workspaces(0)
Set dbs = wks.OpenDatabase(strDBPath)
appAccess.Quit

msgbox "1"
Set rst = dbs.OpenRecordset("Liste_Articles_pr_Form_Rdv_Outlook")
msgbox "2"
Set cbbox > > Item.GetInspector.ModifiedFormPages("Mouvements").Controls("ComboBox35")

cbbox.ColumnCount = 3
cbbox.ColumnWidths = "25; 75 pt; 200 pt"

'Assign Access data to an array of 3 columns and 100 rows
ArtArray(5000, 2) = rst.GetRows(1000)

cbbox.Column() = ArtArray(5000, 2)

End sub
'-------------------------------------------------------------------------------

Vous l'aurez compris, le message d'erreur survient entre la msgbox 1 et la
2...

Quelqu'un peut m'aider ? Je suis obligé de garder le groupe de travail
actuel pour ma base Access. Comme donc pourrais-je faire la connection en
donnant un user et un password ?

Merci d'avance !





Yvan
Le #6301751
Hello Michel,

Merci bien pour tes infos. Entre temps, en bidouillant, j'ai découvert
presque par mégarde que si dans le Workgroup Access l'administrateur a les
droits de lecture sur la table que je dois ouvrir depuis Outlook b'en ça
passe. Donc pour le moment ça me convient comme tactique.

Mais je garde tes exemples au chaud pour l'avenir !

A+ et encore merci !
Publicité
Poster une réponse
Anonyme