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

Come usare DoCmd.TransferText SENZA indicare una 'specifica' per esportazione?

223 views
Skip to first unread message

RobertoA

unread,
Dec 6, 2022, 3:23:59 AM12/6/22
to
Sto tentando di usare questa riga di codice, senza indicare una
'specifica' di esportazione (Access 2013, 32bit)

DoCmd.TransferText acExportDelim, , "articoli", "c:\articoli.txt", True

L'avanzato sistema mi risponde con un cordiale:
Errore 3144 - "Il separatore di campo nella specifica dei file di testo
corrisponde al separatore decimale o al delimitatore di testo"

La domanda e': dov'e' che si trova questa impostazione (separatore campo
e separatore decimale) per poterla modificare?

Domanda2: sapete se sia possibile (perche' nell'help del comando
TransferText sembra che la 'specifica' sia opzionale) usare questo
comando SENZA indicare una 'specifica' esportazione?

Da notare che usavo la stessa identica riga su un progetto realizzato
con Access2003 e filava via tutto correttamente senza profferir errore

Karl Donaubauer

unread,
Dec 6, 2022, 5:43:08 AM12/6/22
to
Salve,

RobertoA:
> Sto tentando di usare questa riga di codice, senza indicare una
> 'specifica' di esportazione (Access 2013, 32bit)
>
> DoCmd.TransferText acExportDelim, , "articoli", "c:\articoli.txt", True
>
> L'avanzato sistema mi risponde con un cordiale:
> Errore  3144 - "Il separatore di campo nella specifica dei file di testo
> corrisponde al separatore decimale o al delimitatore di testo"
>
> La domanda e': dov'e' che si trova questa impostazione (separatore campo
> e separatore decimale) per poterla modificare?

Nella tabella di sistema MSysIMEXSpecs. Le colonne sono nel MSysIMEXColumns.

> Domanda2: sapete se sia possibile (perche' nell'help del comando
> TransferText sembra che la 'specifica' sia opzionale) usare questo
> comando SENZA indicare una 'specifica' esportazione?

Certo, ma poi non ti libererai dell'errore.

> Da notare che usavo la stessa identica riga su un progetto realizzato
> con Access2003 e filava via tutto correttamente senza profferir errore

Sì, con il 2007 gli americani hanno apparentemente cambiato il
separatore standard internamente in virgole senza pensare al resto del
mondo.

Come scappatoia puoi inserire una specifica "universale" nella
MSysIMEXSpecs specificando ; come FieldSeparator, SpecUniversale come
SpecName. Puoi semplicemente scriverlo nella tabella e/o usare
un'esportazione manuale come modello. In MSysIMEXColumns non hai bisogno
di alcun record. Poi usi sempre "SpecUniversale" come specifica.

--
Ciao
Karl
*********
Access News: https://youtu.be/XMOHBSudo-U
Access DevCon: http://AccessDevCon.com
Access FAQ: https://www.donkarl.com/it

RobertoA

unread,
Dec 6, 2022, 9:49:34 AM12/6/22
to
Molte grazie, si questa sembra essere LA soluzione
Senza non si puo' fare, ma con una specifica universale da usare per
ogni tabella, settata coi valori "all'italiana"
Ma queste tabelle nascoste si possono trattare come tutte le altre?
Voglio dire, da codice posso fare una routine che mi vada a creare la
specifica che serve a me?


BFS

unread,
Dec 6, 2022, 10:01:58 AM12/6/22
to
non fai prima a realizzarti una funzione dove passi la tabella da
esportare (o un generico predicato sql), il separatore campi che vuoi,
nome e posizione del file, se vuoi l'intestazione campi o no e via?

BFS

Karl Donaubauer

unread,
Dec 6, 2022, 10:31:14 AM12/6/22
to
Salve,

RobertoA:
> Karl Donaubauer ha scritto:
>> ...
>> Come scappatoia puoi inserire una specifica "universale" nella
>> MSysIMEXSpecs specificando ; come FieldSeparator, SpecUniversale come
>> SpecName. Puoi semplicemente scriverlo nella tabella e/o usare
>> un'esportazione manuale come modello. In MSysIMEXColumns non hai
>> bisogno di alcun record. Poi usi sempre "SpecUniversale" come specifica.
> ...
> Ma queste tabelle nascoste si possono trattare come tutte le altre?
> Voglio dire, da codice posso fare una routine che mi vada a creare la
> specifica che serve a me?

