title: Dbase disponibile su Internet

author: Luciano (DOC)

text:
"Alessio Volontč" <
alex...@tin.it
> ha scritto nel messaggio
news:a4678a43bcb26b931ea...@mygate.mailgate.org...
> Avrei la necessitą di rendere un dbase creato con access disponibile su
> internet. E' possibile?
Certamente!
> In pratica vorrei creare della pagine internet che funzionino come
> maschere di access, o per lo meno consentano di fare operazioni
> similari.
Idem.
> Al momento non voglio sapere come fare, ma soltanto avere un giudizio di
> fattibilitą del progetto senza ricorrere al complesso e costoso SQL
> server.Che dite?
Che dipende dalla quantita e dalla struttura dei dati. Ma Access e' usabile
molto piu' spesso di quanto non si dica in giro.
Per avere un'idea guarda la ricerca sui vecchi msg del NG su
www.sitocomune.com
Saluti.
Luciano


title: Dbase disponibile su Internet

text:
> Avrei la necessità di rendere un dbase creato con access disponibile su
> internet. E' possibile?
Si, ma con una struttura ASP (pagine web dinamiche con base dati origine -
tra le quali anche DB Access - )
--
Maurizio75


title: Dbase disponibile su Internet

author: MegaMax

text:
> Al momento non voglio sapere come fare, ma soltanto avere un giudizio di
> fattibilità del progetto senza ricorrere al complesso e costoso SQL
> server.Che dite?
che con ASP si può fare, ma con access la microsoft garantisce al massimo 10
utenti contemporanei (magari possono essercene anche di più, ma non è
garantito, e dipende dalla struttura del DB)
Da una FAQ relativa ad ASP trovata in rete riporto quanto segue:
What are the limitations of Access?
25,230 requests - last updated Friday, November 2, 2001
It's no secret: I hate Access. I don't think it should be used in a
production environment for anything more
than a personal website, and an unpopular one at that. If you're building a
web site that you expect will be
even remotely successful, you're only delaying the inevitable by using
Access now. You will eventually be
forced to upgrade to SQL Server (or something similar).
I have many reasons for this, most from first- or second-hand experience.
I'm not going to get into all of those
right now, because it is somewhat biased by my experience, and the type of
applications I specialize in (which
likely varies from the typical ASP programmer).
My primary reason, however, is that Access (and the Jet drivers) can only
manage a handful of users at any
given time (see Q154869). I've received plenty of criticism from people who
expect there to be a hard-lined,
cover-all-your-bases, magic number for this. Sorry to disappoint you, but
there isn't. There are far too many
variables involved, such as (in no particular order):
n ODBC driver version
n database structure
n number of tables queried
n number of queries per user
n size of tables
n number of records
n number of fields
n size of fields
n use of stored queries
n use / size of indices
n bandwidth
n processor speed
n disk subsystem
n RAM
n hard drive space
n behavior of users
Microsoft doesn't even publish hard numbers for this; they just use off-hand
references such as "ten or fewer"
and never define "high concurrency."
http://www.aspfaq.com/plain.asp?id=2195
 (1 of 7) [2/5/2002 8:40:16 AM].#2195
: What are the limitations of Access?
For some people, this is fine. If you have a site with a guestbook, and you
get a few dozen entries a week,
Access should be fine. But if you have a site like this one, with
database-driven navigation, full search
functionality and megs of data flowing each day, you may want to read this
article in its entirety before settling
for Access.
======================
From Q222135
"While Microsoft Jet is consciously (and continually) updated with many
quality, functional, and performance
improvements, it was not intended (or architected) for the high-stress
performance required by 24x7 scenarios,
ACID transactions, or unlimited users, that is, scenarios where there has to
be absolute data integrity or very
high concurrency."
======================
From Q225048
"...Microsoft Jet can only handle a limited number of sessions. If your
application uses a large number of ADO
Data controls, Jet may run out of resources."
======================
From Q240317
"Microsoft Jet has a read-cache that is updated every PageTimeout
milliseconds (default is 5000ms = 5
seconds). It also has a lazy-write mechanism that operates on a separate
thread to main processing and thus
writes changes to disk asynchronously. These two mechanisms help boost
performance, but in certain
situations that require high concurrency, they may create problems."
======================
From
http://msdn.microsoft.com/library/en-us/dnmsde/html/msdeforvs.asp
"Jet can support up to 255 concurrent users, but performance of the
file-based architecture can prevent its use
for many concurrent users. In general, it is best to use Jet for 10 or fewer
concurrent users."
http://www.aspfaq.com/plain.asp?id=2195
 (2 of 7) [2/5/2002 8:40:16 AM].#2195
: What are the limitations of Access?
======================
From
http://msdn.microsoft.com/library/en-us/dnduwam/html/d2dbase.asp
"Phase 2 of the Duwamish Books sample includes a Microsoft® Access .mdb
database, although this
technology supports fewer concurrent users than does Microsoft SQL Server."
======================
You're not going to get hard numbers from anyone else that apply
specifically to your application. It is YOUR
responsibility to benchmark YOUR application and make sure that Access can
handle the maximum number of
simultaneous users YOU expect (or hope for). Not performing this kind of
test is doing a disservice to you, your
employer, and your client -- and opening all up to risk of failure.
With all that aside, if you're stuck with Access, here is a list of links to
KB articles revolving around specific
Access error messages. This isn't a completely exhaustive list, but it
should serve to be a good starting point.
80040e07 - Data type mismatch in criteria expression.
Q136059, Q175258, Q184948, Q208425, Q210244, Q246570
80040e10 - Too few parameters. Expected <x>.
Q162980, Q171850, Q172898, Q178070, Q181209, Q181832, Q184233, Q191619,
Q205972, Q207586,
Q216425, Q237994
80040e14 - The Microsoft Jet Database engine cannot find the table or query
'tablename'. Make sure it exists
and that its name is spelled correctly.
Q184572
80040e14 - Syntax error in FROM clause.
Q181489
80040e4d - Too many client tasks.
Q154869
80004005 - The Microsoft Jet database engine cannot open the file
'(unknown)'. It is already opened
exclusively by another user, or you need permission to view its data.
Q166029, Q174943, Q189408
http://www.aspfaq.com/plain.asp?id=2195
 (3 of 7) [2/5/2002 8:40:16 AM].#2195
: What are the limitations of Access?
80004005 - Data source name not found and no default driver specified.
Q159682, Q174655, Q184572
80004005 - Operation must use an updateable query.
Q175168
80004005 - Couldn't use '(unknown)'; file already in use.
Q174943
==================
Aside from the concurrent user and permissions problems, Access lacks many
other qualities of a mission-critical,
enterprise-level database.
==================
Scalability
==================
I don't believe it can be stressed enough that Access will simply not stand
up to traffic. I realize it is tough to
simulate TRUE load testing in a development environment, but if it can
prevent you from launching an
inadequate database, it will be worth the trouble. Mission-critical
databases should laugh at traffic; database
servers should buckle under bandwidth and RAM contsraints before they're
ever stopped by the database itself.
As an added point, SQL Server has the flexibility of actually using multiple
processes on an SMP machine.
==================
Backup
==================
Access doesn't have a good backup scheme; in fact, it doesn't have a backup
scheme at all. Being file-based,
there are two problems with attempting to back up Access: (1) if records are
modified while the backup is
being performed, the backup may become corrupt; and, (2) many backup
programs won't even touch a file
that is in use. Most capable database systems have a variety of configurable
backup schemes, and SQL Server
is no exception. SQL Server also has comprehensive locking facilities,
making it much more difficult to corrupt a
backup.
Similarly, it is near impossible to modify an Access database while it is
'live', e.g. while any user has a page
http://www.aspfaq.com/plain.asp?id=2195
 (4 of 7) [2/5/2002 8:40:16 AM].#2195
: What are the limitations of Access?
opened that is accessing any table within. You have to copy the database,
make your changes, and replace the
'live' version - waiting until nobody is on your site. Not something that
can be tolerated in a 24/7 environment.
==================
Replication
==================
A decent database system has at least one way to replicate / transfer
content from one database, or one
server, to another. SQL Server has multiple options for Data Transformation
Services (DTS), and can have
external tools "plugged in" to perform similar tasks. With versions of
Access prior to 2000, it was always right-click,
copy .mdb file, paste. Yuck.
==================
Security
==================
Capable database platforms have multiple levels of configurable security,
down to the object level. A user can
also be permitted across databases and across servers. Through the context
of ASP, Access only has the ability
to password protect a database on a single file basis, so you can't have
custom permissions per query, table or
view.
Another element of security is that even password-protected MDB files are
easily compromised simply by
importing them into an Access 2000 application.
==================
Transactions
==================
SQL Server is a transactional database. Aside from remote stored procedures,
any set of operations within a
transaction can be rolled back. With Access, you would have to either (a)
use transactions from an external
application, e.g. COM+ or MTS; or (b) revert to a previous copy of the
database.
==================
Triggers
==================
In SQL Server, triggers allow you to perform operations in response to
certain events without slowing down the
http://www.aspfaq.com/plain.asp?id=2195
 (5 of 7) [2/5/2002 8:40:16 AM].#2195
