Newsgroup: it.comp.appl.access
Titolo: Collegamento foglio excel su Access - ridefinire il formato del campi

Salve a tutti,
ho spesso problemi su una procedura per l'acquisizione di righe inserite in 
un normale foglio excel collegato al mio db.
I nomi dei campi vengono definiti direttamente nella prima riga del foglio, 
ma non riesco a impostare tassativamente per tutti il tipo dati 'testo'
In base a... non so cosa, (nonostante forzatamente abbia impostato il foglio 
con tutti campi di tipo 'testo'), dopo il collegamento alcuni campi nella 
tab. excel collegata risultano numerici, con conseguente problema di 
caricamento nel db (devo caricare campi testo)
 
Come posso forzare la definizione del tipo dati nella tab. collegata excel a 
'testo' ???
 
Questo il mio codice, che avevo gia' di trovato in rete:
 
dove 'sFileName  e' il foglio excel
 
Public Function CollExcel(ByVal sFileName As String, ByVal sTablename As 
String, _
    ByVal sRangeName As String) As Boolean
 
  Dim db As DAO.Database
  Dim td As DAO.TableDef
 
  Dim sConnect As String
  Dim sMsg As String
  Dim sFunction As String
 
 
  CollExcel = False
  sFunction = "CollExcel"
  Set db = CurrentDb
 
 
  ' Crea una nuova tabledef nel database:
  Set td = db.CreateTableDef(sTablename)
 
 
  ' Stringa di connessione:
  sConnect = "Excel 8.0;HDR=YES;DATABASE=" & sFileName
  td.Connect = sConnect
 
  ' Specifica il nome del range dei dati in Excel:
  td.SourceTableName = sRangeName
 
    ' Elimina collegamento tab. excel dal database:
    db.TableDefs.Delete sTablename
    ' Ricrea collegamento tab. excel
 
  'Restituisce True:
  CollExcel = True
 
ExitHere:
 
  Exit Function
End Function
 
 
Ringrazio tutti anticipatamente per il prezioso aiuto
Marco67 
 
 


Ma se fai il collegamento a mano, li vedi corretti i campi (nel formato 
testo intendo) ?
 
 

Marco67 explained :

Vista l'inutilità e la prolissità del codice,
direi che è proporio farina del sacco MS o di un suo adepto.
 
Senz'altre notizie del contesto, una maniera
più efficiente, ancorché di una bruttura inaudita,
è quella di scrivere nella cella ="123" anziché 123.
 
Bruno

 ha scritto nel messaggio 
news:na7dap$pef$1...@virtdiesel.mng.cu.mi.it...

Purtroppo i fogli excel vengono compilati mensilmente da piu' persone 
piuttosto acerbe con il pc. (trattasi di turnistica di lavoro).
Quindi, una volta il campo viene riconosciuto testo, l'altra numerico, senza 
capirne il motivo... (in questo caso infatti il sistema genera un errore in 
fase di caricamento del turno nel db proprio perche' si aspetta un codice 
alfanumerico...).
 
 
 


Eh, ma allora e' li il problema
E' difficile se non impossibile adattarsi ad una sorgente dati che non 
e' sempre la stessa
A mio avviso stai cercando soluzione ad un problema non ben definito
E quindi una soluzione non e' possibiel trovarla
Ma perche' non gli fai una schermata di Access per inserire i dati?
Li avresti gia' dentro senza fare sforzo, ed in piu' controlli l'input 
dati come meglio ti pare
 
 


Per un problema simile avevo risolto andando ad aggiungere delle righe fittizie come prime 5/6 righe dati del foglio di Excel con un formato uguale a quello desiderato.
Mi spiego meglio: nel tuo caso aggiungi da riga 2 a riga 7 delle righe con tutte le celle riempite con del testo (solo caratteri alfabetici). A Questo punto Access dovrebbe riconoscere tutte le colonne come testo.
Naturalmente nelle tue elaborazioni dovrai saltare le righe fittizie oppure cancellarle subito dopo avere collegato la tabella.
Spero di esserti stata d'aiuto.
Gabry