Newsgroup: it.comp.appl.access
Titolo: Importare Dati OLE da un file WORD e inserirli su un campo ole di una  tabella

Ciao a tutti,
Putroppo ho un file doc enorme con immagini e formattazioni strane che
vorrei indicizzare in una tabella.
mettiamo che la mia tabella si chiami "DATI" e contenga i campi
"IDDati"(contatore) e "DATO"(OLE)
Il processo meccanico che vorrei simulare è:
1. seleziono e copio del testo su word
2. incollo direttamente sul campo OLE.
2.1 Access creerà un documento Word contenente il testo selezionato e
allegherà il file alla riga del db.
3. cerco il nuovo testo da incollare e torno al punto 1.
Qualcuno ha idea di come fare ciò?
Quello che mi sfugge è sostanzialmente:
- Cercare all'interno del testo del file word
- Selezionare il testo che mi interessa
- copiarlo come dati e incollarli nel campo OLE
Qualsiasi suggerimento è apprezzatissimo!
bye

 ha scritto nel messaggio 
news:e9d8de4c-42f1-4d51...@r66g2000hsg.googlegroups.com...
Ciao a tutti,


Qualsiasi suggerimento è apprezzatissimo!
bye
[risposta]
Non utilizzare i campi OLE; lascia i file doc dove sono e scrivi, in un 
campo, il percorso+path del file...
Ciao.
-- 
Sergio MAZZA 

 campo, il percorso+path del file...
perchè? sembrava facessero proprio al caso mio.
Comunque, se conservassi solo il path mi starebbe bene lo stesso. Il
problema, putroppo, non è proprio questo, ma come aprire un file word
e selezionare una parte che mi interessa.
Grazie comunque per il consiglio.
Vanni

 ha scritto nel messaggio 
news:7c86ced1-4a29-4303...@i76g2000hsf.googlegroups.com...
Ciao Sergio,
perchè? sembrava facessero proprio al caso mio.
[risposta]
Perché i campo OLE fanno lievitare l'mdb.
Comunque, se conservassi solo il path mi starebbe bene lo stesso. Il
problema, putroppo, non è proprio questo, ma come aprire un file word
e selezionare una parte che mi interessa.
Grazie comunque per il consiglio.
Vanni
[risposta]
Lo fai con l'automazione OLE, ma che ci fai dopo che hai selezionato la 
parte del testo?
Ciao.
-- 
Sergio MAZZA 

 parte del testo?
Dopo aver selezionato parti del testo, dovrei copiarle e reincollarle
su un nuovo documento e conservarmi il path (oppure direttamente su un
campo ole).
Ti spiego meglio:
ho un documento di questo tipo:
1. Testo casuale formattato
con immagini equazioni
e tabelle
____________________
[2]. Testo casuale formattato
con immagini equazioni
e tabelle
____________________
[3]. Testo casuale formattato
con immagini equazioni
e tabelle
____________________
[4]. Testo casuale formattato
con immagini equazioni
e tabelle
____________________
(ci sono migliai di righe)
Vorrei fare in modo da conservare come voci di una tabella:
-il numero racchiuso tra [] come id,
-il testo+immagini+tabelle+equazioni formattato (in un campo ole o in
un file word a parte)
Grazie per le risposte!
Vanni G. Rizzo

 ha scritto nel messaggio 
news:3d49f903-1eac-4b47...@k30g2000hse.googlegroups.com...
Ciao Sergio,
immaginavo, ma non sarebbe un grossissimo problema.Comunque proverò a
seguire il tuo consiglio.
[risposta]
Ti lievita di parecchi MB...








[risposta]
Se non hai posizioni fisse nel testo (bookmark) devi utilizzare il Find per 
trovare il testo (es. [4]) ma il problema è: come fai a riconoscere la 
"regione" del testo che fa parte di [4]? Potresti estendere la selezione 
(dopo aver trovato il [4]) al prossimo numero -1.
Non so' se mi sono spiegato...
Ciao.
-- 
Sergio MAZZA 

 (dopo aver trovato il [4]) al prossimo numero -1.
Si, intendevo fare questo oppure delimitare la selezione con il bordo
verticale che divide ogni regione.
Il problema è: come lo faccio?
Oppure potrei mettere un bookmark ogni volta che trovo il suddetto
bordo verticale... ma non so come fare?
Non ho esperienza con l'automazione ole, nè con la ricerca all'interno
di un documento word  da visual basic...
(Le guide online di microsoft sembrano pessime e superficiali... e non
ho trovato altre guide interessanti)

 ha scritto nel messaggio 
news:e9051294-aafc-4250...@c58g2000hsc.googlegroups.com...
Si, intendevo fare questo oppure delimitare la selezione con il bordo
verticale che divide ogni regione.
Il problema č: come lo faccio?
Oppure potrei mettere un bookmark ogni volta che trovo il suddetto
bordo verticale... ma non so come fare?
Non ho esperienza con l'automazione ole, nč con la ricerca all'interno
di un documento word  da visual basic...
(Le guide online di microsoft sembrano pessime e superficiali... e non
ho trovato altre guide interessanti)
[risposta]
Non troverai nessuna guida che ti risolva il problema; troverai invece parti 
di codice, che eseguono varie (generiche) operazioni, che dovrai adattare al 
tuo problema.
La cosa piů semplice che puoi fare (per partire) č, da word, avviare il 
registratore di macro, simula le azioni che dovrai eseguire con il tuo 
codice VBA; ferma il registratore e studia/modifica il codice (premendo F1 
su ogni istruzione/metodo che non conosci).
Poi, con poche/pochissime modifiche lo inserisci nel VBA di access...
Ciao.
-- 
Sergio MAZZA 

 Poi, con poche/pochissime modifiche lo inserisci nel VBA diaccess...
qui invece mi sono un po bloccato :(
Ho riflettuto sulla decisione di usare un oggetto OLE o la directory
dei file ma alla fine, per motivi di praticità legati all'uso che ne
dovrò fare (leggere migliaia di file ogni volta credo che sia più
pesante di leggerne uno "grosso" una volta).
Riesco ad avere un Range che contiene il testo (stampando myrange.text
mi da effettivamente il testo non formattato).
La mia funzione:
1. copia negli appunti il range :  range.copy
2. apre il database e il recordset che mi interessa
3. inserisce una nuova riga, imposto i vari campi
4. (con scetticismo)  rs.Fields("Dati") = range.paste
e non ha funzionato.
Allora ho provato con wordapp=CreateObject("Word.Application"),
inserendovi un documento, incollo il testo contenuto nel range e poi
faccio:
4. (con scetticismo)  rs.Fields("Dati") = wordapp
e niente...
qualcuno potrebbe aiutarmi?
Grazie,
Vanni

 ha scritto nel messaggio 
news:7ddfee74-9e91-4677...@l64g2000hse.googlegroups.com...
Ciao Sergio,




qualcuno potrebbe aiutarmi?
Grazie,
Vanni
[risposta]
Non ho capito alla fine come vuoi gestirlo ma se hai creati un campo Memo 
nella tabella e con: myrange.text ottieni il testo, l'istruzione per 
inserirlo nel campo Memo sarà:
rs.Fields("nomeCampoMemo") = myrange.text
Invece se vuoi utilizzare OLE:
http://www.dotnethell.it/articles/DatabaseBLOBs.aspx
http://support.microsoft.com/kb/120262/it
Ciao.
-- 
Sergio MAZZA