Quelle reference à cocher pour avoir la connexion avec une base de donnée access 2007?!
Merci
Version imprimable
Quelle reference à cocher pour avoir la connexion avec une base de donnée access 2007?!
Merci
Bonjour,
Peut-être Microsoft DAO X.X library en DAO (chez moi 3.6)
ou Microsoft ActiveXDataObject X.X Library en ADO (chez moi 2.8)
Microsoft DAO 3.6 library est valide juste pour l'access 2003 et inférieur
Microsoft ActiveXDataObject X.X Library en ADO c'est autre chose que DAO
pour 2007 c'est ACEDAO.ddl mais je ne sais pas comment l'activer :cry::cry:
Bonjour,
Pour le format MDB, il faut continuer à utiliser Microsoft DAO 3.6 Library
Pour le format ACCDB, il faut utiliser Microsoft Office 12.0 Access database engine Object Library.
y'a l'erreur suivante qui apparait :
Erreur d'execution '6' :
Dépacement de capacité
quand ? au moment de l'ajout de la référence ?
non au moment de l'execution du code
boila le comlement d'information :mouarf:
sur cette ligne 14
i = oFold.Items.Count
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 Public Sub ParcourirContact() Dim oCont As ContactItem Dim oFold As Folder Dim nM As NameSpace Dim olApp As Outlook.Application Dim i As Integer Dim j As Integer j = 1 Set olApp = Outlook.Application Set nM = olApp.GetNamespace("MAPI") Set oFold = nM.GetDefaultFolder(olFolderContacts) i = oFold.Items.Count For j = 1 To i AccesADB (oFold.Items(j)) Next j End Sub Public Function AccesADB(mycont As ContactItem) On Error Resume Next Dim db As DAO.Database Dim rs As DAO.Recordset Dim sql As String sql = "SELECT Contacts.Nom, Contacts.[prénom],Contacts.[Adresse de messagerie]" sql = sql & " FROM Contacts " sql = sql & " Where Contacts.Nom = """ & mycont.LastName sql = sql & """ AND Contacts.[prénom] = """ & mycont.FirstName & """;" Set db = OpenDatabase("x:\Contacts.mdb") Set rs = db.OpenRecordset(sql) If rs.RecordCount = 0 Then rs.AddNew rs.Fields("Nom") = Nz(mycont.LastName, " ") rs.Fields("Prénom") = Nz(mycont.FirstName, " ") rs.Fields("Adresse de messagerie") = mycont.Email1Address rs.Update End If rs.Close db.Close Set rs = Nothing Set db = Nothing End Function
eu.... ce n'ai pas un problème DAO...
combien de contacts dans ton carnet d'adresse ?
un seule contact
oups,j'avais pas fait le lien entre tes 2 discussions.. on commence par finir celle-la ... on verra l'autre après ...
rajoute le code suivant :
et regarde le résultat en fenêtre exécution ... (voir si c'est bien 1 qu'on te retourne..)Code:
1
2
3
4 Debug.Print oFold.Items.Count i = oFold.Items.Count Stop ' Voir résultat fenêtre exécution CTRL+G
on retourne 33167 :mouarf:
pour un entier (integer) la valeur maximale est 32767 ... tu peu déclare i en long... mais est-tu sur qu'il n'y as qu'un seul contact dans ton carnet d'adresse..?
oui il y'a un seule contact pour le moment il y'avait 386 contacts je les supprimer et puis j'ai ajouter un seule,pour faire le test d'insertion, en faite c'est relation avec l'autre poste que j' ai fait pour savoir ou je peu verfiier pour voir quand je supprime les contacte s'il sont supprimer définitivement ou bien il reste leur trace au niveau de la mémoire... si vous voyez ce que je veux dire
bon voila j'ai changer le type integer par un long ça donne l'erreur suivante :
Erreur d’exécution '-2147219439(800811)'.
L'interface de la messagerie a renvoyé une erreur inconnue.Si le problème se persiste ,redémarrez outlook.
aussi une petite remarque au niveau de :
Debug.Print oFold.Items.Count
i = oFold.Items.Count
Stop
le résultat augmente même si je supprime des contacts de mon carnet d'adresse et aussi de ma base de donnée, le résultat est 33506,
je suppose qu'il y'a un probleme au niveau de l'allocation de la mémoire.