: What are the limitations of Access?
calling application. For example, you could have SQL Mail send you an e-mail
after every five inserts to the
ORDERS table where the order total is greater than $50. With Access, you
would have to create a table, store a
count for the number of times such an insert occurs, and code the
application to send mail at insert time
(which slows down the application itself). Not the prettiest solution.
==================
SQL Mail
==================
SQL Server supports a native mail format; as long as there is an Exchange
Server within reach, you can tell the
database to e-mail specific users on certain events... e.g. within a
trigger, or when certain database tasks fail.
With Access, you would have to code this stuff up yourself - assuming you
find some way to trap the event(s)
in the first place.
==================
Jobs
==================
SQL Server supports jobs, allowing you to schedule database tasks and have
the system execute them
automatically (instead of a user having to invoke them). You can schedule
jobs to be performed when the CPU
is idle, or at certain times during the day. We use this for
number-crunching at the end of each day, and for
archiving stats throughout the day to keep our 'active' tables as small as
possible.
==================
Stored Procedures
==================
Yes, Access supports stored queries. But IMHO, these are nowhere near as
powerful as stored procedures. For
one, it is difficult to have stored queries access data from different
databases. With stored procedures, this is
trivial at worst. SQL Server stored procedures support cursors and temporary
tables, both of which are very
powerful tools in sorting data and performing operations/calculations/logic.
Additionally, SQL Server comes with several system and extended stored
procedures, which you can plug into
your existing logic to do all sorts of things (such as retrieve a directory
file listing (exec xp_cmdshell 'dir
c:\'), list all of the users currently accessing your database (exec
sp_who), or iterate through all DSNs on the
server (exec xp_enumdsn). Try and do those things from Access!
http://www.aspfaq.com/plain.asp?id=2195
 (6 of 7) [2/5/2002 8:40:16 AM].#2195
: What are the limitations of Access?
==================
Again, if you want to use Access for your personal photos page or your CD
collection, and you're not going to
publish it for the world to see, then Access is more than capable. I
strongly recommend not using Access in
any application for which a 3rd party is relying on you, especially an
e-commerce or other 24/7 operation.
And I'm not saying you have to use Microsoft's SQL Server, or even the
latest version (I like 2000, but 7.0 is
more or less equally beneficial). While it is the database that is the
natural 'next step' - and many upsizing
tools and tutorials are available (see Article #2182). There are several
other database packages you can look
at, each with their own strengths and weaknesses. These include Sybase, DB2,
Oracle, Informix... my
preference, as you might guess, is SQL Server... but I do have some level of
faith in all of these products.


title: Chiudere documento word se non trova i dati(scusate forse 3 post)

author: FabrizioLoL

text:
Scusate forse è il 3 post ma non mi si vede fra quelli in arrivo ......
Ragazzi come risolvo questo problema:
Allora ho creato un pulsante di comando che mi esporta in automatico i
dati in un documento word formattandonoli.(seguendo l'esempio sul sito
Davide Pizzamiglio,)
Adesso vorrei però migliorare la cosa mettendo l'opzione che se non vi
sono dati da esportare mi deve chiudere il documento word senza
salvarlo e aprire la mia maschera di inserimento dati
allora la mia intenzione è questa:
1° esempio Nel casp in cui non trova il nome Cliente
Doc.Bookmarks("Ditta").Select
     If Len("" &
[Forms]![Ordine]![Sub_DettaglioOrdine].[Form]![Nome_Cliente]) > 0 Then
     Wrd.Selection.TypeText
[Forms]![Ordine]![Sub_DettaglioOrdine].[Form]![Nome_Cliente]
     Wrd.Selection.Font.Bold = True
     Else
     Messaggio = "Devi Inserire in Nome del Cliente "
     Risposta = MsgBox(Messaggio, vbInformation + vbOKOnly, "XXXXXX")
     Select Case Risposta
     Case vbOKOnly
     ' qui dovrei inserire un comando che mi permetta di chiudere il
doucmento word, senza salvarlo e aprire in automatico la maschera ordini.
     DoCmd.OpenForm "Ordine"
     End Select
     End If
Mi aiutate grazie in anticipo
P.s. Forza Italia!!!!!!! ( non quella del Berlusca)
--
Creato con il rivoluzionario client e-mail di Opera:
http://www.opera.com/mail/


author: Sergio MAZZA

text:
"FabrizioLoL" <
f_j...@libero.it
> ha scritto nel messaggio news:op.ta1qp...@xvista.belkin...

Prima di aprire il documento word, conti se nella selezione/tabella si sono record:
es.
if DCount("*","nomeTabella/Query") > 0 then
    ...apro doc word e scrivo...
else
    ...faccio dell'altro...
end if
Ciao.
--
Sergio MAZZA


text:
In data Tue, 13 Jun 2006 07:44:10 +0200, Sergio MAZZA
<
sergi...@tiscali.it
> ha scritto:

Grazie sergio , Fatto tutto ok Grazie
Sei un grande......



title: Giorni lavorativi.

author: CARLO

text:
Nel sito COMUNE ho letto e visto che esiste una rutine che dovrebbe essere
adatta al calcolo dei giorni lavorativi.
Dato che con Access sono alle prime esperienze vorrei sapere se qualcuno può
avere la pazienza di aiutarmi a capire come fare ad utilizzare la suddetta
routine.
Vi ringrazio sin da ora, e colgo l'occasione per salutrvi cordialmente.
Carlo


title: Giorni lavorativi.

author: Roberto dalla campagna

text:
CARLO <
carlob...@tin.it
> wrote in message
fas39.167905$Jj7.3...@news1.tin.it...

Tramite il copia-incolla copia ed inserisci in un modulo del tuo database le
tre funzioni che sono scritte nella FAQ del Sito Comune cui fai riferimento.
Se la data di inizio periodo è contenuta in una variabile Data/ora chiamata
DataInizio.
Se la data di fine periodo è contenuta in una variabile Data/ora chiamata
DataFine.
Se la variabile booleana che contiene True (settimana corta ovvero di 5
giorni lavorativi) o False (settimana lunga ovvero di 7 giorni lavorativi)
si chiama Pippo.
Se la variabile numerica in cui vuoi che ti vengano restituiti il numero di
giorni lavorativi contenuti nel periodo si chiama GiorniLavorativi.
In una routine VBA scrivi:
GiorniLavorativi = ContaLavorativi(DataInizio, DataFine, Pippo)
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------


title: requery di una maschera

author: cio

text:
ciao
sono riuscito a fare la copia di record da una tabella all'altra e ora ho un
problema di requery (Access 2000).
La situazione č questa: dopo aver fatto copiare i dati tramete un bottone
nella Maschera1 mi ritrovo i dati nella Tabella2. Contestualmente, alla
pressione dello stesso bottone faccio aprire la Maschera2.
Quando apro la Maschera2 non vedo i dati aggiornati, ma vedo i dati prima
dell'azione del tasto "copia".
Se chiudo manualmente la  maschera e la riapro il dato copiato viene
visualizzato...
Ho provato a mettere
Private Sub Form_Load()
    Form.Requery
    DoCmd.RepaintObject acDefault
End Sub
Ho provato anche con Me.Requery al posto di Form.Requery ma senza esito...
Avete qualche idea del perchč non funziona?
Grazie 1000
cio


title: requery di una maschera

text:
"cio" <
c...@cio.it
> ha scritto nel messaggio news:g421ts$g1s$1...@aioe.org...
> ciao
>
> sono riuscito a fare la copia di record da una tabella all'altra e ora ho
> un problema di requery (Access 2000).
>
ho risolto banalmente facendo aprire la maschera2 dopo aver fatto fare la
copia... :-P
cio


title: requery di una maschera

text:
"cio" <
c...@cio.it
> ha scritto nel messaggio news:g421ts$g1s$1...@aioe.org...
> ciao
>
> sono riuscito a fare la copia di record da una tabella all'altra e ora ho
> un problema di requery (Access 2000).
>
> La situazione è questa: dopo aver fatto copiare i dati tramete un bottone
> nella Maschera1 mi ritrovo i dati nella Tabella2. Contestualmente, alla
> pressione dello stesso bottone faccio aprire la Maschera2.
>
> Quando apro la Maschera2 non vedo i dati aggiornati, ma vedo i dati prima
> dell'azione del tasto "copia".
>
> Se chiudo manualmente la  maschera e la riapro il dato copiato viene
> visualizzato...
>
> Ho provato a mettere
>
> Private Sub Form_Load()
>    Form.Requery
>    DoCmd.RepaintObject acDefault
> End Sub
>
> Ho provato anche con Me.Requery al posto di Form.Requery ma senza esito...
>
> Avete qualche idea del perchè non funziona?
>
> Grazie 1000
> cio
Come copi i record da maschera a maschera (tabella a tabella)?
Provo a ipotizzare:
- se entrambe le maschere (sorgente e destinazione) sono aperte:
Forms!nomeMascheraDestinazione!nomeCasellaDestinazione =
Me!nomeCasellaSorgente
è immediato e non richiede un rinfresco della maschera di destinazione.
Mentre se utilizzi le query; se la maschera di destinazione è chiusa,
all'apertura i dati saranno freschi. Se la maschera è aperta devi
rinfrescarli con un: Forms!nomeMascheraDiDestinazione.Form.Requery
Tutte le indicazioni devi eseguirle dalla maschera sorgente, dove viene
scatenato l'evento di "copia record"...
Ciao.
--
Sergio MAZZA


title: Elimare un campo

author: bonecher

text:
Come posso, tramite codice VB, eliminare l'intero campo in una tabella?
Ciao e grazie
--------------------------------
Inviato via
http://usenet.iol.it


title: invio mail con outlook ma non mette la firma

author: mario rossi

text:
buongiorno a tutti, ho impostato outlook in modo che se lo apro da windows e creo un messaggio mi mette la firma in basso costituita da
un logo, 2 link (sito e email) e una riga di testo

utilizzando da VBA questo codice apre il messaggio ma senza firma, esiste un comando per formare l'inclusione della firma? oppure posso integrare nel corpo del messaggio un immagine, un link cliccabile tipo
www.miosito.it

<CODE>
    Dim NewMail As Object
    Set NewMail = CreateObject("Outlook.Application").CreateItem(oMailItem)
    With NewMail
        .To = destinatario
        .Subject = oggetto
        .Body = testo
        .display
        '.Send commentato per non inviare subito
    End With

grazie.


text:

ho risolto utilizzando  .HTMLBody al posto di .Body e costruendo riga per riga utilizzando l'html

.HTMLBody = "testo prova" & "<br>" & .HTMLBody


author: BFS

text:

devi creare il testo della mail in html e non in testo semplice
quindi

.HTMLBody = testo

invece di

.Body = testo

testo dovrà essere scritto in html
quindi esempio per scrivere qualcosa in grassetto "ciao <b>ciao in
grassetto<b>"

avendo a disposizione i comandi html puoi aggiungere anche immagini e altro

se disponi anche di una firma gia fatta sottoforma di file html puoi
"accodarla" al tuo testo html tramite

.HTMLBody = testo  & "br" & GetBoiler("c:\tuafirma.html")

dove getBolier

Function GetBoiler(ByVal sFile As String) As String
'**** Kusleika
Dim fso As Object
Dim ts As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.GetFile(sFile).OpenAsTextStream(1, -2)
GetBoiler = ts.ReadAll
ts.Close
End Function

BFS


title: Package setup wizard di ADE, Run-time  e riferimenti

author: Four wheeler

text:
Dovo aver creato una piccola applicazione con A03 ho deciso di creare un
pacchetto di installazione con Access Developer Extension (ADE) per far
girare l'applicazione su un Pc che non ha Access installato.
Il problema è che una volta installato il pacchetto su tale macchina
l'applicativo si blocca subito perchè non riconosce delle elementari
funzioni di VBA (per esempio Lef$(...)). Da quanto ho capito non è
sufficiente installare il run time; sembra che il problema sia la mancanza
delle librerie e cosi pure i componenti per utilizzare oggetti come il
controllo Calendario o l'oggetto  Filedialog (insomma tutte le librerie
selezionate nel menù Riferimenti). Il pacchetto gira benissimo sulla
macchina dove è stato prodotto ed è installato Access. In una vecchia
versione di ADE per A97 c'era la possibilità di aggiungere facilmente i
componenti necessari ed il wizard provvedeva a creare le opportune chiavi di
registro. Ora come posso fare? C'e un modo semplice per risolvere il
problema senza essere costretto ad installare Access sulla macchian dove
dovrebbe girare il pacchetto? Non vorrei rischiare operazioni manuali che,
se errate,  potrebbero corrompere irrimediabilmente il registro di WinXP.
Grazie per i suggerimenti


author: Carlo Costarella

text:
"Four wheeler" <
no_ma...@nomail.it
> ha scritto nel messaggio
news:43ad4315$0$1072$4faf...@reader4.news.tin.it...

 Dimentica le operazioni manuali sul registro...da evitare se non lo si
conosce a fondo.
La creazione guidata pacchetti ti permette di aggiungere altri file
all'installazione.
Questi altri file debbono essere scelti tra quelli di cui disponi la licenza
di distribuzione.
La prima cosa da fare e controllare i riferimenti e prendere nota di tutti i
file non standard. Per esempio ocx o dll non standard. Se il tuo applicativo
ha un riferimento alla libreria di Office11 è evidente che anche il cliente
deve avere Office11 altrimenti non hai le autorizzazioni per distribuire
tale libreria. Il controllo calendario puoi liberamente distribuirlo perchè
hai la versione developer di Access (Office), così come cmdlg32.ocx o
comctl32.ocx o altri inclusi nella licenza del developer. Normalmente il
pacchetto di installazione provvede automaticamente a inserire questi
controlli ma qualora non lo facesse puoi aggiungerli manualmente usando
"Aggiungi file" durante il wizard.
Spero di esserti stato di aiuto.
Ciao e Buon Natale
Carlo


text:
"Carlo Costarella" <
carloco...@libero.it
> ha scritto nel messaggio
news:43ad8073$0$1051$4faf...@reader2.news.tin.it...

Ti ringrazio della risposta ma rimango perplesso.
Divido in due il problema: licenze e funzionamento:
Per quanto riqgurda le licenze io dovrei includere una liberia di office 11
in quanto ho usato il controllo file dialog che credo faccia parte della
libreria di Office 11. Visto quello che fa il suddetto controllo (serve per
salvare un file con un nome a scelta) mi sembra strano che il cliente debba
avere una licenza di Office solo per questo. Ma può essere, anche se mi
sembra assurdo e vessatorio. Sei sicuro di questo? Se è così, a questo punto
è inutile utilizzare il run time e creare un disco di installazione se poi
devo far acquistare una licenza solo per usare un file di pochi kb! Come
faccio inoltre a capire quali della lunga lista di riferimenti presenti
posso distribuire o meno? Alcuni mi informano, quando tento di utilizzarli
che non posso farlo perchè non ho la licenza; e va bene. Ma gli altri? La
lista è lunga ...
Al di la del problema della licenza che cercherò di indagare meglio e su cui
sono gradite comunque ulteriori osservazioni, non credo che il mancato
funzionamento dipenda dalla licenza a meno che non si intenda che per far
funzionare l'applicazione dovo installare completamente Access (anche le
parti che non servono!).
Quanto al funzionamento, come faccio a capire quali sono i controlli
standard e quelli non standard. Io ho provato ad aggiungere tutti i files
dei riferimenti utilizzati ma su  un PC di prova senza Access la macro
iniziale di autoexec si blocca subito alla chiamata di una prima funzione,
che tra l'altro non sfrutta neanche componenti particolari ma solo
istruzioni VBA che controllano la presenza del backend.
Ricambio gli auguri di Buon Natale
Ciao


author: Alfredo Rossi

