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
Code :
Rs_OpenDeals.MoveNext
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