Sì.

RobertoA

unread,
Dec 6, 2022, 11:32:38 AM12/6/22
to
Si, con la funzione autocostruita c'avresti il massimo controllo e spari
fuori quel che vuoi, e probabilmente faro' cosi
Mi sono intestardito sul TransferText semplicemente perche' su procedura
fatta con Access 2003 funzionava correttamente, tutto qua, non capivo
come mai con versioni sucessive ambiente sviluppo si incriccasse

RobertoA

unread,
Dec 7, 2022, 4:46:28 AM12/7/22
to
Il 06/12/2022 16:01, BFS ha scritto:
E se hai dei campi 'memo/blob' insomma quei campi li, come li passi su
un file di testo?

BFS

unread,
Dec 7, 2022, 5:00:45 AM12/7/22
to
usando sql server non ho i memo
e i blob per i miei usi non mi servono

BFS

RobertoA

unread,
Dec 7, 2022, 5:50:08 AM12/7/22
to
Ok, cambiamo il tempo dei verbi
Se ti servissero come li passeresti su file di testo?
:)

RobertoA

unread,
Dec 8, 2022, 12:58:57 PM12/8/22
to
Il 06/12/2022 16:31, Karl Donaubauer ha scritto:
> Salve,
>
> RobertoA:
>> Karl Donaubauer ha scritto:
>>> ...
>>> Come scappatoia puoi inserire una specifica "universale" nella
>>> MSysIMEXSpecs specificando ; come FieldSeparator, SpecUniversale come
>>> SpecName. Puoi semplicemente scriverlo nella tabella e/o usare
>>> un'esportazione manuale come modello. In MSysIMEXColumns non hai
>>> bisogno di alcun record. Poi usi sempre "SpecUniversale" come specifica.
>> ...
>> Ma queste tabelle nascoste si possono trattare come tutte le altre?
>> Voglio dire, da codice posso fare una routine che mi vada a creare la
>> specifica che serve a me?
>
> Sì.
>

Pare di no
Sto tentando di fare un update sulla MSysObjects per alcune righe ma mi
spara fuori un 3073
Sto tentando con "CurrentDb.Execute "update MSysObjects set ..."

Karl Donaubauer

unread,
Dec 9, 2022, 4:25:15 AM12/9/22
to
Salve,

RobertoA:
> Karl Donaubauer ha scritto:
>> RobertoA:
>>>> ...
>>>> Come scappatoia puoi inserire una specifica "universale" nella
>>>> MSysIMEXSpecs specificando ; come FieldSeparator, SpecUniversale
>>>> come SpecName. Puoi semplicemente scriverlo nella tabella e/o usare
>>>> un'esportazione manuale come modello. In MSysIMEXColumns non hai
>>>> bisogno di alcun record. Poi usi sempre "SpecUniversale" come
>>>> specifica.
>>> ...
>>> Ma queste tabelle nascoste si possono trattare come tutte le altre?
>>> Voglio dire, da codice posso fare una routine che mi vada a creare la
>>> specifica che serve a me?
>>
>> Sì.
>
> Pare di no
> Sto tentando di fare un update sulla MSysObjects per alcune righe ma mi
> spara fuori un 3073
> Sto tentando con "CurrentDb.Execute "update MSysObjects set ..."

Come da domanda, ho scritto solo delle tabelle MSysIMEXSpecs e
MSysIMEXColumns rilevanti per le specifiche che possono essere scritte,
non di altre tabelle di sistema che sono ovviamente di sola lettura per
proteggerle da persone come te. ;-)

BFS

unread,
Dec 9, 2022, 4:28:09 AM12/9/22
to
per i memo che nel mio caso sono i nvarchar() dovrei solamente stare
attento e gestire gli "a capo" e ovviamente non userei "," e ";" come
separatore vista la probabilità di trovarmeli nei campi memo/note. Di
solito uso "|"

BFS



RobertoA

unread,
Dec 9, 2022, 5:42:22 AM12/9/22
to
Mmmmm... e se si trattasse di immagini e quindi qualsiasi carattere usi
come delimitatore gia' te lo trovi nel file?

BFS

unread,
Dec 9, 2022, 8:09:32 AM12/9/22
to
a parte che le immagini le gestisco sempre come link esterno
ad ogni modo codificherei l'immagine in code64 che non contiene il "pipe"

BFS



0 new messages