text:
"Four wheeler" <
> Ti ringrazio della risposta ma rimango perplesso.
> Divido in due il problema: licenze e funzionamento:
> Per quanto riqgurda le licenze io dovrei includere una liberia di office
11
> in quanto ho usato il controllo file dialog che credo faccia parte della
> libreria di Office 11. Visto quello che fa il suddetto controllo (serve
per
> salvare un file con un nome a scelta) mi sembra strano che il cliente
debba
> avere una licenza di Office solo per questo. Ma può essere, anche se mi
> sembra assurdo e vessatorio. Sei sicuro di questo? Se è così, a questo
punto
> è inutile utilizzare il run time e creare un disco di installazione se poi
> devo far acquistare una licenza solo per usare un file di pochi kb! Come
> faccio inoltre a capire quali della lunga lista di riferimenti presenti
> posso distribuire o meno? Alcuni mi informano, quando tento di utilizzarli
> che non posso farlo perchè non ho la licenza; e va bene. Ma gli altri? La
> lista è lunga ...
Io ho utilizzato la versione developer dal 97 al XP (non ho acquistato
access 2003), però non penso le cose siano cambiate più di tanto rispetto
alla versione con cui tu stai impazzendo  (in senso lato  :-)
Allora, la libreria office, fino ad access 10, è indispensabile per il
funzionamento del prodotto, sia Full che Runtime: come tu pensi viene
automaticamente installata durante l'esecuzione del package.
Si trova in c:\programmi\file comuni\microsoft shared\office XX\MSO.DLL
(vado a memoria)
Quindi puoi anche inserire riferimenti espliciti a quella libreria e se il
pacchetto d'installazione Runtime non è impazzito, l'applicazione
funzionerà.
Il fatto è che a volte, per ragioni mai ben chiarite, il package non
registra correttamente delle componenti e nascono i problemi di "lost
references") che vedi.
Nel caso tuo devi controllare che la libreria MSO.DLL (credo si chiami così
anche con Access 11) si trovi nella posizione che tu hai assegnato nei
riferimenti del File .ADP/ADE: se non coincidono devi sistemare a mano.
Per evitare questi problemi io ho rinunciato a utilizzare controlli
aggiuntivi (in fondo servono molto di rado) e usare l'associazione tardiva
evitando la dichiarazione esplicita della libreria Office o Graph.
In rapporto al FileDialog, ti faccio notare che con Access XP non funziona
in modalità Runtime
http://support.microsoft.com/kb/824272/en-us
    (lo dice anche all'inizio)
Presumo che la situazione sia la stessa col 2003, quindi evita di usarlo e
ricorri alle classiche API per la gestione di selettori files e cartelle:
vanno benissimo.
> Al di la del problema della licenza che cercherò di indagare meglio e su
cui
> sono gradite comunque ulteriori osservazioni, non credo che il mancato
> funzionamento dipenda dalla licenza a meno che non si intenda che per far
> funzionare l'applicazione dovo installare completamente Access (anche le
> parti che non servono!).
>
> Quanto al funzionamento, come faccio a capire quali sono i controlli
> standard e quelli non standard. Io ho provato ad aggiungere tutti i files
> dei riferimenti utilizzati ma su  un PC di prova senza Access la macro
> iniziale di autoexec si blocca subito alla chiamata di una prima funzione,
> che tra l'altro non sfrutta neanche componenti particolari ma solo
> istruzioni VBA che controllano la presenza del backend.
>
> Ricambio gli auguri di Buon Natale
Tutte le componenti incluse nel file .zip della versione DEV sono sotto
licenza  (vale a dire praticamente tutto quello che serve).
Ma non capisco bene se tu ti riferisci a controlli OCX: spiegati meglio.
Auguri natalizi   :-)


text:
"Four wheeler" <
no_ma...@nomail.it
> ha scritto nel messaggio
news:43ad9a52$0$1082$4faf...@reader4.news.tin.it...

Il FileDialog puoi benissimo sostituirlo con il common dialog ocx
(comdlg32.ocx) di cui hai la licenza di distribuzione.
Il fatto che il codice si blocca su semplici funzioni come Left non vuol
dire che l'errore è da riferirsi alla libreria di VBA ma piuttosto ad un
riferimento mancante, uno qualsiasi.
Controlla bene tutti i riferimenti e vedrai che tutto funziona. Tieni
presente che in tutti i linguaggi di programmazione, quando distribuisci un
applicativo con dll o ocx "esterni" o di terze parti, devi avere la licenza
per farlo...non è un problema di Access.
Nella creazione del pacchetto di installazione puoi scegliere dove mettere
le dll o ocx: nella cartella di lavoro, in cartelle condivise o cartelle di
sistema. Inoltre spesso gli ocx "terzi" per funzionare hanno bisogno del
runtime di VB6 o VB5. Questi li puoi trovare e liberamente installare sul
sito Microsoft oppure qui:
Runtime vb5:
www.frantoiogestione.com/vbrun50.exe
Runtime vb6:
www.frantoiogestione.com/vbrun60sp5.exe
Prova e fammi sapere.
Ciao, Carlo


text:
Ho passato il Natale in montagna  a sciare (poco...) di giorno e ad
impazzire (molto .. ) di sera.
Ho fatto alcune prove e modifiche:
a) Ho controllato tutti i file da aggiungere al pacchetto di installazione,
predendo nota di tutti i file che compaiono nel menu "Riferimenti" e li ho
aggiunti nel Wizard.
b) per sicurezza  ho inserito all'inizio dell'applicazione un controllo su
tutti i riferimenti (if References ("NomeDel Riferimento).IsBroken Then
References.AddFromFile "NomeDelFile"
c) ho tolto la macroAutoexec che richiamava semplicemente la routine di
controllo del backend (mi sembrava che le macro non piacessero al runtime) e
ho richiamato la medesima routine nell' evento su caricamenteo dello
SplashScreen
d) Ho eliminato il caricamento della maschera iniziale del Menù
dell'applicazione dove ci sono i tasti per aprire le diverse maschere, più
altre cose che temevo potessero dare in qualche modo fastidio: ad esempio
due  caselle di testo nelle quali come origine dei dati vi sono due funzioni
pubbliche scritte in un Modulo, che calcolano il saldo di Cassa e della
Banca e che, al caricamento della maschera, presentano la scritta "errore"
mentre  nel contempo compare comunque anche il fatidico messaggio di errore
di run time con conseguente uscita dall'applicazione
e) ho sostituito pertanto come maschera inizale al posto della maschera del
Menù  una delle maschere dove effettuo il caricamento dei dati
f) ho provveduto a creare la chiave di registrodella macchina di prova  in
modo da impostare la modalità di protezione delle macro in "Bassa"
Il risultato è il seguente:
A) L'applicazione parte e se il backend è dove dovrebbe essere e
l'applicazione lo trova. In caqso contrario si blocca mentre sta cercando di
connettersi al backend (evidentemente la routine .. non funziona)
B) La maschera di caricamento dei dati si apre e posso scorrere i record
contenuti nel backend
Faccio a questo punto una precisazione.
Su questa maschera c'e un pulsante con la scritta "Modifica" che, quando
premuto, richiama una funzione pubblica (ModificaSalva) che fa cambiare
colore di primo piano e di sfondo ad alcune caselle, permette la modifica
del record e cambia la dicitura del pulsante in "Salva". Premendo il
pulsante in questa situazione viene richiamata una funzione, definita nel
modulo della maschera, che controlla la correttezza dei dati, e in caso
affermativo richiama la medesima funzione pubblica ModificaSalva che in
questo caso aggiorna il record, riporta il colori delle caselle al colore
iniziale e ricambia la dicitura del pulsante in "Modifica".
C) Quando premo il pulsante Modifica il comportamento è normale, cioè viene
fatto tutto quello previsto. Quando però premo lo stesso pulsante quando vi
è la scritta "Salva" compare il maledetto "Errore di Run time".
In conclusione sembra che quando vengono chiamate delle funzioni  o delle
Subroutine (no tutte però) il runtime impazzisca. Ho anche un sospetto sulla
"famigerata" modalità sandbox e sulla protezione delle Macro, oppure sui
diversi stndard del linguaggio SQL (ANSI  92 e via dicendo) utilizzati nelle
predette funzioni che calcolano i saldi di Cassa e Banca ma non capisco come
possano contribuire solo sulla modalità run time. Ricordo infatti che con la
versione completa di Access tutto funziona a dovere. L'unico "neo" è che non
si riecsce a creare un file mde in quando access
"Alfredo Rossi" <
alfred...@nospam.net
> ha scritto
>In rapporto al FileDialog, ti faccio notare che con Access XP non funziona
>in modalità Runtime
>...
>Presumo che la situazione sia la stessa col 2003, quindi evita di usarlo e
>ricorri alle classiche API per la gestione di selettori files e cartelle:
>vanno benissimo.
Ho il terrore delle API, dovuto a mia ingnoranza ovviamente! Ho già i miei
problemi con il VBA senza  le API, e inoltre non so neanche da che parte
cominciare ad usare le API che mi hanno detto che, se usate male, possono
fare grossi danni. Non sai indicarmi dove posso trovare qualcosa di già
pronto che risponde al problema specifico.
"Carlo Costarella" <
carloco...@libero.it
> ha scritto
> Nella creazione del pacchetto di installazione puoi scegliere dove mettere
> le dll o ocx: nella cartella di lavoro, in cartelle condivise o cartelle
> di sistema. Inoltre spesso gli ocx "terzi" per funzionare hanno bisogno
> del runtime di VB6 o VB5.
Le DLL /OCX incluse sono le seguenti:
VBA:    VBE6.DLL
Access: MSACC.OLB
stdole: stdole2.tlb
VBIDE:  VBE6EXT.OLB
DAO:    dao360.dll
ADODB: msado21.tlb
MSACAL: MSCAL.OCX
Office: MSO.DLL
A parte il fatto che può darsi che qualcuna di queste sia pure inutile in
quanto rimasuglio di parti di programma abbandonate o tentativi abortiti di
soluzione di un problema , dal punto di vista delle licenze a me sembrano
tutte appartenenti a Access/Office e non dovrebbero quindi avere bisogno del
runtime di VB6. Se comunque con questi componenti la macchina deve avere
Aceess  o, peggio, Office installato(dal punto di vista delle licenze),
allora mi arrendo e rinuncio a creare il pacchetto di installazione che a
questo punto è inutile. Però vorrei capire il perchè (o meglio dove ho
sbagliato) nell'avere un differente comportamento fra runtime e versione
completa (problema Filedialog a parte).
Saluti e grazie
PS Se ritardo a rispondere è solo perchè sto tentando di mettere in pratica
i vostri suggerimenti ( a volte devo pure andare a leggere qualche pagina di
diversi libri per poter mettere in pratica i vostri consigli in taluni casi
un po' complessi per le mie attuali conoscenze, vedi API per esempio) oppure
sto cercando di disintossicarmi la mente (operazione non facile quando un
testardo come io sono sta impazzendo su un problema) andando a sciare.
Comunque grazie ancora per la collaborazione.


author: Oscar Manfredini

text:
"Four wheeler"
Dato che Alfredo e Carlo saranno a sciare, m'intrometto   :-)
(tagliato)
> Ho il terrore delle API, dovuto a mia ingnoranza ovviamente! Ho già i miei
> problemi con il VBA senza  le API, e inoltre non so neanche da che parte
> cominciare ad usare le API che mi hanno detto che, se usate male, possono
> fare grossi danni. Non sai indicarmi dove posso trovare qualcosa di già
> pronto che risponde al problema specifico.
Se usate male (e se molto particolari), ma qui Alfredo parlava di due
autentici "must"   ;-)
www.sitocomune.com
Sezione General:
 6.5     Richiamare la finestra di dialogo per la selezione di una
directory.
6.22    Richiamare la finestra di dialogo per la selezione di un file.



Beh, è scontato che se per far funzionare un'applicazione è necessario
installare Access, il Runtime non servirebbe!   :-)
Dall'elenco sopra, comincia a eliminare stdole2.tlb e vbe6ext.olb (è molto
improbabile che tu le usi).
Al posto tuo rinuncerei al controllo calendario OCX  MSCAL.OCX (sul sito
comune o quello di Baraldi trovi degli splendidi calendari VBA, che puoi
pure personalizzare).
Perchè hai inserito la libreria di oggetti DAO360 in un file ADP/E  (i files
di progetto lavorano con ADO non con DAO)?
Rinunciando all'oggetto FileDialog dovresti poter eliminare dai riferimenti
anche MSO.DLL  (usi forse codice per manipolare a Runtime le commandbars?)
Ciao, Oscar


text:
Ok; ho tolto tutti i riferimenti che evidentemente erano inutili, ho
abbandonato il maledetto calendario Microsoft per uno,trovato sul Sito
Comune,  molto semplice (ma funzionante, a differenza di quello MS che non
veniva visualizzato sulla maschera pur in presenza del riferiemento
corretto)   è ho tolto pure i riferimenti  a Filedialog.
Comunque alla fine di estenuanti prove sono riuscito a risolvere il problema
generale di funzionamenteo dell'applicazione a Run-time spostando la
chiamata di una routine che esegue alcune operazioni sui controlli (tipo
renderli visibili o bloccati o effettuare modifiche del contenuto delle
etichette e così via) dall'evento "su caricamento" della maschera usata come
Menù iniziale  all'evento "su corrente".
Non ho capito il perchè tale routine dia problemi solo con la versione
runtime , ma vista la fatica che ho fatto per venirne fuori mi accontento
del fatto che funzioni.
Se qualcuno sa spiegarmi il perchè tanto meglio, altrimenti pazienza.
Mi rimane ora il prblema di implementare "il sostituto" del Filedialog con
le API indicatemi da Oscar (come sono complicate! Spero comunque di riuscire
ad inserirle snza introdurre nuovi errori).
Comunque grazie a tutti per i contributi.
Vorrei aggiungere solo una considerazione. Tramite il vostro aiuto ho
scoperto che l'elenco delle cose che non funzionano nella versione Run time
è lungo e non documentato (o comunque non a sufficienza) ufficialmente. Io
sarò anche uno sviluppatore svprovveduto, da dilettante quale sono, però chi
deve misurarsi professionalmente e quotidianamente con questi problemi
rischia di sprecare un sacco di tempo e quindi di soldi, oltre che
rimetterci la salute. Adesso ho molto più chiaro cosa vuol dire "costo di
sviluppo del software" e di chi sia la responsabilità del continuo
incremento di tale costo....
Saluti
"Oscar Manfredini" <
osca...@nospam.it
> ha scritto nel messaggio
news:43b2510a$0$1076$4faf...@reader3.news.tin.it...



