Newsgroup: it.comp.appl.access
Titolo: Natura campi in Tabella Collegata di tipo ... Text

Non è un problema collegare ad Access files .Txt/Csv e simili: un comodo
wizard permette di selezionare la natura di ognuno dei campi, identificati
da un opportuno separatore.
Al termine del wizard, ZAC ... tutto ok     ;-)
Il problema sorge se si ha la necessità di creare una tabella collegata a
codice Visual Basic: la tabella viene creata assegnando l'opportuna stringa
di connessione ... ma la natura dei campi viene assegnata a casaccio (con
risultati spesso inaccettabili).
Esiste la possibilità d'assegnare programmaticamente i tipi di campi
desiderati?
Forse è possibile creare delle specifiche d'importazione e utilizzarle in
fase di creazione Tab. Collegata?
Altro?
Saluti.

"Simone Calligaris"

Allora, ho risolto attraverso il metodo TransferText
Se qualcuno conosce un'alternativa che utilizzi DAO, faccia sapere...
Saluti.


Non ho ben capito se devo essere sincero...
Questa Query va direttamente ad attingere al File.txt:
INSERT INTO T1
SELECT fldName1 AS MyFieldName1, fldName2 AS MyFieldname2
FROM [TEXT;HDR=YES;DATABASE=C:\myData\].TextImport.txt
Altrimenti la connection string per file Testo è questa:
Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=c:\txtFilesFolder
\;Extensions=asc,csv,tab,txt;
Che mi sono perso...?
Ciao
@Alex

 wrote:

Dimenticavo OLE DB nel caso...
vsConn = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
         "Data Source=" & server.MapPath("file/") & ";" & _
         "Extended Properties=""text;HDR=Yes;FMT=Delimited"""
' qui apro il file 'risultati.txt'
set rs = server.createobject("ADODB.Recordset")
rs.open "SELECT * FROM risultati.txt", vsConn
Assomiglia a quanto detto quì:
http://support.microsoft.com/default.aspx?scid=kb;en-us;326548#7
;-)
@Alex

"Alessandro Baraldi"
Non ho ben capito se devo essere sincero...
Questa Query va direttamente ad attingere al File.txt:
INSERT INTO T1
SELECT fldName1 AS MyFieldName1, fldName2 AS MyFieldname2
FROM [TEXT;HDR=YES;DATABASE=C:\myData\].TextImport.txt
Altrimenti la connection string per file Testo è questa:
Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=c:\txtFilesFolder
\;Extensions=asc,csv,tab,txt;
Che mi sono perso...?
----------------------------------------------------------------------------
-----------
Il problema è assegnare ai campi collegati al file Text la tipologia che
desideri (Data/Ora, Precisione Doppia. etc).
"Penso" si debba necessariamente passare attraverso una specifica
d'Importazione salvata nel DB.
Saluti.

 Saluti.
Si senza dubbio ... un file txt non dispone di formattazioni di
sorta...
Non avevo capito ...
@Alex

 desiderati?
sì, segui questo esempio.
1) Crea un file txt fatto ad esempio così:
----
"Nome";"Cognome";"Data";"Importo"
"Pippo";"De Pippis";"31/12/2007";15,29
"Paperino";"Paolino";"31/01/2007";8,19
----
Lo salvi con nome TestTabella.txt
2) Nella stessa cartella in cui hai salvato il file "TestTabella.txt" crea 
un altro file che chiamerai "Schema.ini" così fatto:
----
[TestTabella.txt]
ColNameHeader=True
Format=Delimited(;)
MaxScanRows=0
CharacterSet=OEM
Col1="Nome" Char Width 15
Col2="Cognome" Char Width 20
Col3="Data" Date Width 8
Col4="Importo" Double
----
poi alleghi la tabella da codice VBA
----
Sub AllegaTabella()
   Dim db As DAO.Database
   Dim tbl As DAO.TableDef
   Set db = CurrentDb()
   Set tbl = db.CreateTableDef("TestTabella")
   tbl.Connect = "Text;DATABASE=C:\Dati;TABLE=TestTabella.txt"
   tbl.SourceTableName = "TestTabella.txt"
   db.TableDefs.Append tbl
   db.TableDefs.Refresh
   Set tbl = Nothing
   Set db = Nothing
End Sub
----
cambia C.\Dati con il nome della cartella  in cui hai salvato i due files.
Ciao
--
Giorgio Rancati
[Office Access MVP] 

 Col3="Data" Date Width 8
qui il "Width 8" non serve
a proposito.. cercando il vecchio link sulle specifiche del file schema.ini 
ho trovato questo che mi sembra più completo.
----
Schema.ini File
http://msdn2.microsoft.com/en-us/library/ms709353.aspx
----


 ho trovato questo che mi sembra più completo.
Complimenti Giorgio, è una soluzione notevole.
Simone