eleonora92 ha scritto:
Il problema è che il DB verrà usato da utenti che non conoscono Access quindi devo cercare di rendere il tutto automatico, se creo un recordset della tbl temporanea riesco ad indicizzare le colonne?
Non fare domande fini a se stesso... la risposta è SI ma non hai alcuna corrispondenza visibile, figurati l'utente cosa ci capisce...!
Se vuoi sviluppare un WIzzard di importazione credo tu debba ragionare in modo sistemico e renderti conto che una cosa simile è di fatto una piccola applicazione...!!!!
Devi avere modo di vedere cosa il documento mette a disposizione, consentire all'utente di comprendere, selezionare ed associare..., da questo lo sviluppatore crea il codice per fare una Query INSERT corretta.
Una volta che hai importato il Foglio di Excel, inclusi i NOMI CAMPI che troverai nella prima riga, usando la funzione TransfertSpreadsheet, puoi visualizzare i dati in una Maschera in modalità foglio dati o maschere continue, contenuta nella Form di Gestione del Wizard.
Crei 2 ListBox con la proprietà Tipo Origine Riga = Elenco Valori, poi una le popoli una con l'elenco campi della Tabella di Origine e e l'altra con l'elenco dei campi della Tabella di Destinazione.
Function FillListBox(myList As Access.ListBox, TableName As String)
Dim rs As DAO.Recordset
Dim fld As DAO.Field
myList.RowSourceType = "Value List"
Set rs = DBEngine(0)(0).OpenRecordset("SELECT * FROM " & TableName & " WHERE 1=0", dbReadOnly)
For Each fld In rs.Fields
myList.AddItem fld.Name
Next
End Function
Questa Funzione chiamata in questo modo dalla MainForm:
Private Sub Form_Load()
Call FillListBox(Me.ListBoxOrigine, "TabellaOrigine")
Call FillListBox(Me.ListBoxDestinazione, "TabellaDestinazione")
End Sub
Ora ti trovi con 2 ListBox con l'elenco dei Campi... devi associarle... quindi ti serve una Tabella di Associazione con 2 Campi PK di tipo Testo.
CampoOrigine
CampoDestinazione
Questa Tabella la devi popolare selezionando un Item da ogni ListBox ed inserendoli nella Tabella di Associazione, a quel punto devi RIMUOVERE gli Item appena inseriti nelle 2 ListBox di Selezione, oppure dovrai gestire gli errori successivi dovuti a Selezioni diverse già esistenti o doppie...
Finita la compilazione della Tabella di associazione, puoi costruire la QUery di INSERT andando a leggere la Tabella stessa, e ciclandola...
Tutto questo per farti capire che devi RIFLETTERE BENE... ma non puoi pensare di fare una cosa simile appoggiandoti al Forum... se tu non hai le basi per comprendere bene ed analizzare tecnicamente il problema.