text:
"
> Ok; ho tolto tutti i riferimenti che evidentemente erano inutili, ho
> abbandonato il maledetto calendario Microsoft per uno,trovato sul Sito
> Comune,  molto semplice (ma funzionante, a differenza di quello MS che non
> veniva visualizzato sulla maschera pur in presenza del riferiemento
> corretto)   č ho tolto pure i riferimenti  a Filedialog.
> Comunque alla fine di estenuanti prove sono riuscito a risolvere il
problema
> generale di funzionamenteo dell'applicazione a Run-time spostando la
> chiamata di una routine che esegue alcune operazioni sui controlli (tipo
> renderli visibili o bloccati o effettuare modifiche del contenuto delle
> etichette e cosě via) dall'evento "su caricamento" della maschera usata
come
> Menů iniziale  all'evento "su corrente".
> Non ho capito il perchč tale routine dia problemi solo con la versione
> runtime , ma vista la fatica che ho fatto per venirne fuori mi accontento
> del fatto che funzioni.
> Se qualcuno sa spiegarmi il perchč tanto meglio, altrimenti pazienza.
Beh, scritta cosě č difficile da credere: come si diceva le componenti di
Access Runtime (a partire da msaccess.exe) sono le stesse di "full" Access.
Potresti aiutarci a riprodurre il problema con nortwhind.mdb _naturalmente
semplificando il codice della tua applicazione_
> Mi rimane ora il prblema di implementare "il sostituto" del Filedialog con
> le API indicatemi da Oscar (come sono complicate! Spero comunque di
riuscire
> ad inserirle snza introdurre nuovi errori).
Ma no, non sono complesse.
Sul sito comune peraltro trovi parecchi .mdb che le usano: prendi spunto se
hai problemi a implementarle (per esempio dai visualizzatori d'immagine
pubblicati).
> Comunque grazie a tutti per i contributi.
> Vorrei aggiungere solo una considerazione. Tramite il vostro aiuto ho
> scoperto che l'elenco delle cose che non funzionano nella versione Run
time
> č lungo e non documentato (o comunque non a sufficienza) ufficialmente.
Mhmmm, attenzione: a parte il problema relativo all'evento "su caricamento"
che hai esposto (problema strano e da verificare) i guai legati ai "Lost
references" non riguardano specificamente la versione DEV, ma Access in
generale.
Chiaramente in fase di sviluppo č difficile rendersene conto, per cui i
problemi emergono solo nell'atto della distribuzione
Ciao, Oscar


text:
"> Beh, scritta così è difficile da credere: come si diceva le componenti di
> Access Runtime (a partire da msaccess.exe) sono le stesse di "full"
> Access.
> Potresti aiutarci a riprodurre il problema con nortwhind.mdb _naturalmente
> semplificando il codice della tua applicazione_
Mi riesce difficile riprodurre il problema al momento in quanto la maschera
"Inizio"  di cui ho accennato contiene è piuttosto complessa. Contiene
infatti un controllo a schede con tre pagine:
- la prima non ha nulla di speciale: contine solo pulsanti per aprire altre
maschere e non credo dia problemi.
- la terza contiene dei controlli testo il cui valore è dato da funzioni di
Lookup su tabelle  collegate presenti nel backend MDB.Potrebbe forse la
funzione cercare valori prima che il backend sia collegato in modo completo?
Mi sembra difficile in quanto il collegamento al back end è fatto prima di
caricare la maschera "Inizio".
- la seconda, denominata "Stampe" è assai più complessa in quanto contiene
un controllo casella combinata che ha come origine una tabella presente nel
FE dove ci sono i nomi dei report dsponibili; a seconda del report che viene
selezionato viene visualizzata una sottomaschera contenente pulsanti
utilizati per determinare intervalli fra date (tipo quale semestre oppure
quadrimestre oppure  trimestre) e contiene codice e  fa riferimento a
funzioni che calcolano la data di inizio e di fine del periodo che si vuole
selezioanre (ad esempio il secondo trimestre dell'esercizio passato) e/o
diverse caselle di riepilogo a scelta multipla per stabilire vari modi di
filtrare i record da mandare in stampa (es. uno o più clienti, o tutti).
La routine che dava problemi è proprio quella relativa all'evento After
update della casella combinata di scelta del report ("SelezReport") che
evidentemente visulizza la casella di riepilogo appropriata per il report
scelto (per scegliere di volta in volta i Clenti, oppure le Commesse oppure
oppure le banche) e, nel caso, anche la sottomaschera per permettere la
scelta del periodo.
Questa routine viene richiamata all'inizio per assicurarsi che i controlli
visualizzati sino coerenti con il report selezionato (cambiando l'ordine dei
report nella tabella cambia  il primo record  e quindi il report che viene
visualizzato al caricamento) : se viene eseguita all'evento su caricamento
con la versione Full  tutto funziona mentre nel Runtime si pianta.
Spero di essere statoabbastanza chiaro, anche se non esaustivo. Sicuramente
all'inizio questo problema era mescolato, o meglio, occultato dagli altri
problemi relativi al Filedialog e ai "lost references". Tuttavia, se questi
riferimenti si chiamano "persi" e non "mancanti" ci sarà pure un ragione ...
non sempre addebitabile allo sviluppatore! :-); comunque per questo problema
non credo abbiano rilevanza in quanto alla fine li ho eliminati praticamente
tutti.
In sintesi la mia impressione è che nella versione run time l'ordine di
esecuzione sembra essere diverso da quello della versione Full e pertanto
vengono fatte chiamate a funzioni non ancora disponibili. Oppure due
oprazioni svolte in parallelo terminano in tempi differenti a runtime (ad
esempio A finisce prima di B nella versione Full mentre B finisce prima di A
a runtime) con conseguenze deleterie a valle. Se ho detto una bestialità
sorridete pure ma non crocefiggetemi, tanto ritengo di essere in buona
compagnia in quanto i programmatori di Redmond le bestialità oltre a
pensarle .... spesso le mettono anche in pratica :-)). Ricordo al proposito
quanto sono impazzito per cercare di integrare Word ed Excel in
un'applicazzione Access con l'automazione ole.
Se quanto ho aggiunto non è sufficiente dovrete pazientare un po'. Prima
devo andare avanti per digerire le API che nonostante "il miele" di Oscar
("Ma no, non sono complesse") mi rimangono un  po' indigeste. ;-)
Ciao


text:
"Four wheeler" >,
> In sintesi la mia impressione è che nella versione run time l'ordine di
> esecuzione sembra essere diverso da quello della versione Full e pertanto
> vengono fatte chiamate a funzioni non ancora disponibili. Oppure due
> oprazioni svolte in parallelo terminano in tempi differenti a runtime (ad
> esempio A finisce prima di B nella versione Full mentre B finisce prima di
A
> a runtime) con conseguenze deleterie a valle. Se ho detto una bestialità
> sorridete pure ma non crocefiggetemi, tanto ritengo di essere in buona
> compagnia in quanto i programmatori di Redmond le bestialità oltre a
> pensarle .... spesso le mettono anche in pratica :-)). Ricordo al
proposito
> quanto sono impazzito per cercare di integrare Word ed Excel in
> un'applicazzione Access con l'automazione ole.
Non ti accuso di aver detto bestialità  :-)
Però sono come San Tommaso ... se vuoi puoi preparare una versione "Lite"
della maschera in oggetto e spedirla a
oscar.ma...@libero.it
Posso provare la cosa con la Dev di Access XP: non credo sia cambiato così
tanto dalla versione precedente alla tua.
Ciao, Oscar


title: Strano messaggio di errore..

author: AA

text:
Ciao!Ho un problema di cui ho capito la natura, ma che non mi spiego..Con
una form inserisco dei dati in una tabella, dopo di che, alla chiusura, e
dopo aver salvato i dati, apro un report che ha come origine una query
(Query che fa delle LEFT JOIN ad alcune altre tabelle)..Se apro la query a
mano funziona e visualizzo i dati..Se apro il Report mi viene un errore che
dice : "Il modulo di gestione di database non puň bloccare la tabella
QUATAB0F perchč in uso da un altro utente o processo."..E' come se qualcosa
di aperto faccia riferimento a questa tabella, e che quindi la tenga
occupata, ma non č cosě..Se chiudo il database e apro il report, senza
quindi inserire i dati nella tabella, funziona tutto! Ho provato ad
aggiornare il database con Docmd.requery, o Docmd.restore, ma non cambia
niente..Sapete aiutarmi?Grazie molte


title: Inserire Gif animata.-

author: Massimo Apicella

text:
Ciao a tutti,
ho bisogno di un aiuto. Come faccio ad inserire una gif animata in una
maschera? Ci ho provato inserendola come immagine normalmente ma
l'animazione non viene visualizzata. Grazie


title: Inserire Gif animata.-

author: stwe

text:
"Massimo Apicella" <
ma...@libero.it
> ha scritto nel messaggio
news:LlKq7.15074$Lp6.5...@news.infostrada.it...

devi usare un controllo activeX
by
stwe


title: Inserire Gif animata.-

author: Texture

text:
"Massimo Apicella" <
ma...@libero.it
> ha scritto nel messaggio
news:LlKq7.15074$Lp6.5...@news.infostrada.it...

> prova con una animazione di flash dovrebbe funzionare
devi pero avere il driver o il programma


title: Da Access in Excel problemi di chiusura e salvataggio

author: Natan

text:
dovrete scusarmi se posterò su diversi NG questi quesiti che spero non
[OT}
da Access creo (da una query a campi incrociati) e modifico un file
Excel
I problemi che ho riscontrato sono :
il primo è che dopo aver creato , modificato ,salvato e chiuso il file
quando lo riapro e successivamente tento di chiuderlo (non apportando
alcuna modifica) Excel mi chiede se voglio salvare con il mess
"Allapertura dei file salvati con una versione precedente di Excel ,
le formule contenute vengono ricalcolate " , se salvo e riapro
risuccede la stessa cosa finchè non faccio SalvaConNome
Il secondo è che rimane un processo appeso e se non lo chiudo Excel fa
casino .....
di seguito il codice che utilizzo
    Dim MioExcel As Object
    Dim MiofileExcel As String
    Dim Message, Title, Default, MyValue
    Dim db As New Connection
    Dim SourceFile, DestinationFile
    Dim SSTRING As String
    Dim Lancia
[CUT]
    DoCmd.TransferSpreadsheet acExport, 8, "Q_St_Prospetto",
DestinationFile, True
[CUT]
    Set MioExcel = New Excel.Application
    With MioExcel
        .Visible = False
        .Workbooks.Open DestinationFile
        .SheetsInNewWorkbook = 1
        .Rows("1:1").Select
        .Selection.Insert Shift:=x1Down
        .ActiveCell.FormulaR1C1 = "=COUNTIF(R[-28]C:R[-3]C,"">1"")+
5"
[CUT] ..... qualche altra operazione semplice
        .ActiveWorkbook.SaveAs DestinationFile, xlWorkbookNormal
        .ActiveWorkbook.Close True
        .Quit
     End With
    Set MioExcel = Nothing '<-- rilascio risorse
    KillProcess ("excel.exe") ' questa riga richiama una routine
(secondo problema annoso)
     che chiude il processo che rimane appeso
Queste righe l'ho tutte spudoratamente scopiazzate dai Vs post e dopo
prove e riprove sono un po' "fermo al palo" .Certo sono contento anche
così ma la procedura non devo usarla io e vorrei fosse un po' meno
traballante ... Come dovrei intervenire per  eliminare gli
inconvenienti ??
Grazie 1000
Natan


title: Problema con query su listbox e gruppo di opzioni..

author: Il cugino da casa

text:
Salve ancora a tutti,
sono le ore 0.20 ed ho qualche problemino con una query su listbox:
la listbox pesca regolarmente da una tabella anagrafica
con i campi: Cognome_nome , Indirizzo, Lavoro (e Idanagrafico che non è
visualizzato)
Allo stato attuale mi visualizza correntemente tutti i campi
ma vorrei che, una volta selezionata la debita opzione nel gruppo di opzioni
(chiamatoLavoro), la listbox mi visualizzasse solo i record selezionati in
base a quel determinato lavoro (sostanzialmente un filtro su una listbox).
Avevo pensato ad impostare la query della listbox con il criterio :
((Forms!Anagrafica.[Lavoro.value] = 1) = Professionista )
((Forms!Anagrafica.[Lavoro.value] = 2) = Impiegato ) etc...
Non mi da nessun risultato....(cosa che alle 0.35 dopo una giornata di
studio è un po' snervante, specie
perchè concettualmente mi pareva di aver imbroccato l'idea ossia :
applico una condizione WHERE alla query da dove attinge la listbox e quella
ci crede e mi fa vedere cosa voglio io...)
Dove sto sbagliando? O meglio: il mio errore è concettuale e non ho capito
il meccanismo di "filtraggio dati" o
è un problema squisitamente di carattere "sintattico" della query affinabile
attraverso pratica e pratica e tanti consigli come fino a ora ho ricevuto?
Ciao e grazie a chi avrà voglia di leggere sto msg....
Il Cugi....


