Newsgroup: it.comp.appl.access
Titolo: ordinamento dati da tabella importata in excel





Ciao,


Questo codice mi crea correttamente i dati 
prelevati da un foglio in excel


Solo che prima di inserire la chiave primaria che 
mi fa da contatore avrei bisogno


di ordinare i dati in base a dei campi e poi creare 
il contatore


 


quale codice devo mettere affinchè 
funzioni?


 


...........................................................


'set connection, catalog, and table objects
Set 
cnn1 = CurrentProject.Connection
Set cat1 = New 
ADOX.Catalog
cat1.ActiveConnection = cnn1
Set tbl1 = New 
ADOX.Table


 


' define table named "nominiativi" and append it to 
the Tables collection
With tbl1
    .Name = 
"nominiativi"
    .Columns.Append "azienda", 
adWChar
    .Columns.Append "cap", 
adInteger
    .Columns.Append "comune", adWChar
End 
With
cat1.Tables.Append tbl1


 




''''''''''''''''''''' codice che non 
funziona 
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''


DoCmd.RunSQL ("SELECT nominiativi.* 
FROM nominiativi ORDER BY nominiativi.cap, nominiativi.comune,")


oppure ho creato una query con il 
seguente codice:


DoCmd.OpenQuery("QueryOrdina")


solo ke la tabella è ordinata 
correttamente ma mi rimane "aperta" e nn esegue il restante codice


''''''''''''''''''''' codice che non 
funziona 
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''


 


strSql = "ALTER TABLE nominativi ADD COLUMN myID 
Identity(1,1)"
cnn1.Execute strSql


 


Set pk1 = New ADOX.Index
With 
pk1
    .Name = "MyPrimaryKey"
    
.PrimaryKey = True
    .Unique = True
    
.IndexNulls = adIndexNullsDisallow
End With


 


pk1.Columns.Append "MyID"
tbl1.Indexes.Append 
pk1


 


' make connection to excel source
cnn2.Open 
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"data Source=C:\nominiativi.xls;" 
& _
"Extended Properties=Excel 8.0;"  ''''HDR=NO; 
IMEX=1;


 


' open read-only recordset based on Excel 
source.
' Recall default is read-only
Set rst1 = New 
ADODB.Recordset
rst1.Open "nominiativi", cnn2, , , 
adCmdTable
rst1.MoveFirst


 


' Open read-write recordset based on local table 
named "nominativi"
Set rst2 = New ADODB.Recordset
rst2.ActiveConnection = 
cnn1
rst2.CursorType = adOpenKeyset
rst2.LockType = 
adLockOptimistic
rst2.Open "nominativi", cnn1, , , adCmdTable


 


Do Until rst1.EOF
With 
rst2
    .AddNew
    .Fields("azienda") = 
rst1.Fields(0)
    .Fields("cap") = 
rst1.Fields(1)
    .Fields("comune") = 
rst1.Fields(2)
    .Update
End 
With
rst1.MoveNext
Loop


 


createtableExit:
Set pk1 = Nothing
Set tbl1 = 
Nothing
Set cat1 = Nothing
rst1.Close
rst2.Close
Set rst1 = 
Nothing
Set rst2 = Nothing
cnn1.Close
cnn2.Close
Set cnn1 = 
Nothing
Set cnn2 = Nothing
Exit Sub



 ha scritto nel 
  messaggio 
news:ejs07l$83l$1...@fata.cs.interbusiness.it
...



 




Prova direttamente con questo codice


DoCmd.RunSQL ("SELECT nominiativi.* FROM nominiativi ORDER BY 
  nominiativi.cap ASC, nominiativi.comune ASC")


Ciao


Roberto



 ha scritto nel 
  messaggio 
news:4561a187$0$19244$4faf...@reader4.news.tin.it
...


 ha scritto nel 
  messaggio 
news:ejsbq7$eig$1...@balena.cs.interbusiness.it
...
