Newsgroup: it.comp.appl.access
Titolo: incollare del testo memorizzato in access in altri programmi

Ciao a tutti,
quando ho bisogno di aiuto mi rivolgo a voi che siete dei maghi !
Ho bisogno di incollare del testo (una decina di righe), che
preventivamente avrei salvato in un record, in programmi esterni
(word, pagine web, ecc..)
Naturalmente fino ad ora ho fatto il copia/incolla, mi chiedevo però
se ci fosse un metodo più comodo
Mi piacerebbe ad esempio avere un codice access che mi permettesse,
una volta posizionatomi nel programma di destinazione, di fare il
copia incolla tramite un tasto (ad esempio un tasto funzione)
Mi spiego con un esempio
In access salvo 3 o 4 records contenenti ognuno testi differenti
Ad ogni record (massimo una decina) corrisponderà un tasto funzione
Vado sul programma di destinazione (word o pagina web), premo il tasto
funzione corrispondente e access fà il lavoro di copia incolla
Access dovrebbe quindi operare anche se non é il programma attivo, é
possibile fare una cosa simile secondo voi ?

 ha scritto nel messaggio 
news:16ac6dae-ee04-4dc0...@j1g2000yqi.googlegroups.com...




----------------------------
Certamente.
Se sfogli i post di qualche giorno fa trovi qualcosa di analogo per le 
immagini.
All'interno del db di esempio trovi anche le routine per il testo.
Ciao, Carlo

 Ciao, Carlo
-- 
Ciao
Geppo 

 Addirittura anche se access non è l'applicazione attiva.?
Si può fare perchè usi le API di windows che copiano il testo nella 
clipboard e lo rendono disponibile a qualsiasi applicazione.
Con questo sistema si possono copiare non solo testi ma anche immagini e 
altro ancora.
Ovviamente la routine deve essere scritta in un modulo di Access, copi in 
memoria, per esempio un testo e poi ti sposti in un altro programma...e 
incolli, non da Access ma dalla clipboard. Esattamente come se facessi 
ctrl+c in Access e poi ctrl+v in Word.
Ciao, Carlo 

 ha scritto nel messaggio 
news:gn3j2i$gq6$1...@tdi.cu.mi.it...

Si ok, che si possa copiare nella clipboard va bene, che con ctrl+v si possa 
incollare anche, ma che si possa fare ciò che richiede Pokoto nell'ultima 
parte (che riporto sotto) ho qualche dubbio:
''''''Mi spiego con un esempio
In access salvo 3 o 4 records contenenti ognuno testi differenti
Ad ogni record (massimo una decina) corrisponderà un tasto funzione
Vado sul programma di destinazione (word o pagina web), premo il tasto
funzione corrispondente e access fà il lavoro di copia incolla
Access dovrebbe quindi operare anche se non é il programma attivo, é
possibile fare una cosa simile secondo voi ?'''''''


 Geppo
Sinceramente non credo sia cosě...
In Access attribuisce un tasto funzione a seconda del record, per esempio 
F6, a cui corrisponde il copia per quel controllo...poi in Word incolla.
Questa la frase che mi ha fatto pensare a questa procedura:
"Naturalmente fino ad ora ho fatto il copia/incolla, mi chiedevo perň
se ci fosse un metodo piů comodo".
Ad ogni modo si potrebbe fare anche per come pensi. Il codice da qualche 
parte va messo, su questo non ci piove.
Ciao, Carlo 

 parte va messo, su questo non ci piove.
Sicuramente.


 Geppo