author: Roberto - Syd

text:
"Il cugino da casa" <
he...@virgilio.it
> ha scritto nel messaggio
news:vx5v7.3949$pm2....@news1.tin.it...

In pratica nel criterio hai scritto:
((Forms!Anagrafica.[Lavoro.value] = 1) = Professionista )
che si traduce in 1=Professionista, quindi per fare quello che vuoi fare te
o usi la funzione predefinita Choose che puoi vedere sullo Help in linea di
access o metti una casella di testo sulla maschera che userai come criterio
e a secondo del risultato del gruppo di opzioni lo avvalori di conseguenza.
Es.:
Private sub Lavoro_AfterUpdate()
Select Case Me.Lavoro
    case 1
        Me.NomeCasellaDiTesto = "Professionista"
    case 2
        Me.NomeCasellaDiTesto = "Impiegato"
    case 3
        Me.NomeCasellaDiTesto = "Operaio"
     ...
    case N
end Select
end sub
Ciao Roberto - Syd


text:
> In pratica nel criterio hai scritto:
> ((Forms!Anagrafica.[Lavoro.value] = 1) = Professionista )
> che si traduce in 1=Professionista, quindi per fare quello che vuoi fare
te
> o usi la funzione predefinita Choose che puoi vedere sullo Help in linea
di
> access o metti una casella di testo sulla maschera che userai come
criterio
> e a secondo del risultato del gruppo di opzioni lo avvalori di
conseguenza.
> Es.:
> Private sub Lavoro_AfterUpdate()
>
> Select Case Me.Lavoro
>     case 1
>         Me.NomeCasellaDiTesto = "Professionista"
>     case 2
>         Me.NomeCasellaDiTesto = "Impiegato"
>
>     case 3
>         Me.NomeCasellaDiTesto = "Operaio"
>      ...
>     case N
>
> end Select
> end sub
>
> Ciao Roberto - Syd
>
Ciao, forse non ho capito....
se effettivamente lui capisce che 1 = professionista dovrebbe depurarmi la
listbox di conseguenza cercando sulla tabella ed eseguendo la query in base
al criterio "professionista" o sbaglio?
Se č cosě allora avevo capito bene, perň non mi sembra che funga...
Cmq proverň sicuramente con le altre soluzioni , anche se questa mi sembrava
la piů pratica.
Grazie,
Il cugi...


text:
"Il cugino da casa" <
he...@virgilio.it
> ha scritto nel messaggio
news:Gddv7.4298$pm2....@news1.tin.it...

[CUT]
Lui (chi è lui ?) capisce, (Logicamente parlando) che 1=Professionista è
un'espressione falsa quindi vale 0 (Zero), quindi è come se avessi scritto
nei criteri 0 (Zero).
Ciao Roberto - Syd


text:
>
> Lui (chi è lui ?) capisce, (Logicamente parlando) che 1=Professionista è
> un'espressione falsa quindi vale 0 (Zero), quindi è come se avessi scritto
> nei criteri 0 (Zero).
>
> Ciao Roberto - Syd
>
Lui è Access....
ok per la spiegazione , con la query basata sul valore della txtbox funziona
,
ma se volessi vederli tutti che valore dovrei attribuire alla txt ?
ho provato con  (esempio)
                          case 5
                          Me.NomeCasellaDiTesto = null
o
                            Me.NomeCasellaDiTesto = ""
in realtà mi restituisce una query vuota mentre vorrei che mi visualizzasse
tutti i possibili lavori.
(ovviamente ho fatto fare una requery alla mia listbox per ogni selezione
effettuata)
Ciao e grazie per i consigli,
Il cugi...


text:
Mi sono ingegnato da solo...
probabilmente non è la miglior soluzione possibile ma funge, se qualcuna ha
altre idee che mi diano una mano a capire sono ben acette...
Ho risolto il tutto inserendo una seconda txtbox che fungesse in sincronia
con la prima:
txt1 = Professionisti (è il valore)
txt2 = Professionisti
txt1 = Impiegati
txt2 = Impiegati
in caso li voglia selezionare tutti
txt1 = Impiegati
txt2 = Professionisti
e la query la esegue con OR.
Ovviamente la solution funge per un numero esiguo di valori su cui poter
switchare....
Ora il mio problema è trovare la regola generale che valga per un numero ben
+ elevato di valori (uno non può inserire 200 txtbox su una maschera...)
Ciao
Il Cugi da casa che pensa....


text:
"Il cugino da casa" <
he...@virgilio.it
> ha scritto nel messaggio
news:vSov7.6240$DW5.1...@news2.tin.it...
> Mi sono ingegnato da solo...
> probabilmente non č la miglior soluzione possibile ma funge, se qualcuna
ha
> altre idee che mi diano una mano a capire sono ben acette...
>
> Ho risolto il tutto inserendo una seconda txtbox che fungesse in sincronia
> con la prima:
>
> txt1 = Professionisti (č il valore)
> txt2 = Professionisti
>
> txt1 = Impiegati
> txt2 = Impiegati
>
> in caso li voglia selezionare tutti
> txt1 = Impiegati
> txt2 = Professionisti
>
> e la query la esegue con OR.
> Ovviamente la solution funge per un numero esiguo di valori su cui poter
> switchare....
> Ora il mio problema č trovare la regola generale che valga per un numero
ben
> + elevato di valori (uno non puň inserire 200 txtbox su una maschera...)
>
> Ciao
>
> Il Cugi da casa che pensa....
>
>
Cambia il criterio della query da cosě:
Form![NomeForm]![txt1]
a cosě:
Like Form![NomeForm]![txt1]
e quando li vuoi vedere tutti in txt1 devi mettere un asterisco *
Ciao Roberto - Syd


title: [OT] Stampa unione (uno a molti)

author: Sergio MAZZA

text:
Salve a tutti;
sono un po' latitante ma le ultime battute sull'argomento "stampa unione" mi
hanno dato la molla per la ricerca di altre soluzioni. In effetti c'è una
soluzione molto semplice che avevo visto utilizzare in word 2000 e pensavo
fosse una features di quel pacchetto; invece (mea culpa) la stessa soluzione
è possibile utilizzarla anche nel pacchetto '97.
Esiste in word un "codice di campo" (spulciate l'help please!) chiamato
DATABASE; iddu non fa altro che creare una connessione al database e leggere
i dati o da tabella o da stringa sql specificata nel codice di campo e
presentarli formattati come una tabella.
Quindi per realizzare un documento word di tipo fattura (dati intestazione
ed elenco dettaglio) i passi sono questi (da modificare a secondo delle
proprie necessità):
- tabella o query con i dati dell'intestazione della fattura (parte alta -
lato uno della relazione);
- creare il documento word, scrivere il documento e legarlo (stampa unione)
alla tabella/query (lato uno);
- visualizzare (sempre da word) la barra strumenti "DATABASE";
- posizionare il cursore dove vogliamo inserire la tabella dei dati riferiti
al dettaglio (lato molti) e premere il bottone "Inserisci database";
seguendo le istruzioni del wizard noi creiamo tutti i riferimenti per
leggere i dati (molti) della fattura indicando anche il campo della
condizione where che ci serve per estrarre solo quelli riferiti a quel
cliente o id. Ricordatevi di spuntare l'opzione "inserisci come campo".
Ora manca di inserire la "variabile" nella condizione where; con ALT-F9
possiamo intervenire nelle opzioni del codice di campo visualizzandone il
contenuto che dovrebbe essere simile a questo:
{DATABASE \d "C:\\dati\\fatture.mdb" \c "TABLE Dettagli" \s "SELECT
[articolo], [prezzo], [idFattura] FROM [Dettagli] WHERE (([idFattura] =
3 ))" \h}
Praticamente la condizione è preimpostata per restitutire i dettagli della
fattura con idFattura = 3; quindi bisogna inserirgli il riferimento al campo
id della fattura. Possiamo farlo perché il documento word è legato alla
tabella/query (lato uno) delle fatture.
togliamo il 3 (l'idfattura), lasciando il cursore vicino al segno
dell'uguale, dalla barra strumenti "Stampa unione" - "inserisci campo
unione"  e scegliamo "Id" (della fattura).
La situazione dovrebbe essere questa:
{DATABASE \d "C:\\dati\\fatture.mdb" \c "TABLE Dettagli" \s "SELECT
[articolo], [prezzo], [idFattura] FROM [Dettagli] WHERE (([idFattura] =
{MERGEFIELD id} ))" \h}
Ora premiamo ALT-F9 per ripristinare la visualizzazione dei codici di campo
e se facciamo la stampa unione si dovrebbe materializzare il nostro sogno...
Una fattura si word!!
Spero di essermi spiegato...
Un saluto a tutti e buon lavoro.
--
Sergio MAZZA


title: [OT] Stampa unione (uno a molti)

author: Roberto da casa

text:
"Sergio MAZZA" <
sergi...@tiscalinet.it
> ha scritto nel messaggio
news:abgnvo$5cc$1...@canarie.caspur.it...
> Salve a tutti;
> sono un po' latitante ma le ultime battute sull'argomento "stampa unione"
...
[CUT]
Beh si sentiva proprio la mancanza di una persona esperta in materia. :-)
> --
> Sergio MAZZA
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------


title: [OT] Stampa unione (uno a molti)

text:
"Roberto da casa" <
r.ma...@libero.it
> ha scritto nel messaggio
news:4RSC8.38928$US3.8...@twister1.libero.it...
>
>
> Beh si sentiva proprio la mancanza di una persona esperta in materia. :-)
>
> --
> Roberto
>
> ---------------------------------------------
> il Sito Comune di it.comp.appl.access:
>
http://www.sitocomune.com
> ---------------------------------------------
>
Troppo buono!
--
Sergio MAZZA


title: [OT] Stampa unione (uno a molti)

author: Emyr

text:
On Fri, 10 May 2002 17:17:47 +0200, "Sergio MAZZA"
<
sergi...@tiscalinet.it
> wrote:
>Spero di essermi spiegato...
>
>Un saluto a tutti e buon lavoro.
>
>
>--
>Sergio MAZZA
veramente notevole, complimenti
Saluti.
Emanuele.


title: [OT] Stampa unione (uno a molti)

text:
"Sergio MAZZA" <
sergi...@tiscalinet.it
> ha scritto nel messaggio
news:abgv18$7bm$1...@canarie.caspur.it...
>
> Troppo buono!
E' solo dare a Cesare ciň che č di Cesare. :-)
>
> --
> Sergio MAZZA



title: [OT] Stampa unione (uno a molti)

author: Silvio Berruti

text:
"Emyr" <
fan...@lavoro.com
> ha scritto nel messaggio
news:m1dpdukvbabr17ceq...@4ax.com...

Mi associo e ti invito a farne una FAQ x il SC.
--
Silvio
il sito comune di it.comp.appl.access:
http://www.sitocomune.com


title: [OT] Stampa unione (uno a molti)

text:
"Silvio Berruti" <
sber...@libero.it
> ha scritto nel messaggio
news:GpJD8.51995$5k4.1...@twister2.libero.it...
>
>
> Mi associo e ti invito a farne una FAQ x il SC.
>
> --
>
> Silvio
>
>
> il sito comune di it.comp.appl.access:
>
http://www.sitocomune.com
>
Grazie a tutti; lo farň volentieri.
Se volete ho anche un piccolo mdb+doc che ho utilizzato per la prova.
--
Sergio MAZZA


title: [OT] Stampa unione (uno a molti)

text:
"Sergio MAZZA" <
sergi...@tiscalinet.it
> ha scritto nel messaggio
news:abo08j$r99$1...@canarie.caspur.it...
> "Silvio Berruti" <
sber...@libero.it
> ha scritto nel messaggio
> news:GpJD8.51995$5k4.1...@twister2.libero.it...
> > Mi associo e ti invito a farne una FAQ x il SC.
>
> Grazie a tutti; lo farò volentieri.
> Se volete ho anche un piccolo mdb+doc che ho utilizzato per la prova.
>
> --
> Sergio MAZZA
>
Bravo!



title: [OT] Stampa unione (uno a molti)

author: Vincenzo Ferrantelli

text:

Magari a distanza di anni ... non leggerai ... MA DEVO FARTI I MIEI COMPLIMENTI ... suggerimento valido anche per Office 2016!! GRANDE!!!


title: file MDE e report modificabili dall'utente

author: Fabietto

text:
Dovrei consegnare un DB che vorrei pero' bloccare utilizzando il formato MDE
per salvaguardare il codice. La persona che lo deve usare vorerebbe xro'
poter modificare i report da solo...
Come posso fare ? Appoggiare la funzione report ad un DB esterno ?
Ma le tabelle sono sul DB locale...
Grazie
Fabio


author: Guycho

text:
Fabietto <
fab...@supereva.it
> wrote in message
Q_QG6.198569$lj4.5...@news6.giganews.com...

potresti inserire una password per l'accesso al codice VBA
ciao


text:
> potresti inserire una password per l'accesso al codice VBA
e come si fa in Access 2000 ?
non sapevo di questa possibilita'...
Grazie
Fabio


author: Sib dal portatile

text:
"Fabietto" <
fab...@supereva.it
> ha scritto nel messaggio
news:%gWG6.198965$lj4.5...@news6.giganews.com...
> > potresti inserire una password per l'accesso al codice VBA
>
> e come si fa in Access 2000 ?
>
> non sapevo di questa possibilita'...
Si fa solo con A2000. Nelle versioni precedenti bisogna implementare la
sicurezza a livello utente.
Comunque la cosa e' piuttosto semplice:
HELP DI ACCESS
Aprire il progetto di Microsoft Access o il database di Microsoft Access
contenente il codice VBA che si desidera proteggere.
Nella finestra del database scegliere Macro dal menu Strumenti, quindi
Visual Basic Editor.
Suggerimento  È anche possibile premere ALT+F11.
In Microsoft Visual Basic Editor scegliere Proprietà di <nome del database o
del progetto di Access> dal menu Strumenti.
Fare clic sulla scheda Protezione.
Selezionare la casella di controllo Proteggi progetto dalla visualizzazione.
Immettere una password nella casella Password e confermarla immettendola
nuovamente nella casella Conferma password.
###########
Sib
--
----------------------------------------------------
la mia home:
http://digilander.iol.it/syb
----------------------------------------------------
il sito comune di it.comp.database.access:
http://www.sitocomune.com
----------------------------------------------------
4000 anni fa', il saggio egizio Ptahhotep scrisse:
"... perche' non esistono saggi per nascita."
------------------------------------------------------
Saturiamo ECHELON:
bomba saddam attentato medio oriente


author: Mad® Milox

text:
"Fabietto" <
fab...@supereva.it
> ha scritto nel messaggio
news:Q_QG6.198569$lj4.5...@news6.giganews.com...

Io come al solito faccio l'avvocato del diavolo! :))
ma non ti conviene lasciare stare il tuo db bello pronto e protetto cosi'
com'e'  e fargli semmai un db vuoto con le sole tabelle collegate in modo
che lui scasini tutti i report in piu' che vuole senza toccare
l'applicazione ? ... anche perche' essendo il tuo FE in possibile
miglioramento , nel momento che aggiorni l'applicazione (il FE) i preport in
piu' o modificati dall'utente vanno persi .... almeno che tu non li recuperi
a mano importandoli da una parte all'altra ....
Ciao ,
Lorenzo
P.S.: ma alla fine me la fai vedere questa applicazione ? :))


