1) E' possibile compilare un MDB ed ottenere un
EXE?
No, non vi è alcun modo per ottenere questo. L'unica possibilità offerta è
ottenere il formato MDE, che contiene il codice "compilato". In ogni caso per
poter essere eseguito deve essere installato sul computer Access o il suo
run-time (vedi FAQ 2)
2) Come posso fare per distribuire o vendere una
applicazione che ho scritto con Access anche ad utenti che non hanno Access.
Esiste un viewer di Access?
Non esiste un viewer completamente gratuito di Access.
Si deve
acquistare da un rivenditore Microsoft il pacchetto ODE. Ovvero Office
Development Edition (che attualmente costa intorno a 2 milioni). Questo
tool permette di ottenere un SETUP dell'applicazione, sia su dischetti
che su CD-Rom. Il cliente finale è completamente libero da royalties
nell'utilizzo del mio applicativo (ovvero non deve pagare nulla a Microsoft),
che potrà eseguire, ma del quale non potrà vedere o modificare il contenuto
applicativo.
Questo non significa aver protetto il nostro lavoro da sguardi
indiscreti, perché se il nostro MDB viene copiato su un PC con installato
Access, questo può essere studiato e modificato normalmente.
(Per le
versioni precedenti di Access ODE si chiama ADT ovvero Access Developper
Toolkit)
3) Come posso proteggere il mio lavoro da sguardi indiscreti?
Esistono 2 possibilità, entrambe con vantaggi e svantaggi.
La prima è
trasformare il MDB in MDE, che corrisponde a rendere pseudocompilate le
maschere, i report ed il codice. Queste parti risultano non visualizzabili,
mentre rimangono a disposizione del curioso le tabelle, query e macro. Questa
soluzione ha come vantaggio una semplicità di utilizzo.
La seconda è
utilizzare la sicurezza di Access, con utenti e gruppi. Con questa soluzione
tutto diventa inaccessibile, ma la controindicazione è la difficoltà e
macchinosità di mantenere un database protetto.
4) E' possibile convertire un MDB di Access in
una versione precedente?
No, non è possibile convertire un database di Access in versione 97 in un
database Access 95 o Access 2.
5) Alle volte capita che la funzione date() non
funziona più.
Questo fenomeno spesso succede se si sono aggiunti nel database dei
controlli OCX aggiuntivi. Quando poi si sposta il database su un altro
computer o si rimuovono i controlli OCX dal computer, o si installano nuove
versioni dello stesso, si verifica questo inconveniente. La soluzione è
ripristinare i controlli OCX, o rimuoverli completamente dal database.
Per
verificare se effettivamente la causa dell'inghippo è quanto appena descritto
effettuare le seguenti operazioni:
1) aprire un nuovo modulo
2) menu
strumenti, riferimenti
3) verificare nell'elenco che appare se qualcuno è
segnato come mancante e sistemarlo (attenzione che i mancanti potrebbero anche
essere in fondo alla lista).
6) Effettuando delle query di aggiornamento o di
accodamento vengono emesse da Access delle finestre di conferma. Come faccio ad
eliminarle?
Per poter eliminare questo "inconveniente" nel caso di una macro, fare
precedere all'esecuzione della query l'istruzione "imposta avvertimenti" a
falso. Ricordarsi dopo l'esecuzione della query di rimetterlo a vero.
Nel
caso invece di codice eseguire l'istruzione docmd.setwarnings false prima
della query e quindi ripristinarla con docmd.setwarnings true.
7) Come faccio ad imparare ad utilizzare
Access?
I manuali forniti con Access sono un ottimo inizio, accompagnati dallo
studio delle applicazioni di esempio fornite con Access.
Se volete qualcosa
in più è disponibile in linea il manuale di come costruire applicazioni con
Access 97 all'indirizzo http://www.microsoft.com/AccessDev/Articles/BApp97/BApp97.php
Anche
in biblioteca si trovano molti testi.
Il punto importante non è capire
istruzione per istruzione Access, ma il modo migliore per risolvere un
problema.
8) E' possibile gestire un testo giustificato con
Access?
No, non esiste nessuna possibilità a riguardo. L'unico miglioramento
estetico realizzabile è tramite l'OCX richtextbox, che permette di ottenere
degli ottimi risultati, ma non in ogni caso il testo giustificato. Inoltre
l'utilizzo del suddetto OCX presenta enormi problemi in fase di stampa se il
testo supera la dimensione di una pagina: in fase di stampa gli OCX non hanno
la proprietà "allargabile".
9) Problemi chiusura Access
E' possibile che dopo la chiusura manuale di Access rimanga il
task.
Per ovviare a questo problema ci sono possibilità diverse:
http://www.mvps.org/access/bugs/bugs0005.php
Access: Problems Quitting Microsoft Access
http://support.microsoft.com/support/kb/articles/Q164/4/55.ASP
Access97: Unable to Quit Microsoft Access
http://support.microsoft.com/support/kb/articles/Q190/0/74.ASP
Access2000: To Help Prevent Database Explicitly Close Recordsets
http://support.microsoft.com/support/kb/articles/Q209/8/47.ASP
10) Problemi con memoria
insufficiente.
Per caso hai collegato al DB su cui stai lavorando delle
immagini gif? eventualmente trasformale in BMP e collegale.
Cerca di non mettere immagini con molte sfumature di colore.
Puoi anche scaricare dal sito microsoft l'aggiornamento all'Office, (SR1)
che aiuta a correggere i problemi di memoria insufficiente, tuttavia non li
corregge tutti.
11) Da Visual Basic Access a Visual Basic 6
Esistono vari tools che convertono codice vbAccess in VB6 ma vi
consiglio vivamente di non usarli con troppa sicurezza, perché in molti casi il
risultato è una schifezza!!
12) Ricerca con Access.
Ipotizziamo che la tabella che contente
i vostri dati si chiami Pratiche e che
questa contenga fra l'altro i campi IDPratica (Contatore e chiave primaria)
e NomePratica (di tipo testo) sul quale vuoi fare la ricerca.
Creati una query di selezione (chiamala Query1) che abbia il seguente codice SQL:
SELECT Pratiche.IDPratica, Pratiche.NomePratica
FROM Pratiche
WHERE (((Pratiche.NomePratica) Like
IIf(IsNull([Forms]![Maschera1]![ChiaveRic]),Null,"*" &
[Forms]![Maschera1]![ChiaveRic] & "*")));
Creati una maschera a visualizzazione Maschera singola, che abbia come
Origine record la tabella Pratiche e chiamala Maschera2.
Creati un'altra maschera a visualizzazione Maschera singola non associata ad
alcuna tabella e chiamala Maschera1.
In Maschera1 inserisci una casella di testo non associata e chiamala
ChiaveRic; in Maschera1 inserisci anche una casella di riepilogo e chiamala
Elenco; Elenco deve avere 2 colonne (alle quali assegni una opportuna
larghezza), come Origine riga Query1 e come Larghezza la somma della
larghezza delle due colonne.
A fronte dell'evento "Dopo aggiornamento" di ChiaveRic genera il
seguente
codice VBA: Me!Elenco.Requery
A fronte dell'evento "Su clic" di Elenco genera il seguente codice VBA:
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "Maschera2"
stLinkCriteria = "[IDPratica]=" & Me![Elenco].Column(0)
DoCmd.OpenForm stDocName, , , stLinkCriteria
A questo punto apri Maschera1 e digita nella casella di testo la tua chiave
di ricerca e premi il tasto Invio: nella casella di riepilogo ti compariranno i
nomi di tutte le pratiche che nel campo NomePratica contengono la tua chiave di
ricerca; clicca con il mouse la riga della casella di riepilogo che contiene il
nome della pratica che vuoi visualizzare, ti si dovrebbe aprire una maschera che
te la mostra.
|