Newsgroup: it.comp.appl.access
Titolo: importare dati da excel

buongiorno a tutti 
 
ho collegato un file di excel come tabella collegata in access
 
poi eseguo questo codice per scorrere i record presenti nel file di excel e importarli in una tabella access ma il campo codice pur non essendo mai nullo aprendo il collegamento al file di excel nel debug passo passo in vba vale sempre null (qualche aiuto? Grazie.)
 
il codice che eseguo è qui sotto
 
    Dim DB As Database
    Dim Rs As Recordset
    Dim RsOfferte As Recordset
    Dim i As Integer
 
    Set DB = CurrentDb
    Set Rs = DB.OpenRecordset("select distinct * from " & tbExcel & " order by codice")
 
    If Rs.RecordCount > 0 Then
 
        Set RsOfferte = DB.OpenRecordset("select * from offerte")
 
        For i = 1 To Rs.RecordCount
            RsOfferte.AddNew
            RsOfferte!codice = Rs!codice
            RsOfferte.Update
        Next i
 
        RsOfferte.Close
 
    End If
 
    Rs.Close
    Set DB = Nothing

Perché non fai semplicemente una query di accodamento dal momento
 che devi solo accodare, in base al codice che hai
 scritto...?
Puoi costruirla con QBE ed eseguirla.
 
-- 
@Alex
 
 
----Android NewsGroup Reader----
https://piaohong.s3-us-west-2.amazonaws.com/usenet/index.html
 


ci avevo pensato in effetti ma ero curioso di capire la stregoneria  del perchè quando apro la tabella collegata excel il campo si chiama codice e contiene sempre un valore e quando ciclo i record di tale tabella collegata e richiamo rs!codice è null
 
farò la query se nessuno sa il motivo.
 

ci avevo pensato in effetti ma ero curioso di capire la
 stregoneria  del perchè quando apro la tabella collegata excel il
 campo si chiama codice e contiene sempre un valore e quando ciclo
 i record di tale tabella collegata e richiamo rs!codice è
 nullfarò la query se nessuno sa il motivo.
 
Non è che nessuno sa il motivo... anche perché non è che il tuo
 modo di operare sia standard...
 
Probabilmente non riconosce il FieldName... e te ne accorgeresti
 in modo molto banale anche da solo semplicemente stampando in
 finestra immediata I nomi dei fields dell'oggetto
 Recordset.
Apri il rs sulla Linked(excel)... quindi:
Dim fld As DAO.Field
For each fld in rsExcel.fields
    Debug.Print 
fld.name
, fld.value
Next
 
Saluti 


 ho collegato un file di excel come tabella collegata in access
 
Questa è la cosa più importante che non hai spiegato: come hai fatto
tale collegamento?
 
Bruno


Utilizzando dati esterni - nuova origine dati - da file - Excel - collega all'origine dati creando una tabella collegata e impostando la prima riga come intestazione nome campo

mario rossi wrote :

Questo codice, scritto nella maniera più barbara ch'io conosca,
funziona:
=============================
Private Sub Command10_Click()
Dim RS As Recordset, RSOfferte As Recordset, i As Integer
 
Set RS = CurrentDb.OpenRecordset("select distinct * from tbExcel order 
by codice")
Set RSOfferte = CurrentDb.OpenRecordset("select * from offerte")
 
If RS.RecordCount > 0 Then
    For i = 1 To RS.RecordCount
        RSOfferte.AddNew
        RSOfferte!Codice = RS!Codice
        RSOfferte.Update
    Next
End If
 
End Sub
===========================
 
Nel mio caso, tbExcel non è una variabile, ma il nome della
tabella d'importazione.
 
Bruno
 
PS
Le chiusure e i nothing, quando la fine della procedura è
immediatamente successiva, non servono a nulla.
Quando si chiude la procedura si chiude tutto quello che con
essa hai aperto.