text:
> Io come al solito faccio l'avvocato del diavolo! :))
> ma non ti conviene lasciare stare il tuo db bello pronto e protetto cosi'
> com'e'  e fargli semmai un db vuoto con le sole tabelle collegate in modo
> che lui scasini tutti i report in piu' che vuole senza toccare
> l'applicazione ? ... anche perche' essendo il tuo FE in possibile
Si, ma non so come fare per mettere far richiamare i report residenti sul
BE...penso adottero' la soluzione della password sul codice...
> P.S.: ma alla fine me la fai vedere questa applicazione ? :))
Certo, sto finendo gli ultimi dettagli e poi avevo gia' pensato di mandarne
una copia completa a tutte le persone che mi hanno dato delle soluzioni che
ho applicato al suo interno...questo per ringraziare e per avere un opinione
su questo mio primo lavoro... in modo da rendermi conto degli errori...o
forse dovrei dire degli "orrori" :-)


text:
"Fabietto" <
fab...@supereva.it
> ha scritto nel messaggio
news:WmUH6.204474$lj4.5...@news6.giganews.com...

Intendi dire che hai dei report nell'mdb BE ??!!?? e come li gestisci ?
ossia , se io sono nel FE e cliccho il pulsante "stampa fattura" , il mio
report chiamato StampaFattura .. sta fisicamente dentro il FE e mi si apre ,
se stesse nel BE come lo apri ? con un collegamento ?
Non ho mai pensato ad una cosa del genere , ma potrebbe essere utile ganza
(divertente).
Ciao,
--
(^o^))~    Lorenzo   (^o^))~
"Preimaginare e' lo imaginare le cose che saranno..."
"Postimaginare e' imaginare le cose passate ..."
(Leonardo Da Vinci)


title: Chiamare routine Sub o Function utilizzando una stringa

author: Michele (Giò)

text:
Buonasera a tutti
E' possibile chiamare una routine Sub o Function avendo memorizzato in una variabile string il nome
della suddetta routine?
Esempio, se ho Str1 = "Crea"
posso chiamare la funzione Crea utilizzando la stringa Str1?
Grazie
---------------------------
Michele (Giò)
joyl...@alice.it


author: ALESSANDRO Baraldi

text:
"Michele (Giò)" <
joyl...@alice.it
> ha scritto nel messaggio
news:45abe636$0$16155$4faf...@reader3.news.tin.it...

Si.
Voi anche sapere come o volevo solo sapere se era possibile.....?
;-)
Vedi la Funzione EVAL...!
--
@Alex (Alessandro Baraldi)
---------------------------------------------------------------------------
http://www.sitocomune.com/
http://www.alessandrobaraldi.it
---------------------------------------------------------------------------


text:
"ALESSANDRO Baraldi" <
ik2...@libero.it
> ha scritto nel messaggio news:eogqlq$ve3$1...@aioe.org...
> "Michele (Giò)" <
joyl...@alice.it
> ha scritto nel messaggio
> news:45abe636$0$16155$4faf...@reader3.news.tin.it...
>> Buonasera a tutti
>>
>> E' possibile chiamare una routine Sub o Function avendo memorizzato in una
> variabile string il nome
>> della suddetta routine?
>>
>> Esempio, se ho Str1 = "Crea"
>>
>> posso chiamare la funzione Crea utilizzando la stringa Str1?
>>
>> Grazie
>>
>> ---------------------------
>> Michele (Giò)
>>
joyl...@alice.it
>
>
> Si.
>
> Voi anche sapere come o volevo solo sapere se era possibile.....?
>
> ;-)
>
>
> Vedi la Funzione EVAL...!
Grandioso!
La conoscevo già, ma l'avevo utilizzata a suo tempo per altri scopi e nn ci avevo pensato
Il trucco starebbe nel fatto che eval restituisce il risultato di ciò che gli si passa, e
passandogli una funzione (che a differenza di una routine sub restituisce un valore) obbliga la
stessa ad essere eseguita.
Thanks


title: Casella combinata e casella di testo

author: 'Claudia G

text:
Io ho una casella combinata per scegliere il mio record ed a fianco ho una
casella di testo la casella combinata di chiama id_articolo
come faccio io ad associare la casella di testo alla casella combinata?
Cioe se io ho scelto l'ID 1 la casella di testo si aggiorna con la
descrizione in base all'ID?


title: Casella combinata e casella di testo

author: Luciano (DOC)

text:
'Claudia G ha scritto nel messaggio ...

Non lo fa da se', devi dirglielo tu...
Su afterupdate della comobo metti
me.casella di testo = me.combo
me.casella di testo.requery
Se poi fai il viceversa sulla casella di testo hai anche l'effetto
contrario!
Saluti.
Luciano
(DOC)


title: Casella combinata e casella di testo

text:
Private Sub IDGruppo_AfterUpdate()
Me.DesIDGruppo = Me.combo <---- qua devo scrivere il nome della combo o
lascio cosi?
Me.DesIDGruppo.Requery
End Sub


title: Casella combinata e casella di testo

text:
"'Claudia G" <
cla...@libero.it
> ha scritto nel messaggio
news:Ybe86.47664$eB2.4...@news.infostrada.it...

devi mettere a posto di *combo* il nome della tua casella combinata.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://members.xoom.it/it_db_access/
---------------------------------------------


title: Casella combinata e casella di testo

text:
Io ho La tabella Gruppo con
Id Gruppo e Descrizione
Es.
1    Tessile
2    Ferro
questa č la mia routine
Private Sub IDGruppo_AfterUpdate()
Me.DesIDGruppo = Me.IDGruppo
Me.DesIDGruppo.Requery
End Sub
perň sulla combo quando io seleziono il record sulla
casella di testo mi da l'IDGruppo come mai? io volevo la descrizione
aiutoooooooooo


title: Casella combinata e casella di testo

text:
"'Claudia G" <
cla...@libero.it
> ha scritto nel messaggio
news:Efl96.73962$eB2.5...@news.infostrada.it...

Prova con
Me!DesIDGruppo = Me!IDGruppo.Column(1)



title: primi passi: query molto particolare e difficile da realizza

author: ciosa

text:
Salve a tutti descrivo questa situazione che per un utente medio e' un po'
incasinata.
Ho un programma in VBA (che non posso controllare) che produce una tabella
access cosi' composta:
id
nominativo dipendente
data_da
data_a
totale ore
centro di costo
codice progetto
La funzione di questa tabella e' sapere su quale progetti lavorano tutti i
dipendenti (circa 300!) settimana per settimana.
Ho una tabella su un altro database per i dipendenti di questo tipo:
id
nominativo dipendenti
sesso
centro di costo
Trimestralmente devo elaborare dei report già informatizzati in excel ma
prima di questo debbo controllare che tutte le settimane da parte di tutti i
dipendenti siano state inserite e fare relativi solleciti...
Per dirvi lo stato delle cose il programma pensato dagli informatici non
elimina neanche i doppi inserimenti ma questo e' facilmente risolvibile.
COSA MI SERVIREBBE E NON RIESCO A FARE
avere una tabella con questi campi
nominativo dipendente
(centro di costo)
settimane del periodo con totale delle ore inserite
in alternativa postebbe bastarmi un elenco con:
nominativo del dipendente
settimane non inserite
ho creato una tabella che contiene tutte le settimane dell'anno ma non
riesco a creare una query forse perche' si entra in ambito SQL e io non lo
mastico
attualemnte settimana per settimana faccio un controllo ma mi servirebbe un
report periodico per velocizzare questa parte
chi mi da due dritte
Grazie
ciosa
--------------------------------
Inviato via
http://usenet.libero.it


text:
"ciosa" <cio...@TOGLIinwind.it> ha scritto nel messaggio
news:213Z215Z162Z66Y...@usenet.libero.it...

Se la tabella che contiene i dati relativi alle ore lavorate si chiama
Tabella1 ed ha una struttura simile a questa:
ID                  Contatore e chiave primaria
Nominativo    Testo
data_da          Data/ora
ecc. ecc
Se il campo data_da contiene la data del giorno con cui inizia la settimana.
Se un record di Tabella1 può contenere i dati relativi ad una sola
settimana.
Se la tabella che contiene i dati anagrafici dei dipendenti si chiama
Tabella2 ed ha una struttura simile a questa:
ID                Chiave primaria
Nominativo   Testo
ecc. ecc.
Creati una tabella chiamata Settimane che ha un solo campo di Tipo Numerico
chiamato Settimana
Creati una prima query chiamata Query1 che abbia il seguente codice SQL:
SELECT Tabella1.Nominativo, Tabella1.data_da, Val(Format([data_da],
"yyyyww")) AS Settimana
FROM Tabella1;
Creati una seconda query chiamata Query2 che abbia il seguente codice SQL:
SELECT Tabella2.Nominativo, Settimane.Settimana
FROM Tabella2, Settimane
ORDER BY Tabella2.Nominativo, Settimane.Settimana;
Creati una terza query chiamata Query3 che abbia il seguente codice SQL:
SELECT Query2.Nominativo, Query2.Settimana
FROM Query2 LEFT JOIN Query1 ON (Query2.Settimana = Query1.Settimana) AND
(Query2.Nominativo = Query1.Nominativo)
WHERE (((Query1.data_da) Is Null))
ORDER BY Query2.Nominativo, Query2.Settimana;
Creati ora una maschera non associata chiamata Maschera1 che contenga due
caselle di testo non associate chiamate rispettivamente DataInizio e
DataFine.
In Maschera1 inserisci anche un pulsante di comando; a fronte dell'evento
"Su clic" del pulsante di comando genera il seguente codice VBA:
DoCmd.SetWarnings False
DoCmd.RunSQL "DELETE * FROM Settimane;"
DoCmd.SetWarnings True
Dim rst As DAO.Recordset
Dim Pippo As Long
Set rst = CurrentDb().OpenRecordset("Settimane")
For Pippo = Val(Format(Me!DataInizio, "yyyyww")) _
    To Val(Format(Me!DataFine, "yyyyww"))
        rst.AddNew
        rst!Settimana = Pippo
        rst.Update
Next Pippo
Set rst = Nothing
DoCmd.OpenQuery "Query3"
La routine VBA sopra indicata fa riferimanto alla libreria Microsoft DAO,
pertanto, se usi una versione di Access successiva ad Access 97, inserisci
nel tuo database i riferimenti a tale libreria.
A questo punto, apri Maschera1, digita nelle due caselle di testo non
associate rispettivamente la data di inizio e di fine del periodo per il
quale vuoi effettuare il controllo, premi il pulsante di comando: ti verrà
mostrata la lista dei dipendenti per i quali manca uno o più record di
Tabella1; a fianco del nominativo verrà indicato il numero della settimana
mancante nella forma aaaaSS (dove aaaa è l'anno e SS il numero della
settimana nell'ambito dell'anno).
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------


text:

