Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/01/2011, 18h35   #1
Membre du Club
 
Inscription : décembre 2002
Messages : 131
Détails du profil
Informations forums :
Inscription : décembre 2002
Messages : 131
Points : 53
Points : 53
Par défaut [2007] - VBA et accés Base accdb

Bonjour,
Voilà, je me vois contraint de faire de nouveau appel à votre savoir.
J'ai besoin d'ouvrir une base de données (un fichier en .accdb) sous Ms Project en VBA.
Le souci, c'est que cette base de donnée est crée à partir d'une exportation de données Sharepoint, donc semble en fait n'être qu'une vue sur une autre base de données à laquelle je n'ai pas accès.
J'ai écrit le code suivant, pour ouvrir la base et, je l'esperais, lire les enregistrement de la table.
Malheureusement, je me prends toujours un message d'erreur, incompréhensible.
Citation:
"Run-time error '-2147467259 (80004005)': Automation error Unspecified error"
Voici mon code. Je pense que la méthode pour ouvrir et lire une bdd de type .accdb n'est peut-être pas la bonne.
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
45
46
47
Public BaseConnect      As ADODB.Connection
Public Rs_OpenDeals     As ADODB.Recordset
Public Strglonombase    As String
Public StrSQLDeals      As String
 
Public Sub DEAL_TOOL_Resource()
    '   Define the temp datas
    '   ---------------------
    Dim Tmp_Question    As Integer
    Dim Gantt_Row       As Integer
    Dim Task_Row        As Integer
    Dim Tmp_NbDeal      As Integer
    Dim tmp_Char1       As Integer
    Dim tmp_Char2       As Integer
    Dim tmp_Char3       As Integer
    Dim Flg_Indent      As Boolean
    Dim Flg_DealFound   As Boolean
    Dim Current_Deal    As Integer
    Dim tmp_filename    As String
    '   Confirm the Update of the MS Project
    '   ------------------------------------
    Tmp_Question = MsgBox("Please, confirm that you are OK to update the resource plan.", vbYesNo, "Resource Update Confirm?")
    If Tmp_Question = vbNo Then
        Exit Sub
    End If
    '   Open the connection to the database
    '   -----------------------------------
    Strglonombase = "C:\Path\Database Name.accdb"
    Set BaseConnect = New ADODB.Connection
    With BaseConnect
        .Provider = "Microsoft.ACE.OLEDB.12.0"
        .Mode = adModeRead
        .Open "Data source=" & Strglonombase
    End With
    '
    '   Read all the Opened Records from the database
    '   ---------------------------------------------
    StrSQLDeals = "SELECT * FROM [Deal Tracking FY 2011];"
    Set Rs_OpenDeals = New ADODB.Recordset
    Rs_OpenDeals.Open StrSQLDeals, BaseConnect, adOpenStatic, adLockReadOnly
	While Not Rs_OpenDeals.EOF
		MsgBox Rs_OpenDeals.Fields(1)
		Rs_OpenDeals.MoveNext
	Wend
	Rs_OpenDeals.Close
	BaseConnect.Close
End Sub
A priori tout va bien, jusqu'au C'est là que j'ai une erreur. Donc je parviens bien à lire le premier Record, mais impossible de lire les suivants.
Et j'ai le même souci si j'essaie de mettre des clauses WHERE ou ORDER dans mon ordre SELECT...
Par exemple, si je transforme mon SELECT en
Code :
1
2
    StrSQLDeals = "SELECT * FROM [Deal Tracking FY 2011] WHERE Status = 'On-Track'" & _
                "ORDER BY [SW Start], [SW finished], [End customer], [Order#];"
et bien c'est sur le Open de la base de donnée que j'ai ce message...

Est-ce que quelqu'un a une idée ? Et surtout un début de solution...
J'ai essayé de trouver un tuto sur la facon de travailler en VBA avec ces bases de données, mais je n'ai rien trouvé. Idem sur les forums. Et cela fait deux jours que je galères donc votre aide me serait précieuses.

Cordialement,
Jean-Luc
jlvalentin est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h41.


 
 
 
 
Partenaires

Hébergement Web