Cavoli e' vero !!!
ma per quale motivo? che unita' sarebbe?
il file Project non e' mio.Dando un occhiata ai valori esportati su excel mi sono accorto anche di un altra cosa, ho due colonne con valori che mi sembravano uguali invece ora vedo che in alcuni casi sono diversi...
questi i valori trovati su due colonne contigue (il primo valore e' quello che stavo prendendo in
considerazione):
1 giorno = 9600 / 4800
2 giorni = 9600 / 9600
3 giorni = 14400 / 14400
4 giorni = 24000 / 19200
30 giorni = 7200 / 144000
il problema che mi si pone ora e' qual'e' la colonna esatta che devo esportare?
Su vba/excel ho scritto, con una macro, tutti i valori delle variabili, dove, non sapendo le colonne da
esportare, sto' purtroppo andando a tentatvi nel trovare i campi esatti da esportare.
Avrei bisogno che la macro magari mi scrivesse oltre i valori anche l'intestazione delle mie colonne cosi' saprei di preciso quali sto' esportando, ma non so come fare.
il codice che ho usato per esportare i campi su vba/ecel e' questo:
codice:
Sub Add_MSProjectTask_estrazione_tutti_campi()
Sheets("VARIABILI").Select
ActiveCell.Select
Dim x
For x = 0 To 318
'ho messo 318 in quanto mettendo 500 al 319 dava errore
'e non proseguiva la macro, quindi credo si arrivi al massmo a 318
'MsgBox (PjtObjTsk.Fields(x))
ActiveCell.FormulaR1C1 = PjtObjTsk.Fields(x)
ActiveCell.Offset(1, 0).Select
Next x
ActiveCell.Offset(-319, 1).Select
End Sub
premetto che devo esportare il tutto su una tabella di access tramite una macro che mi hanno passato e di cui non conosco il funzionamento esatto, non essendo espertissimo di access mi sono basato apapunto nello scrivere prima le variabili su excel per capire cosa esportavo.
il codice presente prima della macro sopra e' questo:
codice:
Option Explicit
Global cnnDB1 As ADODB.Connection
Global rstMOP As ADODB.Recordset
Global rstMOP_Detail As ADODB.Recordset
Global PjtObjTsk As New ADODB.Recordset
Global nOrderNumber As Long
Public ExcelApp As Excel.Application
Sub Read_xxxx_Projects()
Dim nAreaCount As Long
Dim strMSProject As String
Dim strDestMSProject As String
Dim strSqlSel As String
Dim fs
Dim f
Dim f1
Dim fc
Dim s
Set ExcelApp = GetObject(, "Excel.Application")
Set cnnDB1 = New ADODB.Connection
strDBPath = "C:\dati\mdb\Doku-ITA.mdb"
With cnnDB1
.Provider = "Microsoft.Jet.OLEDB.4.0"
.Mode = adModeReadWrite
.Open strDBPath
End With
Set rstMOP_Detail = New ADODB.Recordset
rstMOP_Detail.CursorType = adOpenKeyset
rstMOP_Detail.LockType = adLockOptimistic
rstMOP_Detail.Open "xxxx_MSProjekt_Task", cnnDB1, , , adCmdTable
strMSProject = "C:\dati\dati"
strDestMSProject = "C:\dati\dati"
Set fs = CreateObject("Scripting.FileSystemObject")
If fs.FolderExists(strMSProject) Then
Set f = fs.GetFolder(strMSProject)
Set fc = f.Files
For Each f1 In fc
nOrderNumber = 1
' Create a connection to MS-Project-files
Set cnnDB = New ADODB.Connection
cnnDB.ConnectionString = "Provider=Microsoft.Project.OLEDB.11.0;PROJECT NAME=" &
strMSProject & "\" & f1.Name
cnnDB.ConnectionTimeout = 30
cnnDB.Open
strSqlSel = "SELECT * FROM Tasks "
PjtObjTsk.Open strSqlSel, cnnDB
Do While Not PjtObjTsk.EOF
' Add a new detail-record on the access-database-table
Add_xxxx_MSProjectTask
' Move to the next MS-Project-task
PjtObjTsk.MoveNext
' increment the ordernumber
nOrderNumber = nOrderNumber + 1
Loop
PjtObjTsk.Close
cnnDB.Close
If cnnDB.State <> 0 Then cnnDB.Close
Set cnnDB = Nothing
Next
End If
MsgBox " end "
cnnDB1.Close
End Sub