ahimè sull'interpretazione della mia richiesta ha ragoine Geppo e non
Carlo
Io avrei voluto avere diciamo una decina di record, ad ongi record un
tasto funzione (l'abbinamento l'avrei fatto all'avvio del database)
Poi inizio a lavorare ad esempio in word, lasciando in background
access, al momento giusto, lavorando quindi in word, premerei Fx per
fare il copia/incolla

 ha scritto
cut
ahimè sull'interpretazione della mia richiesta ha ragoine Geppo e non
Carlo
Io avrei voluto avere diciamo una decina di record, ad ongi record un
tasto funzione (l'abbinamento l'avrei fatto all'avvio del database)
Poi inizio a lavorare ad esempio in word, lasciando in background
access, al momento giusto, lavorando quindi in word, premerei Fx per
fare il copia/incolla
-----------------------------------------
Ancora non siamo arrivati al dialogo tra pensiero e computer...però ci 
arriveremo :-)
Il punto è che un conto è quello che desideri e un conto è come arrivare a 
realizzarlo.
Res sic stantibus (stando così le cose) da qualche parte devi inserire del 
codice che permetta il dialogo tra i due applicativi; bene che vada dovrai 
scriverlo in entrambi i programmi.
Posso dirti che la cosa è possibile specie tra applicativi dello stesso 
pacchetto (Office).
Questo algoritmo si può realizzare ma, credo, esuli da questo NG.
Ciao, Carlo

 Ciao, Carlo
Innanzitutto grazie comunque per le vostre risposte,
é chiaro che con la sola forza del pensiero non si può fare molto
quando si parla di queste cose, ma la mia domanda era sostanzialmete
questa:
Access ha la possibilità di assegnare una macro (che sostanzialmente
faccia un lavoro di copia/incolla) ad un tasto funzione ? (e qui mi
posso rispondere benissimo da solo).
Secondo voi, c'é un modo (o magari la fà automaticamente, in effetti
non ho provato) una volta assegnate le macro ai diversi tasti
funzione, di farle partire anche se Access non é più il programma
attivo (lavora quindi in background) ???

 attivo (lavora quindi in background) ???
Ovvero, una volta assegnata una macro ad un tasto funzione, questa
lavorerà anche se Access é in background ? Oppure ogni volta che
riduco Access ad icona il tasto funzione si scorda tutto ???

 ha scritto nel messaggio 
news:a256cf18-730f-4c57...@h5g2000yqh.googlegroups.com...


Potresti risponderti da solo anche a questa....se per copia/incolla è come 
hai inteso quello similare di windows allora è inteso che per copiare devi 
avere il focus sull'oggetto da copiare...riducendo il programma sposti il 
focus ed il comando non funziona a meno che tu non usi un comando specifico 
che ti sposti il focus sull'oggetto in questione e faccia il copia.
Ciao
-- 
Roberto da Parma 

 ha scritto nel messaggio 
news:a256cf18-730f-4c57...@h5g2000yqh.googlegroups.com...


Sì la cosa si può fare.
Provo ad indicarti una strada.
Premetto che puoi associare l'avvio di una macro ad un tasto funzione a 
patto di costruirti una macro AUTOKEYS che, appunto, si prende carico della 
gestione delle funzioni associate alla pressione di uno o più tasti.
Questo lo sai fare vero?
Supponiamo che hai assegnato alla pressione del tasto F2 la funzione che 
copia il valore di un controllo nella maschera MProdotti. Come far partire 
il codice associato alla macro? Si potrebbe fare con il codice che ho 
postato qualche giorno fa riguardo all'uso della clipboard. Una porzione di 
codice viene messo in "ascolto" della clipboard, magari a fronte dell'evento 
timer di una scheda sempre aperta anche se iconizzata. Questa porzione di 
codice, se legge dalla clipboard una frase o un gruppo di lettere 
predefinite, le interpreta, e agisce a seconda del gruppo di lettere 
"intercettate". Così da Word e con Access in background, puoi inviare alla 
clipboard la frase chiave che, una volta intercettata dal codice sempre in 
"ascolto" in Access, farà partire la macro associata.
A sua volta Word ha lo stesso codice in "ascolto" e, se oppurtanamente 
addestrato, fornirà la risposta impostata, cioè, per esempio, incollare il 
testo presente nella clipboard.
Spero di essere stato sufficientemente chiaro.
Se hai capito il concetto potrei provare a fare una piccola demo.
Ciao, Carlo

 ha scritto nel messaggio 
news:gnclmt$j2f$1...@tdi.cu.mi.it...

Ma... domanda....se in tutte queste operazioni copio un file?
Oppure faccio altre operazioni copia/incolla con windows?
Non cade tutto il discorso?In fondo non usi la clipboard?
Potrebbe essere che ....o scarico involontariamente la clipboard o la riempa 
con testo che non è copiato da access...giusto?


 Roberto da Parma
