Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Collegamento foglio excel su Access - ridefinire il formato del campi

59 views
Skip to first unread message

Marco67

unread,
Feb 19, 2016, 9:39:34 AM2/19/16
to
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


RobertoA

unread,
Feb 19, 2016, 10:45:31 AM2/19/16
to
Ma se fai il collegamento a mano, li vedi corretti i campi (nel formato
testo intendo) ?


Bruno Campanini

unread,
Feb 19, 2016, 7:00:52 PM2/19/16
to
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

Marco67

unread,
Feb 20, 2016, 2:32:41 AM2/20/16
to

"RobertoA" <amor...@tiscalinet.it> 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...).



RobertoA

unread,
Feb 22, 2016, 3:56:14 AM2/22/16
to
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


Gabry69

unread,
Feb 23, 2016, 2:22:11 AM2/23/16
to
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
0 new messages