Newsgroup: it.comp.appl.access
Titolo: Problema gest. stringhe su RunTime

Innanzitutto 1 saluto: sono nuovissimo, e ringrazio anticipatamente chi può 
aiutarmi!
Ho 1 db il quale, se lo faccio girare su 1 pc con installata la versione 
completa di A. non crea alcun problema, mentre se utilizzo la runtime viene 
generato un errore di mancanza di una libreria (o funzione non supportata, 
pare) riguardo alla gestione delle stringhe: ad esempio utilizzando le funz. 
INSTR, MID, LEFT, etc.
L'errore è praticamente identico, sia in A.97 che in 2000 (sempre e solo 
nella vers. Runtime).
Non so proprio se è 1 problema irrisolvibile della Runtime (anche se mi pare 
strano): se no, spero qualcuno possa aiutarmi: altrimenti devo costringere 
il mio cliente ad acquistare Access completo!
Grazie 1000 cmq.
Marco 

 il mio cliente ad acquistare Access completo!
Il tuo è un classico problema di "riferimenti persi": nell'Editor VBA hai
impostato riferimenti a librerie che l'ambiente Runtime non trova dopo
l'installazione.
Che hai settato nei suddetti riferimenti?
Ciao.

con WORD.
In questo caso, ho solo la possibilità di togliere questi riferimenti, o 
posso aggiungerli sulle RUNTIME??
Se si, potresti dirmi come?
Grazie 1000 ancora 

 Se si, potresti dirmi come?
Beh, in fin dei conti basterebbe verificare che le librerie settate nei
riferimenti si trovino sul PC di destinazione nel percorso che Visual Basic
s'aspetta...
Comunque, in generale ti consiglio di settare solo i riferimenti
indispensabili che per un'applicazione .mdb sono
Visual basic for applications
Microsoft Access 10.00
Microsoft DAO 3.6
Potresti utilizzare l'associazione tardiva per l'automazione verso Word
senza specificare esplicitamente la libreria: trovi un post di AEOM proprio
di ieri.
Considera che non è possibile creare a codice Riferimenti a librerie con
applicazioni .MDE.
Ciao.

 ha scritto nel 
messaggio news:kTwVe.1155$pq6....@twister2.libero.it...

----------------
Se ho capito bene quindi, a parte il giusto consiglio di utilizzare solo 
riferimenti di default di A., per fare 1 prova (e anche per non dover 
riscrivere parti di codice), potrei fare così:
1) Copiare in 1 cartella stabdard (anche c:\) le librerie che mi servono
2) Nel .MDB fare riferimento a queste librerie
3) Crearmi il .MDE e provarlo su un pc con solo il runtime A.
E' giusto?
Grazie ancora, e scusa se ..rompo!

 E' giusto?
Sul PC del cliente era installata la stessa versione di Word che tu hai
utilizzato?
Il percorso delle librerie era lo stesso del tuo PC?
Ciao.


Scusa x il ritardo della risposta ma, ho avuti alcuni prolemi e non ho 
proprio potuto + leggere la posta!
---
In effetti, ho capito che la cosa fondamentale da controllare, è la vers. di 
Word installata, e la cartella di installaz.dello stesso nel client!
Sto cmq. tentando di spostare le librerie "extra" che mi servono, (e che ti 
elenco di seguito), direttamente in c:\. In questo modo, ho pensato, non 
dovrei preoccuparmi dell'esistenza e/o dove sia installato WORD (e office in 
genere).
Ho quindi pensato di creare una specie di pacchetto di installazione 
comprendente la runtime Access scelta, assieme alle librerie necessarie (le 
quali appunto saranno copiate in c:\): in questo modo la procedura non 
dovrebbe crearmi problemi anche se office fosse completamente assente no?
In Access 2000, le librerie "incriminate" sono:
- Microsoft Forms 2.0 Object library   (nome file: FM20.DLL)
- Microsoft Word 9.0 Object Library (nome file: MSWORD9.OLB)
Dovrei quindi copiare questi 2 files in c:\ per risolvere il problema no?
------
Sto anche tentando di utilizzare le dichiarazioni tardive (che mi avevi 
suggerito), ma ho alcuni problemi!
Innanzitutto, la libreria FORMS 2.0 mi è necessaria x copiare dei dati 
automaticamente sugli Appunti di Windows, e proprio non so cos'altro fare, 
se non utilizzare questa routine (che ricordo averla trovata da qualche 
parte):
' ----
Dim Clipboard As Object  ' (Dichiara a Oject la Clipboard= Appunti)
Set Clipboard = New DataObject
Clipboard.SetText "XXXXXXXX" ' viene copiata la stringa negli appunti
Clipboard.PutInClipboard
Il dimensionare la clipboard quindi, (ho notato), mi rende indispensabile 
l'utilizzo della libreria FORMS 2.0
----------------
Per quanto riguarda invece la libreria MSWORD9.0, necessaria per trasferire 
dati su Word, ho un'altra esigenza importante:
creare campi (variabili) di stampa unione (senza usare la funz. stampa 
unione di Word)!
Ovvero, da un evento, si apre automaticamente un nuovo documento WORD e 
viene automatic. conpilato (proprio come la stampa unione)
Questa è la routine (anche questa l'ho trovata da qualche parte)
' --
 Dim xWord As Word.Application   ' L'applicazione Word (come mi hai 
suggerito posso usare l'associazione tardina: xWord as Object)
Le successive dichiarazioni però, necessarie x la creazione dei campi in 
unzione, chiaramente non vengono riconosciute:
 Dim xRange As Range ' Oggetto Range  Dim xSelection As Find        ' 
Oggetto Find (mi dà errore)
 Dim xTabella As Table         ' Oggetto Tabella (mi dà errore)
 Dim xCella As Cell            ' Oggetto Cella (mi dà errore)
Questo poi è il codice relativo alle assegnazione dei campi: DTFILE, 
Protocollo, ...
Set xWord = New Word.Application
xWord.Visible = False
xWord.Documents.Add .FoundFiles(1)
          Set xRange = xWord.ActiveDocument.Range
            xRange.Find.Execute "%%DTFILE%%", , , , , , , , , [DTFILE], True
        Set xRange = xWord.ActiveDocument.Range
            xRange.Find.Execute "%%Protocollo%%", , , , , , , , , 
[Protocollo], True
        Set xRange = xWord.ActiveDocument.Range
            xRange.Find.Execute "%%descrizione%%", , , , , , , , , 
[Descrizione], True
        Set xRange = xWord.ActiveDocument.Range
            xRange.Find.Execute "%%nomin%%", , , , , , , , , 
Forms![clienti]![Ragione Sociale], True
        Set xRange = xWord.ActiveDocument.Range
            xRange.Find.Execute "%%Indirizzo%%", , , , , , , , , 
[Indirizzo], True
        Set xRange = xWord.ActiveDocument.Range
            xRange.Find.Execute "%%località%%", , , , , , , , , [località], 
True
        '  Salvataggio automatico e apertura documento
            xWord.ActiveDocument.SaveAs [xxx]
            xWord.Visible = True
            xWord.WindowState = wdWindowStateMaximize
            xWord.Application.Activate
Non so se sono riuscito ad essere chiaro, e se le mie 2 esigenze possano 
essere risolte cmq. con associazioni tardive, o cos'altro.
Ti ringrazio molto x la disponibilità e a chi voglia darmi 1 mano!
Marco