Tutto giusto quello che hai detto.
Il punto è mettersi d'accordo su cosa deve esserci nella clipboard affinchè 
le funzioni di Access o di Word possano avviarsi. Per esempio se stabiliamo 
che la macro di Access si avvia solo quando legge dalla clipboard qualcosa 
del tipo "ComandoDaWord:F2", oppure "ComandoDaWord:^P" è molto improbabile 
che qualche altro programma scriva la stessa cosa.
La clipboard potrebbe essere vuota, certo, oppure contenere un'immagine o 
magari un'intera tabella, perchè no. In questo caso non succede nulla.
Se da Word ha necessità di avviare una macro di Access che esegue certe 
operazioni e restituisca in memoria un certo valore, anche in Word dovrà 
operare da codice, nel senso di inviare alla clipboard il fatidico 
messaggio.
Anche la risposta sarà "codificata", per esempio "RispostaDaAccess:questo è 
quello che ho trovato nel controllo bla, bla, bla".
Ciao, Carlo 

 ha scritto

NO, non ci siamo, la cosa deve essere applicata anche ad altri
programmi, non necessariamente OFFICE, ho capito quale stratagemma
avresti usato, ma purtroppo non fa al caso mio
Io ho bisogno sostanzialmete di assegnare delle macro ai tasti
funzione (o altre combinazioni di tasti), queste macro dovranno
copiare in memoria una stinga di testo che precedentemente ho
memorizzato in una decina di records differenti, chiaramente la
memoria rimarrà sempre una, ma di volta in volta i tasti funzione
caricheranno una frase differente evitandomi quindi di riselezionare
la finestra access, selezionare il testo, premere copia, ritornare sul
programma su cui stavo lavorando, premere incolla; tutto qui, il
problema é far funzionare i tasti funzione (o chi per loro) anche se
Access non é il programma attivo, sostanzialmente speravo in una sorta
di cache della tastiera

 ha scritto
cut
NO, non ci siamo, la cosa deve essere applicata anche ad altri
programmi, non necessariamente OFFICE, ho capito quale stratagemma
avresti usato, ma purtroppo non fa al caso mio
Io ho bisogno sostanzialmete di assegnare delle macro ai tasti
funzione (o altre combinazioni di tasti), queste macro dovranno
copiare in memoria una stinga di testo che precedentemente ho
memorizzato in una decina di records differenti, chiaramente la
memoria rimarrà sempre una, ma di volta in volta i tasti funzione
caricheranno una frase differente evitandomi quindi di riselezionare
la finestra access, selezionare il testo, premere copia, ritornare sul
programma su cui stavo lavorando, premere incolla; tutto qui, il
problema é far funzionare i tasti funzione (o chi per loro) anche se
Access non é il programma attivo, sostanzialmente speravo in una sorta
di cache della tastiera
-----------------------------------------------
Se sono queste le tue intenzioni, qui sei OT.
Puoi benissimo fare quello che desideri con un programmino scritto in VB o 
C++ o .Net che, gira in background e intercetta i tasti funzione e che può 
dare comandi a programmi aperti come Access.
Ti confermo che si può fare, forse anche in VB.script.
Ciao, Carlo 


Grazie per il suggerimento

 ha scritto nel messaggio 
news:abe7860d-8353-42d2...@t13g2000yqc.googlegroups.com...

Grazie per il suggerimento
Si usavo a tal proposito un programma scritto in C++ (sorry non ricordo il 
nome ma con google non avrai difficoltà)  che rimaneva in background ed 
intercettava a differenza della clipboard diversi copia e incolla....ma non 
ricordo se poi ad ogni singolo tasto potevi associare una frase....
Qui come dice Carlo sei un pò OT....ad ogni modo ti stai imbattendo in un 
campo un pò minato...anche perchè fargli riconoscere la frase da associare 
al tasto la vedo macchinosa...magari forse stabilendo un ordine....ma anche 
li poi...se un'azione dovesse venir prima ti scombussoli tutto...



stai sbagliando strada...
la cosa è fattibile...con know out di conoscenze troppo elevato da 
implementare...
se proprio volessi dovresti usare api di windows per creare tasti di scelta 
rapida...+ un WM_CHANGECBCHAIN
in ogni caso per implementarlo ci metteresti un bel po' aggiungi poi il 
fatto che dovresti fare un sacco di test e rifiniture..
io ti propongo di riempire la tua fonte dati...
e poi al limite fare una procedura di parsing..che estrapola i testi e li 
elabora e li mette in altre applicazioni..
se parli di pdf ci sono le classi per manipolarli..
se è word usi l'automation...
ecc.. 

 la cosa è fattibile...con know out di conoscenze troppo elevato da
know-how...
scusate la stanchezza ... ;)