Ho adattato il tutto ma nell'eseguire si blocca...
Ho access 97 su win 2000 e non so cosa siano le DAO
Dopo meditazioni si blocca sull'ultima riga di codice DoCmd.OpenQuery
"Query3"
Private Sub Comando4_Click()
e...
End Sub
vanno inserite?
Provando le query separatamente tra la Query 2 e la Query 3 non ci sono
differenze tra i numeri di records
Riposto tutto il codice personalizzato
Tabella1=Attività
Nominativo
Data_da
....
Tabella2
CodiceMaster
Nome
(in realtà e' una query che seleziona i dipendenti di una struttura
dall'insieme di tutti i dipendenti)
Query1
SELECT Attività.Nominativo, Attività.Data_da, Val(Format([Data_da],
"yyyyww")) AS Settimana
FROM Attività;
Query2
SELECT SelezioneDipendenti.Nome, Settimane.Settimana
FROM SelezioneDipendenti, Settimane
ORDER BY SelezioneDipendenti.Nome, Settimane.Settimana;
Query3
SELECT Query2.Nome, Query2.Settimana
FROM Query2 LEFT JOIN Query1 ON (Query2.Nome = Query1.Nominativo) AND
(Query2.Settimana = Query1.Settimana)
WHERE (((Query1.Data_da) Is Null))
ORDER BY Query2.Nome, Query2.Settimana;
I nomi delle caselle non associate le ho definite in Proprietà>Tutte>Nome
Elemento
Il codice intero e' il seguente:
Private Sub Comando4_Click()
DoCmd.SetWarnings False
DoCmd.RunSQL "DELETE * FROM Settimane;"
DoCmd.SetWarnings True
Dim rst As DAO.Recordset
Dim Pippo As Long
Set rst = CurrentDb().OpenRecordset("Settimane")
For Pippo = Val(Format(Me!DataInizio, "yyyyww")) _
    To Val(Format(Me!DataFine, "yyyyww"))
        rst.AddNew
        rst!Settimana = Pippo
        rst.Update
Next Pippo
Set rst = Nothing
DoCmd.OpenQuery "Query3"
End Sub
Aiuto! Anche se ho già capito già molto!!



author: Singer

text:
Siete straordinari,
ma dove avete imparato tutte queste cose.
Mi incuriosice il vosto iter scolastico e/o professionale
Confessaveti! Venite da un altro pianeta
Antonio
Roberto da casa <
r.ma...@libero.it
> wrote in message
Lu3D9.3992$2B1.1...@twister2.libero.it...



text:
"ciosa" <cio...@TOGLIinwind.it> ha scritto nel messaggio
news:213Z215Z162Z66Y...@usenet.libero.it...
> Il 21 Nov 2002, 12:31, "Roberto da casa" <
r.ma...@libero.it
> ha scritto:
[CUT]
>
> Ho adattato il tutto ma nell'eseguire si blocca...
Cosa vuol dire si blocca?
Access ti segnala un errore?
Se si, che errore ti segnala?
> Ho access 97 su win 2000 e non so cosa siano le DAO
Se usi Access 97 la libreria DAO è già di default, quindi non devi fare
nulla per sistemare le librerie.
> Dopo meditazioni si blocca sull'ultima riga di codice DoCmd.OpenQuery
> "Query3"
>
Quando si blocca che errore ti segnala?
Sei sicuro che hai creato una query che si chiama Query3, o forse l'hai
chiamata in un'altra maniera?
> Private Sub Comando4_Click()
>
> e...
>
> End Sub
>
>
> vanno inserite?
>
Beh, queste righe di codice VBA le inserisce automaticamnte Access.
> Provando le query separatamente tra la Query 2 e la Query 3 non ci sono
> differenze tra i numeri di records
Beh, vuol dire che qualcosa non va; Query2 elenca tutti i record che
dovrebbero esserci nella tabella Attività se non ne mancasse nessuno; Query3
invece contiene l'elenco dei record mancanti della tabella Attività; se
Query2 e Query3 hanno lo stesso numero di record significa che in tabella
Attività mancano tutti i record del periodo compreso tra le due date
digitate nelle caselle di testo non associate della maschera.
> Riposto tutto il codice personalizzato
> Tabella1=Attività
> Nominativo
> Data_da
> ....
OK
> Tabella2
> CodiceMaster
> Nome
>
> (in realtà e' una query che seleziona i dipendenti di una struttura
> dall'insieme di tutti i dipendenti)
>
e se non ho capito male si chiama SelezioneDipendenti
> Query1
>
> SELECT Attività.Nominativo, Attività.Data_da, Val(Format([Data_da],
> "yyyyww")) AS Settimana
> FROM Attività;
>
OK
> Query2
>
> SELECT SelezioneDipendenti.Nome, Settimane.Settimana
> FROM SelezioneDipendenti, Settimane
> ORDER BY SelezioneDipendenti.Nome, Settimane.Settimana;
>
OK
> Query3
>
> SELECT Query2.Nome, Query2.Settimana
> FROM Query2 LEFT JOIN Query1 ON (Query2.Nome = Query1.Nominativo) AND
> (Query2.Settimana = Query1.Settimana)
> WHERE (((Query1.Data_da) Is Null))
> ORDER BY Query2.Nome, Query2.Settimana;
>
OK, ma controlla che questa query l'hai effettivamente chiamata Query3
> I nomi delle caselle non associate le ho definite in Proprietà>Tutte>Nome
> Elemento
>
OK, purché i nomi siano quelli che ti ho detto e che usi anche nella routine
VBA.
> Il codice intero e' il seguente:
> Private Sub Comando4_Click()
> DoCmd.SetWarnings False
> DoCmd.RunSQL "DELETE * FROM Settimane;"
> DoCmd.SetWarnings True
> Dim rst As DAO.Recordset
> Dim Pippo As Long
> Set rst = CurrentDb().OpenRecordset("Settimane")
> For Pippo = Val(Format(Me!DataInizio, "yyyyww")) _
>     To Val(Format(Me!DataFine, "yyyyww"))
>         rst.AddNew
>         rst!Settimana = Pippo
>         rst.Update
> Next Pippo
> Set rst = Nothing
> DoCmd.OpenQuery "Query3"
>
> End Sub
>
Mi sembra che sia tutto formalmente esatto.
> Aiuto! Anche se ho già capito già molto!!
Secondo me, devi verificare che le tre query si chiamino effettivamente
Query1, Query2 e Query3.



text:
Provato e riporvato…i nomi coincidono…
Va’ in guru meditation e se resetto in settimane trovo numeri sempre strani
rispetto all’intervallo…tipo 244810 in su….e migliaia di record invece che
52
Ho risolto il problema compilando da 20021 a…200252 la tabella settimane
Poi ho realizzato una tabella che associa a questi numeri una colonna
data2002
Contenente tutti gli inizi settimana 2002 da associare a 20021….
Poi ho realizzato una query4 su query3 che chiedesse un intervallo in
formato data ggmmaaaa
Meno raffinato…ma anche piu’ leggibile con le date
Dopo tutto non sono programmatore!
Se hai altri consigli…altrimenti per mezz’ora di aggiornamento per il 2003…
Ciao e grazie
ciosa
Il 21 Nov 2002, 16:29, "Roberto da casa" <
r.ma...@libero.it
> ha scritto:
>
>
> ---------------------------------------------
> il Sito Comune di it.comp.appl.access:
>
http://www.sitocomune.com
> ---------------------------------------------
>
>
--------------------------------
Inviato via
http://usenet.libero.it


text:
"Singer" <
sin...@inwind.it
> ha scritto nel messaggio
news:pF6D9.36713$744.1...@news1.tin.it...
> Siete straordinari,
> ma dove avete imparato tutte queste cose.
> Mi incuriosice il vosto iter scolastico e/o professionale
> Confessaveti! Venite da un altro pianeta
>
Ogni tanto qualche amico mi dice che sono un po' strano, ma non mi ha mai
detto che assomiglio ad un marziano. :-)
> Antonio



text:
"ciosa" <cio...@TOGLIinwind.it> ha scritto nel messaggio
news:213Z215Z162Z66Y...@usenet.libero.it...
>
> Provato e riporvato.i nomi coincidono.
> Va' in guru meditation e se resetto in settimane trovo numeri sempre
strani
> rispetto all'intervallo.tipo 244810 in su..e migliaia di record invece che
> 52
>
[CUT]
Ma nelle due caselle di testo non associate DataInizio e DataFine cosa
digiti?
Se devi controllare tutto il mese di ottobre 2002, dovrai scricere
rispettivamente 01/10/2002 e 31/10/2002.
A come tu fici il programma non esce dal ciclo For ... Next.
--
Roberto



text:
>Ma nelle due caselle di testo non associate DataInizio e DataFine cosa
>digiti?
ho provato sia con date di inizio settimana (lunedi') in formato data
che in formato yyyyww ma va' sempre in guru...
riprovero' domani in ufficio
>Se devi controllare tutto il mese di ottobre 2002, dovrai scricere
>rispettivamente 01/10/2002 e 31/10/2002.
>A come tu fici il programma non esce dal ciclo For ... Next.
??? cosa intendi? come mi sono organizzato io il ciclo finisce
invece il tuo ciclo for next sembra andare in tilt
ciao e grazie



text:
"ciosa" <cio...@TOGLIinwind.it> ha scritto nel messaggio
news:3ddd2212...@news.fastwebnet.it...
>
[CUT]
>
>
> >Se devi controllare tutto il mese di ottobre 2002, dovrai scricere
> >rispettivamente 01/10/2002 e 31/10/2002.
> >A come tu fici il programma non esce dal ciclo For ... Next.
>
> ??? cosa intendi? come mi sono organizzato io il ciclo finisce
> invece il tuo ciclo for next sembra andare in tilt
>
> ciao e grazie
Per scrupolo mi sono fatto un database di esempio con la soluzione che ti ho
suggerito e a me funziona tutto; onestamente non riesco ad immaginare cosa
ci sia nel tuo database che lo faccia ciclare all'infinito nella For ...
Next.
L'unica cosa dovrebbe essere i valori contenuti in DataInizio e DataFine, ma
non riesco a ipotizzare come.
Mi dispiace.



text:
troppo scrupolo...
ritentando stamattina...tutto funzionava...forse inserivo date inesistenti
ora ho modificato con la query4 che ti dicevo cosi' mi esce una query con la
data di lunedi' della settimana mancante questo xche' i dipendenti
inseriscono le settimane immettendo la data del lunedi e della domenica
grazie...tante ore mensili di lavoro risparmiate!
ciao



title: db trasportato su altro PC e non si apre

author: NSantini

text:
Ho creato un'applicazione semplice per registrare le prestazioni
ambulatoriali e ci lavoro già da un paio di anni e funziona regolarmente.
Un mio collega mi ha chiesto di poterla avere sul PC del suo reparto per
poterla usare.
L'ho copiata in un pendrive, l'ho trasferita sull'altro PC e.. sorpresa: le
tabelle si aprono, le maschere  e i report no e il messaggio grosso modo è
che "un altro utente ci sta lavorando" !!! Ma chi? Come è possibile?
Mi scoccia ricreare tutte le maschere e i report.
Cosa mi suggerite? Grazie
NSantini


author: Roberto da Parma

text:
"NSantini" <
inf...@libero.it
> ha scritto nel messaggio
news:f6g4gc$9om$1...@registered.motzarella.org...

Prova a creare sul PC, dove hai copiato il DB, un nuovo file mdb e poi
importi tutto.
Ciao
--
Roberto da Parma


title: Access 2000 & VBA

author: Le Roi

text:
Ciao a tutti!
è il mio primo messaggio qui!...ragazzi aiutatemi...
allora:
creo una tabella con i campi nome e cognome...
poi creo una maschera con due caselle di testo..non assegno nessuna fonte dati..
qual' è il codice VBA per inserire i campi immessi nella tabella?
grazie


title: Access 2000 & VBA

author: Carlo Costarella

text:
"Le Roi" <
luk_...@libero.it
> ha scritto nel messaggio
news:d7794f72.02072...@posting.google.com...

Non molto chiaro, comunque...
Propongo due delle possibili strade: codice o query di accodamento
Codice:
Sull'evento click di un pulsante nella maschera:
Dim RCS as Recordset
Set RCS = currentdb.openrecordset("TuaTabella")
With rcs
.addnew
![Cognome] = me.Cognome
![Nome] = me.[Nome]
.update
end with
'evita di usare la stringa "nome" perchè è parola riservata per Access e
'se non la racchiudi tra quadre, potrebbe darti dei problemi.
rcs.close
Query di accodamento:
Crea una query di accodamento che abbia nelle colonne il riferimento ai
controlli sulla maschera
poi esegui la query dal pulsante (Salva) sulla maschera.
Ciao, Carlo


title: eliminare bordi casella di testo in stampa

author: Matteo

text:
sto realizzando una maschera di riepilogo per poter stampare dei
certificati di analisi precedentemente archiviati.
ho scelto di usare delle caselle di riepilogo. in stampa voglio
ottenere un foglio bianco senza alcun bordo.
nelle proprietà delle caselle di testo ho impostato Aspetto piatto,
stile bordo trasparente, colore bianco, spessore bordo sottilissimo,
abilitato no, bloccato si. a video e in anteprima di stampa vedo un
foglio bianco, in stampa le caselle di riepilogo sono bordate in alto
e a sx in nero e in basso e a destra in grigio. dove sbaglio? qualcuno
può aiutarmi? grazie in anticipo


title: prendere una parte di caratteri di una stringa fino alla virgola

text:
data la stringa "EPSON Stylus C42 Series,winspool,Ne01:"
mi servierebbe solo la stringa "EPSON Stylus C42 Series"
praticamente fino alla virgola
mi sapreste aiutare?
Grazie.


author: sv

text:
Simba883 ha scritto:


> mi sapreste aiutare?
> Grazie.
Vedi  nell'Help la funzione "InStr".
--
rgrds
SC
--
questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news
 segnala gli abusi ad
ab...@newsland.it


author: namor

text:
Simba883 ha scritto:

Usa Instr() per sapere in che posizione si trova la virgola, e poi Left()
per estrarre tutti i caratteri dall'inizio della stringa fino a quello
prima della virgola.
Namor
--
namor at inwind punto it



title: Compilazione automatica

author: Doc Hollywood

text:
Ho due tabelle, una master ed una slave, in relazione "1 a 1"
attraverso un codice "NrOrdine", solo che i campi della slave vengono
compilati (attraverso maschera) solo quando ce ne e' bisogno, quindi
ho impostato l'origine della maschera con una istruzione SQL del tipo:
SELECT TrasfOrdini.NrOrdine, Contratti_Fornitori.FornitoreTRA
FROM TrasfOrdini LEFT JOIN Contratti_Fornitori ON TrasfOrdini.NrOrdine
= Contratti_Fornitori.NrOrdine;
Ora il committente mi chiede (per sue esigenze) che le righe siano
effettivamente compilate tutte e che il campo "AAA" della slave se
nuovo sia compilato col campo "BBB" della master.
Sono andato in pallone e non ne sono venuto fuori!
Pensavo ad una query di accodamento basata su una query di ricerca
differenze e sfruttare il fatto che il campo "AAA" e' Null per
farglielo compilare in automatico. Ma non sono riuscito a buttare giu'
un codice decente :-((
Consigli?
Grazie.
Doc Hollywood


title: Compilazione automatica

author: Antonio Biso

text:
"Doc Hollywood" <
doch...@katamail.com
> ha scritto nel messaggio
news:adda0833.03032...@posting.google.com...

Il tuo problema non sembra complicato, ma devi spiegare come vuoi agire, se
questa cosa deve essere automatizzata per l'utente, quale è insomma il
flusso operativo del tuo applicativo!!!
Antonio


title: [mOOOlto OT]Errore CRC

author: Marco dell'Oste

text:
Ciao a tutti,
Frugando qua e la mi č capitato di mettere le mani su un vecchio db access
compattato e salvato su 4 floppy con WinRar .
Provo a scompattare ma arrivato a buona parte del 3° dischetto, il tutto si
blocca e mi dice CRC errato >(((
Qualche anima sa di qche programma che correga questo problema?? Ho provato
con lo stesso WinRAR ma senza esito...
Ho provato a copiare i floppy su HD e la copia riesce senza alcuna
difficolta (quindi no tracce KO su floppy)
Che posso fare??
CiauzzzOT
Marco


title: Prestazioni scadenti query che alimenta form

author: RobertoA

text:
Sto avendo un bel problema con la lettura di un set di dati da
visualizzare su una form continua
Nel senso che il tempo di restituzione dei dati e' dell'ordine di un
minuto circa, quindi inaccettabile, deve rispondere max qualche secondo

La form e' una form continua e per ogni riga mostra una decina di campi,
articoli, prezzi, esistenza

SELECT ARTICOLI.CODICE, ARTICOLI.DESCRIZIONE_BREVE, PREZZI.ID_PREZZI,
PREZZI.PREZZO, PREZZI.PREZZO_IVATO, CONTABILEDEPOSITITESTATE.ESISTENZA,
CONTABILEDEPOSITITESTATE.DISPONIBILITA, PREZZI.CODICE_DEPOSITO,
PREZZI.CODICE_LISTINO, PREZZI.CODICE_VALUTA FROM (ARTICOLI LEFT JOIN
PREZZI ON ARTICOLI.CODICE = PREZZI.CODICE_ARTICOLO) LEFT JOIN
CONTABILEDEPOSITITESTATE ON ARTICOLI.CODICE =
CONTABILEDEPOSITITESTATE.CODICE_ARTICOLO WHERE
ARTICOLI.DESCRIZIONE_BREVE Like "Base*" and PREZZI.CODICE_DEPOSITO=1 and
PREZZI.CODICE_LISTINO= 1

Windows 8.1 sul client, Windows 10 sul server db
Versione Access 2003 (ho provato anche con 2013) sul client
Db Firebird 3.0 sul server
Rete 1000 Mbit/sec

La stringa sopra viene usata all'interno dell'evento Form_Load della
schermata con la seguente istruzione:
me.recordsource=stringa_sql (quella sopra)

Prove gia' fatte:
- 1 creata query su Access, lanciata, stessa lentezza
- 2 creata stessa query su IbExpert (db manager) e risponde
istantaneamente, quindi il db server+pc+rete+struttura db penso si possa
escludere
- 3 indicizzati tutti i campi coinvolti con le join e le selezioni

Quando lancio, dentro Access, la query sopra descritta, vedo un discreto
traffico di rete (3-4 Mbit/sec che vangon sul client, 1-2 Mbit/sec che
vanno) il che mi fa pensare che Access non converta la query per il db
usato ma si ciucci le tabelle grezze e si smazzi i dati come vuole lui

La domanda e': come fare per evitare di far 'pensare' Access ed inviare
la query direttamente al db server, leggendo i dati di risulta?
Oppure, piu' semplicemente, come fare per velocizzare le operazioni?


author: Simone Calligaris

text:
"RobertoA" <

(cut)

> Quando lancio, dentro Access, la query sopra descritta, vedo un discreto
> traffico di rete (3-4 Mbit/sec che vangon sul client, 1-2 Mbit/sec che
> vanno) il che mi fa pensare che Access non converta la query per il db
> usato ma si ciucci le tabelle grezze e si smazzi i dati come vuole lui

Per forza, sulla base di quanto scrivi.

> La domanda e': come fare per evitare di far 'pensare' Access ed inviare la
> query direttamente al db server, leggendo i dati di risulta?
> Oppure, piu' semplicemente, come fare per velocizzare le operazioni?

Una query così semplice dovrebbe essere inviata al Server dal driver ODBC.
I "tipi" nella condizione Where sono giusti?  (CodiceDeposito e Listino non
dovrebbero essere numeri)

ARTICOLI.DESCRIZIONE_BREVE Like    'Base*'   and PREZZI.CODICE_DEPOSITO='1'
and
PREZZI.CODICE_LISTINO= '1'

Saluti

P.S:  Usa l'apice singolo ' al posto di quello doppio "


text:

Si in effetti i campi PREZZI.CODICE_DEPOSITO e CODICE_LISTINO sono degli
integer e quindi gli apici non ci vanno, non so perche' li abbia
inseriti nel post
La query copiata la' ed incollata qua e':

SELECT ARTICOLI.CODICE, ARTICOLI.DESCRIZIONE_BREVE, PREZZI.ID_PREZZI,
PREZZI.PREZZO, PREZZI.PREZZO_IVATO, CONTABILEDEPOSITITESTATE.ESISTENZA,
CONTABILEDEPOSITITESTATE.DISPONIBILITA, PREZZI.CODICE_DEPOSITO,
PREZZI.CODICE_LISTINO, PREZZI.CODICE_VALUTA FROM (ARTICOLI LEFT JOIN
PREZZI ON ARTICOLI.CODICE = PREZZI.CODICE_ARTICOLO) LEFT JOIN
CONTABILEDEPOSITITESTATE ON ARTICOLI.CODICE =
CONTABILEDEPOSITITESTATE.CODICE_ARTICOLO WHERE
ARTICOLI.DESCRIZIONE_BREVE Like "Base*" and PREZZI.CODICE_DEPOSITO=1 and
PREZZI.CODICE_LISTINO=10

Come fare per vedere cosa 'passa' dal driver odbc?
In sostanza vorrei capire cosa viene inviato da Access al db server
Ho gia' provato col 'tracing' proprio del pannellino di controllo driver
odbc ma oltre al rallentamento eternico introdotto, si capisce una mazza
del log prodotto


author: Potone

text:
Il giorno mercoledì 18 gennaio 2017 10:47:28 UTC+1, RobertoA ha scritto:
[Cut]
>
> La domanda e': come fare per evitare di far 'pensare' Access ed inviare
> la query direttamente al db server, leggendo i dati di risulta?
> Oppure, piu' semplicemente, come fare per velocizzare le operazioni?
Ciao,
hai provato con una query passthrough?

Mat.


text:
"RobertoA" <

> Si in effetti i campi PREZZI.CODICE_DEPOSITO e CODICE_LISTINO sono degli
> integer e quindi gli apici non ci vanno, non so perche' li abbia inseriti
> nel post
> La query copiata la' ed incollata qua e':

> SELECT ARTICOLI.CODICE, ARTICOLI.DESCRIZIONE_BREVE, PREZZI.ID_PREZZI,
> PREZZI.PREZZO, PREZZI.PREZZO_IVATO, CONTABILEDEPOSITITESTATE.ESISTENZA,
> CONTABILEDEPOSITITESTATE.DISPONIBILITA, PREZZI.CODICE_DEPOSITO,
> PREZZI.CODICE_LISTINO, PREZZI.CODICE_VALUTA FROM (ARTICOLI LEFT JOIN
> PREZZI ON ARTICOLI.CODICE = PREZZI.CODICE_ARTICOLO) LEFT JOIN
> CONTABILEDEPOSITITESTATE ON ARTICOLI.CODICE =
> CONTABILEDEPOSITITESTATE.CODICE_ARTICOLO WHERE ARTICOLI.DESCRIZIONE_BREVE
> Like "Base*" and PREZZI.CODICE_DEPOSITO=1 and PREZZI.CODICE_LISTINO=10

Gli Apici li ho aggiunti io, pensando tu li avessi dimenticati   ;-)
Hai provato a sostituire "Base*" con 'Base*'  ?

Saluti


text:

Si, in effetti LA soluzione e' questa
Non avevo mai assegnato ad un recordset una query passthrough
Seguendo questo link ho fatto, ora la risposta e' istantanea

http://www.dbforums.com/showthread.php?1006185-Writing-Pass-Through-Queries-in-VBA

L'unica rognetta e' che cosi' l'sql da inviare e' diverso da quello che
usa Access, nel like gli * diventano % e via discorrendo


text:
"Potone"

> La domanda e': come fare per evitare di far 'pensare' Access ed inviare
> la query direttamente al db server, leggendo i dati di risulta?
> Oppure, piu' semplicemente, come fare per velocizzare le operazioni?
Ciao,
hai provato con una query passthrough?

>

Puņ farlo se gli basta un recordset non aggiornabile.

Saluti.


text:

Si avevo gia' provato, stessa cosa
Per risolvere ho usato una query passthroug, ora vola

---------------------------------------------
strConnection = "ODBC;DRIVER={Firebird/InterBase(r) driver};DSN=DSN_PIPPO;"

strQueryName = "Qry_Select_From_Tbl_Area"

If Test_SQL_PassThrough(strCon,strSql,strQueryName) Then
     Me.RecordSource = strQueryName
     End If
---------------------------------------------

la Test_SQL_PassThrough e' qua sotto

http://www.dbforums.com/showthread.php?1006185-Writing-Pass-Through-Queries-in-VBA


text:
"RobertoA" <

> Si avevo gia' provato, stessa cosa
> Per risolvere ho usato una query passthroug, ora vola

Certo, ma la Form sarà a sola lettura.

Saluti


text:
...
> Certo, ma la Form sarà a sola lettura.
>
> Saluti

Ovviamente.

Beh... può valutare un metodo usuale in questi casi, in cui le qPT sono ottime per per le maschere continue in ReadOnly, poi l'editing in maschera singola... con una estrazione semplificata con la PK...
Sempre fattibile anche con singola... e su Button Abilita EDIT si cambia il RecordSource sempre su interrogazione a singola PK...

Ovviamente farragginoso...

Mi chiedo se non ci sia un Query Analizer...

@Alex


text:
"@Alex"

...
> Certo, ma la Form sarà a sola lettura.

Ovviamente.

Beh... può valutare un metodo usuale in questi casi, in cui le qPT sono
ottime per per le maschere continue in ReadOnly, poi l'editing in maschera
singola... con una estrazione semplificata con la PK...
Sempre fattibile anche con singola... e su Button Abilita EDIT si cambia il
RecordSource sempre su interrogazione a singola PK...

Ovviamente farragginoso...

>
>

Del resto non ha alternative se non riesce a far camminare la Query ODBC
(ma può essere che in quella Form non fosse proprio previsto l'editing).

Saluti


text:

Gia', mi basta 'vedere' i record richiesti e selezionarne uno