text:
Cristian on 20-06-11 wrote:
> Ora ho il problema che l'invio avviene solo se apro il programma!
>
> Ciao
> Chita
Prima esponi tutto o parte significativa del messaggio a cui rispondi,
poi fai seguire la tua risposta.
ï¿œ questo che ti stava dicendo Antionio Biso.
Allora, tenendo comunque presente che non si puï¿œ aver tutto dalla vita:
=======================================
Private Sub SendMail_Click()
' Access 2003, Outlook 2003, References:
' Visual Basic for Applications
' Microsoft Access 11.0 Object Library
' Microsoft Outlook 11.0 Object Library
'
Dim OL As Object, NewMail As MailItem, AttachArray(1 To 2) As String, i
As Integer
' Indicare l'eseguibile di Outlook
Application.FollowHyperlink "C:\Microsoft Office\Office14\Outlook.exe"
Set OL = CreateObject("Outlook.Application")
Set NewMail = OL.CreateItem(olMailItem)
AttachArray(1) = "C:\aa1.txt"
AttachArray(2) = "C:\aa2.txt"
With NewMail
    .To = [eMailAddress]
    .Subject = [eMailSubject]
    .Body = [eMailMessage]
    .CC = "
brun...@libero.it
;
cmp...@gmail.com
"
    For i = 1 To 2
        .Attachments.Add AttachArray(i)
    Next
    .Send
End With
OL.Application.Quit
End Sub
==============================================
Bruno


title: Inviare da codice VBA una e-mail con allegati OUTLOOK 2003

author: Antonio Biso

text:
"Bruno Campanini" <
bruno...@libero.it
> ha scritto nel messaggio
news:4e007a2f$0$44201$4faf...@reader1.news.tin.it...
> Cristian on 20-06-11 wrote:
>
>> Ora ho il problema che l'invio avviene solo se apro il programma!
>>
>> Ciao
>> Chita
>
> Prima esponi tutto o parte significativa del messaggio a cui rispondi,
> poi fai seguire la tua risposta.
> � questo che ti stava dicendo Antionio Biso.
>
> Allora, tenendo comunque presente che non si pu� aver tutto dalla vita:
Bruno, tenendo conto che io per un lavoro simile utilizzavo il file snp di
access 2003, ma che non tutti riescono a vederlo se non hanno installato il
viewer e soprattutto con vista o 7 ci sono proprio problemi di
compatibilit�, come fare per inviare in automatico un report come allegato
PDF e non SNP?
Se serve qualcosa di esterno deve essere possibile darlo agli utenti finali
con una installazione semplice
Grazie
Antonio


author: Bruno Campanini

text:
Antonio Biso on 21-06-11 wrote:
> "Bruno Campanini" <
bruno...@libero.it
> ha scritto nel messaggio
> news:4e007a2f$0$44201$4faf...@reader1.news.tin.it...
>> Cristian on 20-06-11 wrote:
>>
>>> Ora ho il problema che l'invio avviene solo se apro il programma!
>>>
>>> Ciao
>>> Chita
>>
>> Prima esponi tutto o parte significativa del messaggio a cui rispondi,
>> poi fai seguire la tua risposta.
>> ï¿œ questo che ti stava dicendo Antionio Biso.
>>
>> Allora, tenendo comunque presente che non si puï¿œ aver tutto dalla vita:
>
> Bruno, tenendo conto che io per un lavoro simile utilizzavo il file snp di
> access 2003, ma che non tutti riescono a vederlo se non hanno installato il
> viewer e soprattutto con vista o 7 ci sono proprio problemi di compatibilitï¿œ,
> come fare per inviare in automatico un report come allegato PDF e non SNP?
> Se serve qualcosa di esterno deve essere possibile darlo agli utenti finali
> con una installazione semplice
Con Office 2010 ï¿œ semplicissimo:
Apri il report in modalitï¿œ Preview
Click (sul ribbon) in E-mail
Scegli PDF
Si apre Outlook per l'indirizzo etc.
Per automatizzare il tutto... non l'ho mai fatto!
Provo a darci un'occhiata.
Bruno


text:
"Bruno Campanini" <
bruno...@libero.it
> ha scritto nel messaggio
news:4e008136$0$44200$4faf...@reader1.news.tin.it...
> Antonio Biso on 21-06-11 wrote:
>> "Bruno Campanini" <
bruno...@libero.it
> ha scritto nel messaggio
>> news:4e007a2f$0$44201$4faf...@reader1.news.tin.it...
>>> Cristian on 20-06-11 wrote:
>>>
>>>> Ora ho il problema che l'invio avviene solo se apro il programma!
>>>>
>>>> Ciao
>>>> Chita
>>>
>>> Prima esponi tutto o parte significativa del messaggio a cui rispondi,
>>> poi fai seguire la tua risposta.
>>> � questo che ti stava dicendo Antionio Biso.
>>>
>>> Allora, tenendo comunque presente che non si pu� aver tutto dalla vita:
>>
>> Bruno, tenendo conto che io per un lavoro simile utilizzavo il file snp
>> di access 2003, ma che non tutti riescono a vederlo se non hanno
>> installato il viewer e soprattutto con vista o 7 ci sono proprio problemi
>> di compatibilit�, come fare per inviare in automatico un report come
>> allegato PDF e non SNP?
>> Se serve qualcosa di esterno deve essere possibile darlo agli utenti
>> finali con una installazione semplice
>
> Con Office 2010 � semplicissimo:
> Apri il report in modalit� Preview
> Click (sul ribbon) in E-mail
> Scegli PDF
> Si apre Outlook per l'indirizzo etc.
>
> Per automatizzare il tutto... non l'ho mai fatto!
Premetto che � escluso il 2010
e cmq deve essere automatizzato perch� il tutto � all'interno di un ciclo
che invia mail a n indirizzi salvati in rubrica ma ognuno con i dati del
record in corso
Antonio


text:
Antonio Biso on 21-06-11 wrote:
> Premetto che ï¿œ escluso il 2010
> e cmq deve essere automatizzato perchï¿œ il tutto ï¿œ all'interno di un ciclo che
> invia mail a n indirizzi salvati in rubrica ma ognuno con i dati del record
> in corso
Salvati in quale rubrica? in quella di Outlook?
E se sï¿œ, a tutti ovvero secondo un filtro?
Con Office 2003?
Bruno


text:
"Bruno Campanini" <
bruno...@libero.it
> ha scritto nel messaggio
news:4e008dcc$0$15659$4faf...@reader2.news.tin.it...
> Antonio Biso on 21-06-11 wrote:
>
>> Premetto che � escluso il 2010
>> e cmq deve essere automatizzato perch� il tutto � all'interno di un ciclo
>> che invia mail a n indirizzi salvati in rubrica ma ognuno con i dati del
>> record in corso
>
> Salvati in quale rubrica? in quella di Outlook?
> E se s�, a tutti ovvero secondo un filtro?
> Con Office 2003?
no no, in una tabella access
outlook nel mio caso non c'entra nulla
Antonio


text:
Antonio Biso on 21-06-11 wrote:
> no no, in una tabella access
> outlook nel mio caso non c'entra nulla
Questo funziona con Access/Outlook 2010.
Ora non ho tempo di provarlo con Access/Outlook 2003.
Dimmelo tu come va.
===========================================
Private Sub SendingMailFromTable_Click()
' References:
' Visual Basic for Applications
' Microsoft Outlook 14.0 Object Library
' Microsoft Office 14.0 Object Library
' Microsoft Office 14.0 Access database engine Object Library
' Microsoft Scripting Runtime
'
Dim NewMail As MailItem, S As String, i As Integer
Dim AttachmentArray(1 To 3) As String
Dim FSO As Object, TextStream As Object
Dim db As Database, RS As Recordset
Set db = CurrentDb
Set RS = db.OpenRecordset("t_Contacts", dbOpenDynaset)
' Table t_Contacts has 3 Fields:
' CompanyName, Attn, EmailAddress. All the Fields are Text(255).
' Some Attachments
AttachmentArray(1) = "C:\aa2.txt"
AttachmentArray(2) = "C:\aa3.txt"
AttachmentArray(3) = "C:\aa4.txt"
' C:\aa1.txt is your newsletter
Set FSO = CreateObject("Scripting.FileSystemObject")
Set TextStream = FSO.OpenTextFile("C:\aa1.txt")
Do Until TextStream.AtEndOfStream
    S = TextStream.ReadLine
Loop
Do Until RS.EOF
    Set NewMail =
CreateObject("Outlook.Application").CreateItem(olMailItem)
    With NewMail
        .To = RS![eMailAddress] ' "aaaaa@aaa; bbbbb@bbb; ccccc@ccc"
        '.CC = "ddddd@ddd; eeeee@eee"
        '.BCC = "fffff@fff; ggggg@ggg"
        .Subject = "My Special Subject"
        .Body = RS![CompanyName] & vbCrLf & "Attn " & RS![Attn] &
vbCrLf & S
        For i = 1 To 3
            .Attachments.Add AttachmentArray(i)
        Next
        .Send
    End With
    Set NewMail = Nothing
    RS.MoveNext
Loop
End Sub
=========================================
Bruno


title: Disattivare i tasti PageDown PageUp

author: JoeBlack

text:
Sicuramente sarà una cazzata per te... ma io ci sto sbattendo da due ore......
come si fa a disattivare i tasti pageUp e PageDown?
ho fatto così:
Private Sub Form_Load()
Me.KeyPreview = True
End Sub
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    Select Case KeyCode
        Case vbKeyPageDown
            MsgBox "Hai premuto" & KeyCode
            KeyCode = 0
            ' Elabora eventi tasto F2.
        Case vbKeyF3
            MsgBox "Hai premuto" & KeyCode
            ' Elabora eventi tasto F3.
        Case vbKeyF4
            MsgBox "Hai premuto" & KeyCode
            ' Elabora eventi tasto F4.
        Case Else
    End Select
End Sub
non gli passa manco per l'anticamera...
cosa sbaglio?
grazies...
--
Saluti
- - -- - -- - -- - -- - -- - -- - -- - -
JoeBlack


title: Disattivare i tasti PageDown PageUp

text:
> Sicuramente sarà una cazzata per te... ma io ci sto sbattendo da due ore......
> come si fa a disattivare i tasti pageUp e PageDown?
[CUT]
Mi scuso con il NG per i toni "amichevoli" e poco formali utilizzati.. ma il messaggio è stato erronamente postato qui mentre doveva essere un messaggio personale :(
si vede che sono fuso...
cmq.. ci sono riuscito in un altro modo... il blocco del pagedown era per non creare record nuovi senza controllo...
se a qualcuno interessa posto il codice.. domani... non adesso che sto a pezzi...
Buonanotte..
Joe


title: Disattivare i tasti PageDown PageUp

author: ALESSANDRO Baraldi

text:
"JoeBlack" <
joeb...@email.it
> ha scritto nel messaggio
news:9A15d.2324$O9.1...@news4.tin.it...

[CUT]




Buonanotte..
Joe
He....He.......!!!!
Beccato...!
Vedi se funziona.
--
@Alex (Alessandro Baraldi)
---------------------------------------------------------------------------
http://www.sitocomune.com/
http://www.mantuanet.it/alessandro.baraldi/
---------------------------------------------------------------------------


title: analisi e conteggio

text:
Come al solito non ci arrivo da solo :(

in una tabella "incarichi" ho una serie di nominativi e i relativi
periodi di incarico (on e off) dal 2013 ad oggi; ovviamente i nominativi
sono individuati in maniera univoca nella tabella collegata anagrafica.

Vorrei individuare, anno per anno,
- quali sono i nominativi che non hanno avuto incarichi nell'anno
precedente;
- quali sono quelli non hanno avuto incarichi l'anno successivo;
- contare i nominativi di entrambe le categorie.

Come imposto la query, per favore?

Grazie molte in anticipo
--
Stefano


title: analisi e conteggio

author: Akery

text:

senza conoscere la struttura della tabella iniziale puoi provare a
visualizzare le informazioni con una query a campi incrociati

TRANSFORM Count(incarichi.incarico) AS ConteggioDiincarico
SELECT incarichi.nominativo
FROM incarichi
WHERE (((incarichi.incarico)=Yes))
GROUP BY incarichi.nominativo
PIVOT incarichi.anno;

la condizione where si/no la scegli in base alla tua esigenza, ho
impostato anno come un campo numerico.

Akery

---
Questa e-mail è stata controllata per individuare virus con Avast antivirus.
https://www.avast.com/antivirus


title: analisi e conteggio

text:
> senza conoscere la struttura della tabella iniziale puoi provare a
> visualizzare le informazioni con una query a campi incrociati
>
> TRANSFORM Count(incarichi.incarico) AS ConteggioDiincarico
> SELECT incarichi.nominativo
> FROM incarichi
> WHERE (((incarichi.incarico)=Yes))
> GROUP BY incarichi.nominativo
> PIVOT incarichi.anno;

> la condizione where si/no la scegli in base alla tua esigenza, ho
> impostato anno come un campo numerico.

Grazie infinite.
Cambiate le cose da cambiare, la query appare così:

TRANSFORM Count(Imbarchi.ID) AS ConteggioDiID
SELECT Imbarchi.Surname, Count(Imbarchi.ID) AS [Totale di ID]
FROM Imbarchi INNER JOIN Anagrafica ON Imbarchi.Surname=Anagrafica.ID
WHERE (((Imbarchi.from) =yes))
GROUP BY Imbarchi.Surname, Anagrafica.Surname, Anagrafica.Name
PIVOT Imbarchi.from;

Che mi restituisce un errore per troppe colonne.

Un'alternativa di ragionamento potrebbe essere query di confronto anno per anno?

Grazie ancora
--
Stefano


title: analisi e conteggio

author: akery

text:

prova così:

TRANSFORM Count(Imbarchi.ID) AS ConteggioDiID
SELECT Imbarchi.Surname, Count(Imbarchi.ID) AS [Totale di ID]
FROM Imbarchi INNER JOIN Anagrafica ON Imbarchi.ID = Anagrafica.id
WHERE (((Imbarchi.from)=Yes))
GROUP BY Imbarchi.Surname, Anagrafica.Surname, Anagrafica.Name
PIVOT Imbarchi.from;

altrimenti crea un numero minimo di dati fittizi (con attributi) per
capirci qualcosa in più



title: analisi e conteggio

text:
Il 27/08/2018 16:30, akery ha scritto:

> prova così:
>
> TRANSFORM Count(Imbarchi.ID) AS ConteggioDiID
> SELECT Imbarchi.Surname, Count(Imbarchi.ID) AS [Totale di ID]
> FROM Imbarchi INNER JOIN Anagrafica ON Imbarchi.ID = Anagrafica.id
> WHERE (((Imbarchi.from)=Yes))
> GROUP BY Imbarchi.Surname, Anagrafica.Surname, Anagrafica.Name
> PIVOT Imbarchi.from;

Come dicevo nel messaggio precedente, Access mi risponde così:

"Troppe intestazioni di colonne a campi incrociati <373>. (Errore 3205)
È stata eseguita un'istruzione SQL che ha tentato di creare troppe
colonne. Il valore specificato indica la colonna che ha provocato l'errore.
È possibile ridurre il numero di colonne aggiungendo ulteriori
condizioni alla clausola WHERE. In alternativa, se non è presente una
clausola WHERE, aggiungerne una."

Ecco perchè avevo sostituito il tuo
WHERE (((Imbarchi.from)=Yes))
con
WHERE (((Imbarchi.from) Between #1/1/2014# And #12/31/2014#))

In questa maniera ottengo il numero di imbarchi per ogni nominativo nel
solo 2014; se duplicassi la query per gli altri anni, potrei poi
confrontare le query una con l'altra.

Posso semplificare in qualche modo questo ragionamento?

> altrimenti crea un numero minimo di dati fittizi (con attributi) per
> capirci qualcosa in piùuhm... ho provato a ridurre la tabella Imbarchi due soli anni (poco più
di 700 records) ma la risposta è stata la stessa.
Grazie ancora.
--
Stefano


title: analisi e conteggio

text:

provato ad invertire righe con colonne?



title: analisi e conteggio

text:
Il 28/08/2018 15:56, Akery ha scritto:
> provato ad invertire righe con colonne?
certo che si, ma non riesco ad individuare la corretta trasformazione:
il messaggio di errore è: "Per creare una query a campi incrociati, è
necessario specificare una o più opzioni Intestazione riga, un'opzione
Intestazione colonna e un'opzione Valore."

L'eccessivo numero di colonne credo sia dovuta al fatto che nelle
colonne Access inserisce TUTTE le date di imbarco di TUTTI i marittimi,
inserendo 1 dov'è il caso e facendo la somma alla fine della riga,
costruendo insomma un'enorme tabella (fondamentalmente vuota) che
incorre nei limiti del programma. Anche se riuscissi a invertire
correttamente righe con le colonne, i nominativi (nelle colonne)
superano di certo i 254 (che immagino sia il limite).

Sarebbe quindi bello avere la maniera di inserire nelle colonne le date
di imbarco raggruppate per anno, ma non credo si possa fare in una sola
query, giusto?

grazie ancora
--
Stefano


title: analisi e conteggio

text:

mi dispiace non saprei risponderti, lascio che siano gli esperti a
proseguire
Akery



title: analisi e conteggio

author: GiorgioDaPrato

text:
> > Sarebbe quindi bello avere la maniera di inserire nelle colonne le date
> > di imbarco raggruppate per anno, ma non credo si possa fare in una sola
> > query, giusto?
> >

NON sono un esperto, ma un' aggiunta la posso fare
(riprendendo i dubbi dichiarati)

Per prima cosa (proprio perchè NON sono un esperto)
nelle compilazioni delle query a campi incrociati
mi lascio guidare dall'interfaccia grafica della composizione query (QBE)
e qui si trova appunto la dicitura "campi incrociati"
che fa apparire "intestazione riga" (ammesse più intestazioni righe),
"intestazione colonna", "valore" (ammesso solo una intestazione colonna e un valore)

poi
-trovo strana la scelta di NON far corrispondere la lista dei campi raggruppati (GROUP) alla lista delle intestazioni riga (SELECT): se, per ovvia necessità di calcolo del valore, il raggruppamento è fatto su più campi, questi poi "devono" essere tutti visibili

-con il limite di 255 colonne non si può pensare di avere tante colonne quanti sono TUTTI i singoli giorni di un anno ...

per cui puoi impostare una selezione (diciamo) semestrale

ma si può anche impostare come Pivot (il "valore") la formula: Year([data]) & "/" & Month([data])
E' solo un esempio ! (occorre scrivere meglio la formula, sarà necessario aggiungere uno 0 ai mesi da 1 a 9 per vederli ben in ordine, e comunque dopo 20 anni si avranno 240 colonne ...)

infine
per come esponi la cosa appare che tu non abbia esigenze particolari nè di  aspetto visivo finale della query e nè di preparazione dei criteri che limitano la selezione delle date (solo consultazione personale della query ?, se la devi "consegnare" qualcosa a riguardo va fatto ...)


title: analisi e conteggio

text:
Il 29/08/2018 15:57, GiorgioDaPrato ha scritto:

> Per prima cosa (proprio perchè NON sono un esperto)
> nelle compilazioni delle query a campi incrociati
> mi lascio guidare dall'interfaccia grafica della composizione query (QBE)
Il mio problema fondamentale sta(va) nel non aver compreso cos'è una
query a capi incrociati e a cosa serve. Grazie ai tuoi consigli (ma
anche grazie ad Akery, che mi ha aiutato a ragionare) ho portato a
termine CON ATTENZIONE la procedura guidata ed ho ottenuto

TRANSFORM Count(Imbarchi.[ID]) AS ConteggioDiID
SELECT Imbarchi.[Surname], Count(Imbarchi.[ID]) AS [Totale di ID]
FROM Imbarchi INNER JOIN Anagrafica ON Imbarchi.Surname = Anagrafica.ID
GROUP BY Imbarchi.[Surname]
PIVOT Format([from],"yyyy");

che è quanto pensavo di ottenere. Grazie infinite.

> infine
> per come esponi la cosa appare che tu non abbia esigenze particolari nè di > aspetto visivo finale della> query...
E' così, almeno in relazione a questa query. Ottenuto il numero di
imbarchi per persona per anno, dovrei stabilire le percentuali di
continuità anno per anno, vale a dire (in relazione al numero di
imbarchi) quanti nominativi hanno cambiato compagnia e hanno dovuto
essere sostituiti. Pensavo di esportare i dati query in Excel e
graficare i dati da lì. Immagino sia possibile farlo anche in Access, ma
la vedo dura, partirei da zero...

Grazie di nuovo davvero per i suggerimenti e le spiegazioni.

ciao
--
Stefano


title: analisi e conteggio

text:
(ho riscritto il post, avevo copiato male la TRANSFORM)
> > per come esponi la cosa appare che tu non abbia esigenze particolari nè di  > > aspetto visivo finale della query...
> E' così, almeno in relazione a questa query. Ottenuto il numero di
> imbarchi per persona per anno, dovrei stabilire le percentuali di
> continuità anno per anno, vale a dire (in relazione al numero di
> imbarchi) quanti nominativi hanno cambiato compagnia e hanno dovuto
> essere sostituiti. Pensavo di esportare i dati query in Excel e
> graficare i dati da lì. Immagino sia possibile farlo anche in Access, ma
> la vedo dura, partirei da zero...
>

se l'utilizzo è "in proprio" E è sufficiente il conteggio per anno
c'è la possibilità di creare una tabella con la query a campi incrociati:

è semplice, basta creare una nuova query, inserire come origine la query a campi incrociati, selezionare tutto (asterisco) e imporre, appunto, query di creazione tabella.

La query di creazione tabella SOVRASCRIVE SEMPRE, per cui la tabella è sempre aggiornata, e rimane sempre lo stesso nome.
A questo punto, per la parte calcoli di confronto, occorre preparare una nuova query (origine dati: la tabella) e inserire, anno dopo anno, i campi calcolati necessari
ad esempio: [2014]/[Totale di ID] e sceglier la formattazione percentuale
oppure fare un calcolo che, di fatto, restituisce una percentuale

Per quanto riguarda il grafico: non ne ho mai consegnati (in casi di tabelle riassuntive è stato sufficiente dare la possibilità di più ordinamenti a piacere) ma penso ci trovino buoni esempi

Precisazioni:
-se mantieni l'anno come valore Pivot il nome campo nella tabella creata è "un numero" e per utilizzarlo (campi calcolati ...) è bene inserirlo fra parentesi quadre.
-ci sarà (quasi) certamente l'inghippo dei valori nulli (valori non presenti, ma che poi vengono ripresi dai campi calcolati).
Quando mi è capitato ho aggirato in questo modo, allo scopo di far apparire SUBITO il valore zero (nella query a campi incrociati):

TRANSFORM nz(Count(Imbarchi.[ID])) + 0 AS ConteggioDiID


title: analisi e conteggio

text:
Il 31/08/2018 19:19, GiorgioDaPrato ha scritto:
> (ho riscritto il post)
> se l'utilizzo è "in proprio" E è sufficiente il conteggio per anno...
Fantastico, grazie infinite. Più tardi ci rimesto e sicuramente ti
faccio sapere.

Grazie ancora
--
Stefano


title: Problema con stampa relazioni

author: Piero

text:
Le relazioni di un dBase fatto di molte tabelle non possono essere stampate
perchè access dice "che escono dalle dimensioni massime" e quindi
bisognerebbe "impastare" le tabelle più vicine una all'altra. Così non si
capisce più nulla.
Non c'è qualche utilities da scaricare che consenta di stampare in modo
dignitoso tabelle e relazioni?
(access 2003)
Piero.


title: Problema con stampa relazioni

author: Alessandro Baraldi

text:

Si vai sul Sito di Lebans e cerca l'utility per stampare le relazioni,
aggira proprio questo ostacolo...
@Alex


title: integrità referenziale

author: Singer

text:
In liena generale, è sempre necessario applicare l'integrità referenziale?
se si, è possibile fare in modo che non si debba inserire necessariamente un
valore nella tabella correlata.
se è incomprensibile la domanda poi indico la struttura delle mie tabelle
Grazie


title: integrità referenziale

author: MA

text:

Il principio di integrità referenziale è importante/necessario per evitare record "orfani". Se questo è un male sopportabile puoi evitarlo.
E' un problema di economia del tuo db
--
--
MAssimiliano Amendola
www.accessgroup.it
Cisa - Conferenza Italiana Sviluppatori Access
Segrate (MI), 7-8 giugno 2007


title: integrità referenziale

text:
"MA" <
mas...@massimilianoamendola.it
> ha scritto nel messaggio
news:fc0bs5$utl$1...@tdi.cu.mi.it...

Quindi siccome ho una tabella che costituisce il lato molti di due relazioni
in cui vi sono due chiavi esterne ad altrettante tabelle lato uno
(supponiamo Tabella A e Tabella B), io non avrò mai record orfani!. poichè
quando la tabella C (lato molti) non è corralata con la Tabella ,B lo sarà
con la Tabella A ed è  proprio quello che mi serve.
Ho provato anche ad applicare l'integrità referenziale e ad impostare il
valore null come predefinito dei campi-chiavi esterne. Sembra che funzioni
lo stesso. perchè in questo caso non mi chiede necessariamente un campo
correlato per entrambe le chiavi


title: problema in maschera

author: Mirco

text:
Scusate qualcuno mi puņ aiutare? Io devo inserire un'immagine in ogni record
di una maschera, qualcuno mi ha detto che devo usare dei controlli
ActiveX, ma non sņ la procedura esatta. Anticipatamente Ringrazio coloro che
mi potranno aiutare.


title: problema in maschera

author: Alessandro Cara

text:
Mirco wrote:
>

prima un po di ordine:
-I record sono sulle tabelle
-Le maschere non contengono record
-Non e' consigliabile inserire le immagini sulla base dati (tabelle)
 per problemi di volume delle tabelle stesse
-L'implementazione della gestione immagini puoi trovarla su
www.sitocomune.com
 cmq. a seguire faccio un riepilogo
1) Definire sulla tabella un campo che conterra' il percorso della
   immagine
2) Definire in maschera un controllo immagine (immagine) indicando sulla
proprieta'
   "Tipo Immagine" = collegata
3) Per semplicita' immettere anche un controllo testo (percorso) che
contiene il percorso
   della immagine (magari non visibile se non serve)
4) Sull'evento di current della maschera inserire:
   me!immagine.picture = me!percorso   (il me! e' superfluo lo metto per
chiarezza)
5) Se non mi sovviene male c'e' qualche problema se si usa una struttura
di maschera
   di tipo "Continuo"
--
a.cara
Togli qualcosa dall'email


title: Valore predefinito

author: FrancoK

text:
Come assegnare ad un campo (casella di testo) un valore predefinito
uguale a quello di un campo di in altra tabella?
La query d'origine della maschera contiene tutte e due le tabelle.
Saluti
Frank


title: Valore predefinito

author: Roberto da casa

text:
"FrancoK" <
Fra...@mclink.it
> ha scritto nel messaggio
news:8ret3p$hiq$1...@news.mclink.it...
> Come assegnare ad un campo (casella di testo)
Si tratta di un campo di una tabella o di una casella di testo di una
maschera?
 > un valore predefinito uguale a quello di un campo di in altra tabella?
Devi assegnargli un valore predefinito o il valore del campo di una certa
tabella?
> La query d'origine della maschera contiene tutte e due le tabelle.
Inserisci anche il campo che contiene il valore desiderato nella query che è
origine record della maschera, quindi dichiara la tua casella di testo come
associata a tale campo.
> Saluti
> Frank
>
>
--
Roberto
---------------------------------------------
il sito comune di it.comp.appl.access:
http://members.xoom.it/it_db_access/
---------------------------------------------


title: Valore predefinito

text:
>> Come assegnare ad un campo (casella di testo)
>
>Si tratta di un campo di una tabella o di una casella di testo di una
>maschera?
>
> > un valore predefinito uguale a quello di un campo di in altra tabella?
>
>Devi assegnargli un valore predefinito o il valore del campo di una certa
>tabella?
>
>> La query d'origine della maschera contiene tutte e due le tabelle.
>
>Inserisci anche il campo che contiene il valore desiderato nella query che
è
>origine record della maschera, quindi dichiara la tua casella di testo come
>associata a tale campo.
>
>Roberto
>
Cerco di spiegarmi
Nella maschOrdine sono presenti il campo [Pagamento] della
tabClienti ed il campo [PagamentoFornitura] della tabOrdini.
Aprendo la maschera nel campo [Pagamento] trovo già la descrizione del
pagamento (già inserita nella tabClienti) che vorrei far comparire anche nel
campo [PagamentoFornitura], così
se non devo cambiarlo lascio quello già indicato e vado avanti.
Nelle prove per il campo [PagamentoFornitura]  nelle proprietà/valore
predefinito avevo inserito ' =[Pagamento] ' ma non mi ha dato nessun
risultato.
Ho provato anche ad inserire ' =[Clienti]![Pagamento] ' ma mi ha dato errore
' #Nome? '
Scusami ma cosa significa 'dichiara la tua casella di testo come associata a
tale campo' ? E' per caso la procedura di cui sopra?
Saluti
Francok


title: Valore predefinito

text:
"FrancoK" <
Fra...@mclink.it
> ha scritto nel messaggio
news:8rqh8n$d4p$1...@news.mclink.it...
[CUT]
>
> Cerco di spiegarmi
> Nella maschOrdine sono presenti il campo [Pagamento] della
> tabClienti ed il campo [PagamentoFornitura] della tabOrdini.
> Aprendo la maschera nel campo [Pagamento] trovo già la descrizione del
> pagamento (già inserita nella tabClienti) che vorrei far comparire anche
nel
> campo [PagamentoFornitura], così
> se non devo cambiarlo lascio quello già indicato e vado avanti.
> Nelle prove per il campo [PagamentoFornitura]  nelle proprietà/valore
> predefinito avevo inserito ' =[Pagamento] ' ma non mi ha dato nessun
> risultato.
> Ho provato anche ad inserire ' =[Clienti]![Pagamento] ' ma mi ha dato
errore
> ' #Nome? '
>
> Scusami ma cosa significa 'dichiara la tua casella di testo come associata
a
> tale campo' ? E' per caso la procedura di cui sopra?
>
> Saluti
> Francok
>
Ora ho capito un pochino di più il tuo problema (almeno spero).
Hai una query basata su tabClienti e tabOrdini; devo immaginare che queste
due tabelle siano in relazione uno-a-molti tra di loro in base a IdCliente.
Quindi hai creato maschOrdine che ha come origine record la tua query;
allora [Pagamento] non è un campo di tabClienti ma un controllo associato di
maschOrdine, controllo associato al campo [Pagamento] della query e non di
tabClienti. Altrettanto vale per [PagamentoFornitura].
Appurato che non devi portare il contenuto di un campo dentro un altro
campo, bensì il contenuto di un controllo dentro un altro controllo,
affinché Access non ti dia l'errore #Nome? nel valore predefinito devi
scrivere =[Forms]![maschOrdine]![Pagamento].
Se fai così l'errore ti sparisce ma il controllo [PagamentoFornitura]
resterà comunque vuoto, quindi non è utilizzando il valore predefinito che
risolvi il problema.
Se vuoi sapere perché, il motivo è semplice: Access immette il valore
predefinito in [PagamentoFornitura] al momento che compare la maschera vuota
per creare un nuovo ordine; in quel momento però [Pagamento] non contiene
nulla, e nulla Access ti trasferisce in [PagamentoFornitura].
Poiché nel controllo [Pagamento] ti comparirà qualcosa solo dopo che avrai
digitato dentro al controllo IDCliente di maschOrdine il codice del cliente
cui si riferisce l'ordine che stai per inserire, risolverai il tuo problema
generando il seguente codice VBA a fronte dell'evento "Dopo aggiornamento"
del controllo IDCliente:
    Me![PagamentoFornitura] = Me![Pagamento]



title: Valore predefinito

text:
Roberto scusami ancora
ho eseguito alla lettera le tue istruzioni ma inserendo
Me![PagamentoFornitura] = Me![Pagamento] 'dopo aggiornamento'
del controllo IDCliente, nell'aprire la mascOrdini un messaggio
mi avvisa che non trova la macro.
Ho provato anche con
=Me![PagamentoFornitura] = Me![Pagamento]
ma è più o meno la stessa cosa.
Devo forse creare una macro?
Saluti
FrancoK


title: Valore predefinito

text:
"FrancoK" <
Fra...@mclink.it
> ha scritto nel messaggio
news:8rvrpa$a6u$1...@news.mclink.it...

 Per come me la racconti debbo immaginare che tu abbia scritto
"Me![PagamentoFornitura] = Me![Pagamento]" direttamente nella proprietà
"Dopo aggiornamento" del controllo IDCliente; devi invece spostarti con il
mouse sull'estremita destra della riga relativa a tale proprietà sino a
quando non vedrai tre puntini: cliccaci sopra e, tramite le finestre che ti
si apriranno, crea un codice che deve contenere appunto
    Me![PagamentoFornitura] = Me![Pagamento]
--



title: Valore predefinito

author: Roberto

text:
non riesco a far funzionare il valore predefinito che ho trovato sul sito
comune per il contatore. qualcuno può darmi una mano?


title: Valore predefinito

author: sib

text:
Roberto <
ro...@freemail.it
> wrote in message
4uKH5.57508$Nz.15...@news.infostrada.it...
> non riesco a far funzionare il valore predefinito che ho trovato sul sito
> comune per il contatore. qualcuno può darmi una mano?
Ti riferisci alla "Numerazione crescente per fatture e altro"?
Cosa non ti funziona? Dove hai messo la formula?
e soprattutto, di dove sei? (che vorrei verificare una cosa su Infostrada)
Ciao, Sib


title: [OT] Palm - mail di scuse

author: Valerio Valentini

text:
Non se altri condividano con me la passione per i palmari, č dal 1999 che ci
convivo.
A dicembre scorso invio un Palm Vx rotto alla Palm in Inghilterra, Euro
18,00. Mi ritorna e la Palm mi informa che hanno messo l'indirizzo errato
sul sito. Ormai era marzo e rispedisco il palmare in Inghilterra, Euro
18,00. Dopo un pņ di tempo chiamo Palm per avere notizie, mi dicono che non
lo hanno mai ricevuto. Faccio le dovute ricerche tramite le Poste ed ottengo
conferma della consegna alla Palm il 15/3. Invio copia delle spedizioni e
della lettera delle Poste inglesi. Ieri la risposta di Palm:
Gentile Sig. Valentini,
Grazie per aver contattato Palm Store.
Siamo molto spiacenti per il disagio causato e ci scusiamo.
Grazie per la comprensione.
Per ulteriori domande e informazioni la preghiamo di rispondere a questo
messaggio.
Distinti saluti.
Assistenza alla Clientela
Palm Store
Ovviamente niente palmare.
.. e qualcuno si lamenta di Gates.
Ciao Valerio.


title: [OT] Palm - mail di scuse

author: Sergio MAZZA

text:
"Valerio Valentini" <
ijv...@tin.it
> ha scritto nel messaggio news:QPqLc.30453$5D1.1...@news4.tin.it...
> Non se altri condividano con me la passione per i palmari, è dal 1999 che ci
> convivo.
>
> A dicembre scorso invio un Palm Vx rotto alla Palm in Inghilterra, Euro
> 18,00. Mi ritorna e la Palm mi informa che hanno messo l'indirizzo errato
> sul sito. Ormai era marzo e rispedisco il palmare in Inghilterra, Euro
> 18,00. Dopo un pò di tempo chiamo Palm per avere notizie, mi dicono che non
> lo hanno mai ricevuto. Faccio le dovute ricerche tramite le Poste ed ottengo
> conferma della consegna alla Palm il 15/3. Invio copia delle spedizioni e
> della lettera delle Poste inglesi. Ieri la risposta di Palm:
>
> Gentile Sig. Valentini,
>
> Grazie per aver contattato Palm Store.
>
> Siamo molto spiacenti per il disagio causato e ci scusiamo.
>
> Grazie per la comprensione.
>
> Per ulteriori domande e informazioni la preghiamo di rispondere a questo
> messaggio.
>
> Distinti saluti.
>
> Assistenza alla Clientela
>
> Palm Store
>
> Ovviamente niente palmare.
>
> .. e qualcuno si lamenta di Gates.
>
> Ciao Valerio.
>
Quindi sei rimasto con un Palm di nas...
Un bel casin...
Ciao.
--
Sergio MAZZA


title: [OT] Palm - mail di scuse

author: ciroteo

text:
"Sergio MAZZA" <
sergi...@tiscali.it
> ha scritto nel messaggio
news:cdlhft$7c0$1...@canarie.caspur.it...

e questa è bella ...


title: [OT] Palm - mail di scuse

author: Marco Antonioli

text:
"ciroteo" <
cir...@yaoomail.it
> wrote in message
news:cdljhd$6gd$
1...@hulme.interac.it
>
> e questa è bella ...
... della serie l'angolo del buonumore.
Ciao
Marco
--
Posted via Mailgate.ORG Server -
http://www.Mailgate.ORG


title: [OT] Palm - mail di scuse

text:
"Marco Antonioli" <
in...@echovr.it
> ha scritto nel messaggio news:220c3b93f06914a52cd...@mygate.mailgate.org...
> "ciroteo" <
cir...@yaoomail.it
> wrote in message
> news:cdljhd$6gd$
1...@hulme.interac.it
>
> >
> > e questa è bella ...
>
> ... della serie l'angolo del buonumore.
>
> Ciao
> Marco
Io la vedrei meglio nelle "risate a denti stretti" visto il problemino non da poco...
Ciao.
--
Sergio MAZZA


title: [OT] Palm - mail di scuse

text:
"Sergio MAZZA" <
sergi...@tiscali.it
> ha scritto nel messaggio
news:cdluje$b4t$1...@canarie.caspur.it...

Moolto a denti stretti, quasi una smorfia tipo ma vaf... c...
Infatti sto pensando di acquistare un altro Palm ;-)
Ciao Valerio.


title: [OT] Palm - mail di scuse

text:
"Valerio Valentini" <
ijv...@tin.it
> ha scritto nel messaggio news:dSvLc.27616$OR2.1...@news3.tin.it...
>
> Moolto a denti stretti, quasi una smorfia tipo ma vaf... c...
>
> Infatti sto pensando di acquistare un altro Palm ;-)
>
> Ciao Valerio.
Spero di altra marca...
Ciao.
--
Sergio MAZZA


title: [OT] Palm - mail di scuse

text:
"Valerio Valentini" <
ijv...@tin.it
> wrote in message
news:dSvLc.27616$
OR2.1...@news3.tin.it
> Infatti sto pensando di acquistare un altro Palm ;-)
>
> Ciao Valerio.
Senti, visto che sei esperto, qual'è il palm con il display + grande ?



title: [OT] Palm - mail di scuse

text:
"Marco Antonioli" <
in...@echovr.it
> ha scritto nel
messaggio
news:47935101a5f001135c7...@mygate.mailgate.org...
> "Valerio Valentini" <
ijv...@tin.it
> wrote in
message
> news:dSvLc.27616$
OR2.1...@news3.tin.it
>
> > Infatti sto pensando di acquistare un altro
Palm ;-)
> >
> > Ciao Valerio.
>
> Senti, visto che sei esperto, qual'è il palm con
il display + grande ?
> Ciao
> Marco
perchè Palm.
 Puoi trovare telefono, Pocket pc Win 2003 e
fotocamera sotto i 350 euri.
MAssimiliano


title: [OT] Palm - mail di scuse

text:
"MA" <
m...@accessgroup.it
> wrote in message
news:qswLc.3861$
B06...@news.edisontel.com
> perchè Palm.
>  Puoi trovare telefono, Pocket pc Win 2003 e
> fotocamera sotto i 350 euri.
>
> MAssimiliano
Perchè a chi deve girare ad acquisire i dati si incrociano gli occhi.
Il resto sono dettagli.
Grazie
Ciao
MArco (vedi ogni tanto mi scAppa)



title: [OT] Palm - mail di scuse

text:
> > perchč Palm.
> >  Puoi trovare telefono, Pocket pc Win 2003 e
> > fotocamera sotto i 350 euri.
> >
> > MAssimiliano
>
> Perchč a chi deve girare ad acquisire i dati si
incrociano gli occhi.
> Il resto sono dettagli.
> Grazie
> Ciao
> MArco (vedi ogni tanto mi scAppa)
>
Questo che ti dicevo ha un display +o- grande come
il palm e lo  puoi programmare come vuoi
(oltre ad avere Excel, Word, OE, IE, insomma
tutto)
MAssimiliano


title: database modelli

author: femto

text:
ciao NG, sono giorni che cerco di risolvere un insieme di problemi
riguardanti la realizzazione di un db per modelli.
Vi espongo la struttura e il problema.
Ho una tabella chiamata CatalogoModelli in cui sono presenti vari campi tra
cui:
Campo                Tipo
IDModello          Contatore
NomeModello    Testo
Categoria            Numerico
Path                     Collegamento ipertestuale
un'altra chiamata Categoria:
Campo                 Tipo
IDCategoria        Contatore
NomeCategoria  Testo
Queste due sono collegate con un relazione uno-a-molti per il campo
categoria.
Dopo di che ho una maschera,di nome Catalogo, tramite la quale vorrei
inserire i vari dati.
ho realizzato un pulsante che mi chiama una finestra di selezione immagine.
Il problema č che quando cerco di inserire l'immagine mi compare un'errore:
impossible aggiungere o modificare il record.Nella tabella  "Categoria" č
necessario un record correlato.
riporto di seguito il codice del pulsante per attivare la finestra di
selezione file:
Private Sub Image_Click()
  Dim Rst As DAO.Recordset
  Dim Percorso As String
  Percorso = cmdlg_file("*.*")
  If Percorso <> vbNullString Then
       Set Rst = CurrentDb().OpenRecordset("CatalogoModelli")
          Rst.AddNew
          Rst!Path = Dir(Percorso) & "#" & Percorso & "#"
          Rst.Update
          Rst.Close
  End If
End Sub
Per la visualizzazione dell'immagine nella maschera corrente il seguente
codice:
Private Sub Form_Current()
  On Error Resume Next
  '
  'Ottiene la posizione di partenza del Link (che č delimitato da due #)
  PosLink = InStr(Me!Path, "#") + 1
  With Forms!Catalogo
      !Immagine.Height = 1000
      !Immagine.Width = 1000
      !Immagine.Picture = Mid(Me!Path, PosLink, Len(Me!Path) - PosLink)
      .Caption = Mid(Me!Path, PosLink, Len(Me!Path) - PosLink)
  End With
End Sub
Aggiungo inoltre che la scelta della categoria avviene attraverso una
combobox basata su una query che mi permette di selezione la categoria da un
menů a tendina.Aggiungo questo perchč provando a creare un db di prova con
le sole immagini il problema non compare e il campo path viene aggiornato.
Non so piů dove sbattere la testa...aiuto...
Grazie christian


title: database modelli

author: Livio Massa

text:
"femto" <
fem...@hotmail.com
> ha scritto nel messaggio
news:je%t7.99980$P04.8...@news2.tin.it...
> ciao NG, sono giorni che cerco di risolvere un insieme di problemi
> riguardanti la realizzazione di un db per modelli.
...
...
...
Penso che il problema stia nel recordset della tua maschera che non riesce
ad aggiornare la tabella delle categorie.
Il campo della categoria presente nel recordset della maschera deve essere
"Categoria" ovvero quello della tabela "CatalogoModelli" e non "IDCategoria"
altrimenti access tentera' di inserire o variare un record sulla tabella
delle categorie.
Spero di essere riuscito a spiegarmi.
Ciao - Livio


title: database modelli

author: Roberto - Syd

text:
"femto" <
fem...@hotmail.com
> ha scritto nel messaggio
news:je%t7.99980$P04.8...@news2.tin.it...


Questo ti da errore perchč tenti di inserire un record senza impostare un
valore al campo Categoria il valore deve essere uno dei valori presenti
nella tabella Categoria.
Ciao Roberto - Syd


title: Come stampare sui bollettini ICI  ???

author: piecl

text:
Un collega  ha avuto l' incarico di creare una procedura per il calcolo
dell' ici
e che stampi i dati direttamente sui bollettini di conto corrente per il
pagamento
dell' ici.
Qualcuno ha una idea su come creare la sezione per la stampa tramite laser o
inkjet
con linguaggio pcl5 ?


title: Come stampare sui bollettini ICI  ???

author: Roberto dalla campagna

text:
"piecl" <
sp...@email.it
> ha scritto nel messaggio
news:42943878$0$15910$5fc...@news.tiscali.it...

Vai sul Sito Comune (link qui sotto) e vedi se nella Sezione Reports può
esserti utile la FAQ di Ozanam Bonavita intitolata "4.10 Report per la
stampa dei bollettini di C/CP mod. CH8bis".
--
Roberto
-----------------------------------------------------
il Sito Comune di it.comp.appl.access
http://www.sitocomune.com
----------------------------------------------------


title: sintassi per il percorso nella subform

author: Franco dellavalle

text:
ciao a tutti

se nella form ho
SM_Email.Tag = Me.Name

qual'è la sintassi per la subform?

grazie


title: sintassi per il percorso nella subform

author: Bruno Campanini

text:
It happens that Franco dellavalle formulated :

1 - Il Me quando non è funzione può essere sempre omesso:
    Msgbox Name restituisce il Form-Name come Msgbox Me.Name

2 - Form-Name, non ha importanza
    subForm-Name = ABC
    subForm-Control = Costo, quindi:
    Msgbox [ABC].Form![Costo]

3 - Qual'è in italiano non si apostrofa: qual è.

Bruno


title: sintassi per il percorso nella subform

text:

mi è sfuggito
>
> Bruno

grazie Bruno


title: sintassi per il percorso nella subform

text:

e se dalla subform devo leggere name form?
grazie


title: sintassi per il percorso nella subform

text:
Franco dellavalle explained :

Msgbox Parent.Name

Bruno


title: sintassi per il percorso nella subform

text:

ciao Bruno
e nella Form su apertura devo scrivere
Forms!MiaForm.Tag = Name ?


title: sintassi per il percorso nella subform

text:

è qui che faccio l'errore

-->If Parent.Tag > "" Then
     strFrm = Parent.Name

   End If

Come va impostato Tag nella subform?


title: sintassi per il percorso nella subform

text:
Franco dellavalle has brought this to us :

Fino a cinque minuti fa di Tag non conoscevo nemmeno l'esistenza.
Ho consultato l'Help ma proprio non ne ho inteso l'utilità.
Spiacente.

Bruno


title: sintassi per il percorso nella subform

text:

grazie Bruno


title: sintassi per il percorso nella subform

text:

ciao Bruno
nella subfrom ho:

Dim strFrm As String
strFrm = Parent.Name

Select Case strFrm
ecc. ecc.

però se la apro singolarmente senza aprire la form
mi da: riferimento alla proprietà Parent non valido
nell'espresione...
perchè? è ugualmente corretto?


title: sintassi per il percorso nella subform

text:

Metti la gestione ERRORI come dovresti già conoscere da tempo... e se genera l'errore specifico lo gestisci sapendo che NON è una SubForm e che di conseguenza non puoi richiamare Parent...

Altrimenti determina prima se la Form è SubForm o no... e gestisci di conseguenza...

Public Function fIsSubForm(mF As Access.Form) As Boolean
    On Error Resume Next
    Dim varName             As Variant
    varName =
mF.Parent.Name

    fIsSubForm = (Err.Number = 0)
End Function

If fIsSubForm(Me) Then

Else

End if

@Alex


title: sintassi per il percorso nella subform

text:

grazie Alex


title: sintassi per il percorso nella subform

text:
Il giorno lunedì 12 dicembre 2016 02:39:34 UTC+1, Bruno Campanini ha scritto:

ciao Bruno
come faccio a capire quando è funzione e qunado non lo é?


title: sintassi per il percorso nella subform

text:
Franco dellavalle wrote :

Dall'Help:
In Visual Basic, a function procedure performs
a task and then returns control to the calling
code, and it also returns a value.

Esempio:
Supponi di avere in una Form 4 Textbox: Text1, Text2, Text3, Text4.

Per leggerne il contenuto puoi fare:
Msgbox Me![Text1]
Msgbox Me![Text2]
Msgbox Me![Text3]
Msgbox Me![Text4]
qui Me è un Method e lo puoi anche omettere.

Oppure puoi fare:
For i = 1 To 4
    Msgbox Me("Text" & i)
Next
qui Me è una Function e non lo puoi omettere, ovvero
omettendolo non ottieni di ciascuno il Value ma il Name.

Usa l'Help... c'è quasi tutto.
Poi lavora con la tua testa sul codice, perché
la MS svolge gli esempi considerandoci tutti
un branco d'imbecilli, come fanno di solito
i programmatori.

Bruno


title: sintassi per il percorso nella subform

author: Karl Donaubauer

text:
Salve,

Franco dellavalle:
>  Bruno Campanini ha scritto:
>> It happens that Franco dellavalle formulated :
>>>
>>> se nella form ho
>>> SM_Email.Tag = Me.Name
>>>
>>> qual'è la sintassi per la subform?
>>
>> 1 - Il Me quando non è funzione può essere sempre omesso:
>>     Msgbox Name restituisce il Form-Name come Msgbox Me.Name
>>  ...
>>
> come faccio a capire quando è funzione e qunado non lo é?

Me non è mai una funzione.
Invece è una parola chiave che rappresenta l'istanza della classe dove
il codice attuale viene eseguito. Vuol dire che Me prende il posto di un
oggetto. (ca. come descritto qui per VS2008:
https://msdn.microsoft.com/en-us/library/7e58sbke(v=vs.90).aspx
)

Se la puoi ommettere dipende della sintassi usata e delle circostanze,
cioè se usi Me in un contesto univoco o no.

Ha almeno due funzioni:

1) Si usa Me come variabile per non sempre deve esplicitamente scrivere
il riferimento e il nome della classe/del oggetto attuale
(Forms!NomeForm, Report("NomeReport"), NomeClasse.Metodo ecc.).

2) Si usa Me per concretizzare che questo che segue al Me (proprietà,
insieme, oggetto, metodo) si riferisce proprio all'istanza/oggetto
attuale non ad una variabile, costante, parola chiave o un contesto diverso.

Insomma Me spesso non è "necessario" per eseguire il codice ma rende il
codice più robusto (perché evita malintesi) e Me rende il codice molto
più leggibile, soprattutto per gente che deve leggere il codice di altri
programmatori, perché è sempre e subito chiaro cosa è inteso.

Nel mio lavoro spesso devo leggere codice di altri per fare
rielaborazioni ecc. ed è faticoso se il programmatore non ha usato Me
per disambiguire il contesto, come purtroppo lo fanno molti.

Per questo ti consiglio di usare Me dovunque possibile e non mai
risparmiare queste due lettere benedette.

--
Ciao
Karl
*********
Access FAQ:
http://www.donkarl.com/it


title: sintassi per il percorso nella subform

text:

grazie Karl


title: sintassi per il percorso nella subform

text:
Karl Donaubauer used his keyboard to write :

> Me non è mai una funzione.
...
> Ha almeno due funzioni:

Un oggetto che ha almeno due funzioni e non
è una funzione... è un UFO?
...
> Insomma Me spesso non è "necessario" per eseguire il codice ma rende il
> codice più robusto (perché evita malintesi)
Un codice è robusto in dipendenza dalla sua struttura.
Indipendentemente da ciò i malintesi sorgono nella
mente di chi lo deve leggere e comprendere: qui la
variabile è l'intelletto umano.

> e Me rende il codice molto più
> leggibile, soprattutto per gente che deve leggere il codice di altri
> programmatori, perché è sempre e subito chiaro cosa è inteso.
>
> Nel mio lavoro spesso devo leggere codice di altri per fare rielaborazioni
> ecc. ed è faticoso se il programmatore non ha usato Me per disambiguire il
> contesto, come purtroppo lo fanno molti.
Ti stimo troppo Karl per credere a quel che dici.
Access usa di default il Me così come usa di default il
VarType Variant tutte le volte che scrivi Dim ABC.

Tant'è vero che sei obbligato a precisare con
CodeContextObject l'oggetto sul quale deve agire
la procedura se tale oggetto è diverso da Me.

Comunque siamo d'accordo su un punto: il più delle
volte Me non è necessario e in tali circostanze
abbiamo ragione tutt'e due.

Ciao Karl e Buon Natale.

Bruno


title: sintassi per il percorso nella subform

text:

chiedo scusa, ma da form, non riesco a recuperare il SubForm-name
grazie


title: sintassi per il percorso nella subform

text:
...
>
> chiedo scusa, ma da form, non riesco a recuperare il SubForm-name
> grazie

Fai attenzione al CONTAINER rispetto al nome dell'oggetto...

Me!
NomeContainer.Form.Name

@Alex


title: sintassi per il percorso nella subform

text:
Franco dellavalle formulated on Wednesday :

> chiedo scusa, ma da form, non riesco a recuperare il SubForm-name

 Dim i
 For Each i In Controls
    If i.ControlType = acSubform Then
        MsgBox i.Name
    End If
 Next

Bruno


title: sintassi per il percorso nella subform

text:
CUT

ho fatto in questo modo,
però non è bello a vedersi

Dim i
For Each i In Controls
  If i.ControlType = acSubform Then
    If Me.Controls("Cornice1").Value = 1 Then
      Call EtichettaCliente
      Call EmailEtichCliente(i.Name)
      CboCliente.Visible = True
      CboCliente.SetFocus
    ElseIf Me.Controls("Cornice1").Value = 2 Then
      Call EtichettaFornitore
      Call EmailEtichFornitore(i.Name)
      CboFornitore.Visible = True
      CboFornitore.SetFocus
    ElseIf Me.Controls("Cornice1").Value = 3 Then
      Call EtichettaTrasportatore
      Call EmailEtichTrasportatore(i.Name)
      CboTrasportatore.Visible = True
      CboTrasportatore.SetFocus
    Else
      Call EtichettaAg
      Call EmailEtichAg(i.Name)
      CboAg.Visible = True
      CboAg.SetFocus

    End If

  End If

Next

___________
p.e.
Public Sub EmailEtichCliente(strFrm As String)

  Dim strSql As String

  strSql = vbNullString
  strSql = strSql & "SELECT "
  strSql = strSql & "IdEmailCliente As IdEmail, "
  strSql = strSql & "EmailCliente As Email "
  strSql = strSql & "FROM TbEmailClienti "
  Select Case strFrm
    Case Is = "SM_Etichetta"
    strSql = strSql & "WHERE IdCliente = Forms!M_Etichette!CboCliente.Value "
    strSql = strSql & "ORDER BY EmailCliente"
    GoTo Fine

  End Select
  strSql = strSql & "WHERE IdEmailCliente IN(0)"
Fine:
  DBEngine(0)(0).QueryDefs("Qry_EmailEtichetta").SQL = strSql

End Sub


title: sintassi per il percorso nella subform

text:
Il giorno mercoledì 14 dicembre 2016 12:51:49 UTC+1, Franco dellavalle ha scritto:
CUT

è per avere il nome del controllo
p.e. form+id?


title: sintassi per il percorso nella subform

text:
Franco dellavalle wrote on 14-12-16 :

Così hai tagliato un po' troppo... non si capisce a chi tu
stia rispondendo.

Comunque non t'addormentar sul piatto, da questa che ti ho inviato:
 Dim i
 For Each i In Controls
    If i.ControlType = acSubform Then
        MsgBox i.Name
    End If
 Next

desumi quest'altra:
 Dim i
 For Each i In Controls
     MsgBox i.Name
 Next

Bruno


title: Gestionale x impresa impiantistica

author: Zef

text:
ciao a tutti,
stò cercando un software gestionale per impresa impiantistica
(elettrica/idraulica)
possibilmente su base MSDE o Access con database "aperto" (no password)
questo per poter liberamente disporre delle anagrafiche o documenti generati
da utilizzare poi tramite programmini ad hoc creati in Access
(es.: stampe particolareggiate, trend, rubriche, accorpamento doc ...ecc)
qualcuno può aiutarmi?
grazie in anticipo


title: Gestionale x impresa impiantistica

text:
"Zef" <
zefbo...@libero.it
> ha scritto nel messaggio news:46989fb5$0$10621$4faf...@reader2.news.tin.it...
> ciao a tutti,
> stò cercando un software gestionale per impresa impiantistica (elettrica/idraulica)
Prova:
http://www.google.it/search?hl=it&q=software+gestionale+per+impresa+impiantistica&btnG=Cerca+con+Google&meta=
> possibilmente su base MSDE o Access con database "aperto" (no password)
Nel mio quartiere di dice: "E una fetta vicino all'osso, nooo?!?"
> questo per poter liberamente disporre delle anagrafiche o documenti generati
> da utilizzare poi tramite programmini ad hoc creati in Access
> (es.: stampe particolareggiate, trend, rubriche, accorpamento doc ...ecc)
Ovviamente.
> qualcuno può aiutarmi?
Scherzi a parte; ti rendi conto di cosa hai chiesto? Vero?
Di software gestionale gratuiti e aperti ne esistono e sono stati citati in questo NG (cercali con google); ma dovrai adattarli alle
tue esigenze.
L'alternativa è, o incaricare un professionista o iniziare tu a svilupparlo, visto che conosci le problematiche, chiedendo aiuto (se
necessario) in questo ed altri NG.
Vedrai che in poco tempo arriverai al risultato.
> grazie in anticipo
Ciao.
--
Sergio MAZZA


title: segnale esterno

author: lucio munazio planco

text:
Access 97: in una applicazione a un certo punto faccio fare un BEEP al
verificarsi di una certa situazione.

Il beep non basta (ambiente industriale) e mi serve una segnalazione
esterna, o con un altoparlante o con una luce esterna.

Che strumenti mi offre Access? Posso comandare una scheda audio oppure
una scheda con su un rele'?

grazie


title: segnale esterno

text:

ACcess di suo non fa nulla, come qualsiasi altra applicazione.
Per pilotare periferiche hai pochi mezzi, la seriale oppure un driver
della scheda, se espone com interface o le sue api.

@Alex


title: segnale esterno

text:
Il 26/04/2013 18:47, @Alex ha scritto:

> Per pilotare periferiche hai pochi mezzi, la seriale oppure un driver
> della scheda, se espone com interface o le sue api.

mm, lo temevo. Grazie anyway!


title: segnale esterno

author: Silvio

text:
"lucio munazio planco" <planco@XIII_Legio.it> ha scritto nel messaggio
news:klbre0$13m$1...@speranza.aioe.org...

Ciao.

Ma, per "segnalazione esterna con altoparlante" e "comandare una scheda
audio" intendi far eseguire un file audio?
Questo si pu� fare con delle API: ti copio-incollo una funzione (non �
farina del mio sacco). Vedi sotto.
Colleghi alla scheda audio delle casse da autoscontri e spari al volume che
ti pare.

Fammi sapere se ho capito la tua necessit�.

Grazie.

Ciao

Silvio

'******* inizio codice *******
Option Compare Database
Option Explicit

'This code was originally written by Dev Ashish.
'It is not to be altered or distributed,
'except as part of an application.
'You are free to use it in any application,
'provided the copyright notice is left unchanged.

'Code courtesy of
'Dev Ashish

Public Const pcsSYNC = 0      ' wait until sound is finished playing
Public Const pcsASYNC = 1     ' don't wait for finish
Public Const pcsNODEFAULT = 2 ' play no default sound if sound doesn't exist
Public Const pcsLOOP = 8      ' play sound in an infinite loop (until next
apiPlaySound)
Public Const pcsNOSTOP = 16   ' don't interrupt a playing sound

'Sound APIs
Private Declare Function apiPlaySound Lib "Winmm.dll" Alias "sndPlaySoundA"
_
    (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long

'AVI APIs
Private Declare Function apimciSendString Lib "Winmm.dll" Alias
"mciSendStringA" _
    (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, _
    ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long

Private Declare Function apimciGetErrorString Lib "Winmm.dll" _
    Alias "mciGetErrorStringA" (ByVal dwError As Long, _
    ByVal lpstrBuffer As String, ByVal uLength As Long) As Long

Function fPlayStuff(ByVal strFileName As String, _
            Optional intPlayMode As Integer) As Long
'MUST pass a filename _with_ extension
'Supports Wav, AVI, MID type files
Dim lngret As Long
Dim strTemp As String

    Select Case LCase(fGetFileExt(strFileName))
        Case "wav":
            If Not IsMissing(intPlayMode) Then
                lngret = apiPlaySound(strFileName, intPlayMode)
            Else
                MsgBox "Must specify play mode."
                Exit Function
            End If
        Case "avi", "mid":
            strTemp = String$(256, 0)
            lngret = apimciSendString("play " & strFileName, strTemp, 255,
0)
    End Select
    fPlayStuff = lngret
End Function

Function fStopStuff(ByVal strFileName As String)
'Stops a multimedia playback
Dim lngret As Long
Dim strTemp As String
    Select Case LCase(fGetFileExt(strFileName))
        Case "Wav":
            lngret = apiPlaySound(0, pcsASYNC)
        Case "avi", "mid":
            strTemp = String$(256, 0)
            lngret = apimciSendString("stop " & strFileName, strTemp, 255,
0)
    End Select
    fStopStuff = lngret
End Function

Private Function fGetFileExt(ByVal strFullPath As String) As String
Dim intPos As Integer, intLen As Integer
    intLen = Len(strFullPath)
    If intLen Then
        For intPos = intLen To 1 Step -1
            'Find the last \
            If Mid$(strFullPath, intPos, 1) = "." Then
                fGetFileExt = Mid$(strFullPath, intPos + 1)
                Exit Function
            End If
        Next intPos
    End If
End Function

Function fGetError(ByVal lngErrNum As Long) As String
    ' Translate the error code to a string
    Dim lngX As Long
    Dim strErr As String

    strErr = String$(256, 0)
    lngX = apimciGetErrorString(lngErrNum, strErr, 255)
    strErr = left$(strErr, Len(strErr) - 1)
    fGetError = strErr
End Function

Function fatest()
Dim a As Long
    a = fStopStuff("C:\winnt\clock.avi")
End Function

Function WavPlay()
Dim a As Long
    a = fPlayStuff("C:\TuoFile.wav")
End Function

Function WavDone()
Dim a As Long
    a = fPlayStuff("C:\Done.wav")
End Function

'******* fine codice *******


title: segnale esterno

text:
Il 27/04/2013 07:19, Silvio ha scritto:

>> Il beep non basta (ambiente industriale) e mi serve una segnalazione
>> esterna, o con un altoparlante o con una luce esterna.

> Ma, per "segnalazione esterna con altoparlante" e "comandare una scheda
> audio" intendi far eseguire un file audio?

Alla fine in pratica si'. Idealmente servirebbe una sirena e/o una luce
rotante, per avvisare la quadra in sala macchine che arriva un altro
pezzo in lavorazione.

> Colleghi alla scheda audio delle casse da autoscontri e spari al volume che
> ti pare.

:-)

> Function WavPlay()
> Dim a As Long
>      a = fPlayStuff("C:\TuoFile.wav")
> End Function

Il tuo codice ha funzionato perfettamente! grazie mille.

AH, gia' che ci sono: prima del tuo codice mettevo il normale "Beep". Ho
letto l'help, che riporta un esempio in cui fa tre beep con un ciclo for
.. next. Tutto banale tranne che, nonostante il ciclo e l'help, si sente
un beep solo. Come mai?


title: segnale esterno

text:
@Alex explained on 26-04-13 :

> ACcess di suo non fa nulla, come qualsiasi altra applicazione.
> Per pilotare periferiche hai pochi mezzi, la seriale oppure un driver
> della scheda, se espone com interface o le sue api.

E se invece delle API usiamo delle vespe?

Call Shell("C:\VideoLAN\VLC\vlc.exe C:\Fernando.wav")

Bruno


title: segnale esterno

text:

Ma in quel modo serve un'altoparlantone gigante....!!!

Scherzi a parte, se il suo intento è di far sentire la segnalazione in
ambiente industriale(premessa del 3D) questa soluzione è come quella
di silvio, assolutamente inutile.

Il PC dal quale si opera non è nemmeno detto sia in zona di
segnalazione, anzi di solito è proprio il contrario...!

Io lavoro in ambiente industriale, e i segnali li attiviamo con dei
Remote(I/O) disolcati nei posti opportuni, che attivano lampeggiatori
e/o segnalazioni acustiche per le quali servono TROMBE con oltre 120Db
di emissione sonora... altrimenti non si sente nulla.

Gli impianti più efficaci sono i FITRE, che fungono sia da interfoni,
che da allarme acustico,... ma mi dilungo troppo e sono certo che solo
chi è del settore può capire le vere problematiche di cui parlo...!

Per il resto, le vespe sono ottime la 50 special poi ha fatto la
storia.

@Alex


title: segnale esterno

text:
@Alex expressed precisely :

> Ma in quel modo serve un'altoparlantone gigante....!!!
>
> Scherzi a parte, se il suo intento ï¿œ di far sentire la segnalazione in
> ambiente industriale(premessa del 3D) questa soluzione ï¿œ come quella
> di silvio, assolutamente inutile.
>
> Il PC dal quale si opera non ï¿œ nemmeno detto sia in zona di
> segnalazione, anzi di solito ï¿œ proprio il contrario...!
>
> Io lavoro in ambiente industriale, e i segnali li attiviamo con dei
> Remote(I/O) disolcati nei posti opportuni, che attivano lampeggiatori
> e/o segnalazioni acustiche per le quali servono TROMBE con oltre 120Db
> di emissione sonora... altrimenti non si sente nulla.
>
> Gli impianti piï¿œ efficaci sono i FITRE, che fungono sia da interfoni,
> che da allarme acustico,... ma mi dilungo troppo e sono certo che solo
> chi ï¿œ del settore puï¿œ capire le vere problematiche di cui parlo...!

Capisco...

Quel che volevo dire ï¿œ che mi pare molto facile portar fuori da un
computer un segnale audio, che poi per certi usi dovrï¿œ essere
opportunamente amplificato, etc.

Piï¿œ complicato invece portar fuori una tensione continua in modalitï¿œ
ON-OFF in grado di azionare un micro relï¿œ che a sua volta consenta di
eccitare un altro relï¿œ, etc.

Anche perchï¿œ ormai di porte seriali-parallele, nei PC convenzionali, ne
son rimaste poche.
Chissï¿œ se ï¿œ possibile via software interrompere in modalitï¿œ ON-OFF i
5VDC a una porta USB...

Bruno


title: segnale esterno

text:
On 28 Apr, 16:43, Bruno Campanini <
bruno...@libero.it
> wrote:
> @Alex expressed precisely :
>
>
>
>
>
>
>
>
>
> > Ma in quel modo serve un'altoparlantone gigante....!!!
>
> > Scherzi a parte, se il suo intento è di far sentire la segnalazione in
> > ambiente industriale(premessa del 3D) questa soluzione è come quella
> > di silvio, assolutamente inutile.
>
> > Il PC dal quale si opera non è nemmeno detto sia in zona di
> > segnalazione, anzi di solito è proprio il contrario...!
>
> > Io lavoro in ambiente industriale, e i segnali li attiviamo con dei
> > Remote(I/O) disolcati nei posti opportuni, che attivano lampeggiatori
> > e/o segnalazioni acustiche per le quali servono TROMBE con oltre 120Db
> > di emissione sonora... altrimenti non si sente nulla.
>
> > Gli impianti più efficaci sono i FITRE, che fungono sia da interfoni,
> > che da allarme acustico,... ma mi dilungo troppo e sono certo che solo
> > chi è del settore può capire le vere problematiche di cui parlo...!
>
> Capisco...
>
> Quel che volevo dire è che mi pare molto facile portar fuori da un
> computer un segnale audio, che poi per certi usi dovrà essere
> opportunamente amplificato, etc.

Ma dai queste cose vanno bene in ufficio..., dovresti mettere piede in
un'ambiente industriale... non si parla di 10mt di filo da tirare, ma
di qualche centinaio, con costi
di realizzazione e certificazione che sono assurdi, se l'impianto è
destinato alla sicurezza poi ha delle specifiche tecnice ancora più
stringenti.

Non puoi pensare di usare canaline plastiche, si posa in metallico, ed
in alcuni posti in tubazione metallica pesante.
Ci sono dislivelli da superare che magari richiedono PONTEGGI perchè
piattaforme mobili non arrivano, magari la zona è rumorosa e servono
più punti di emissione distanti tra loro...

Insomma, ho buttato li una manciata di sciocchezze, ma non
banalizziamo sempre le cose.

> Più complicato invece portar fuori una tensione continua in modalità
> ON-OFF in grado di azionare un micro relè che a sua volta consenta di
> eccitare un altro relè, etc.

Questo è più semplice... non solo con un PC, ma con un PLC(i MicroPLC)
con il suo driverino collegato in Rete(e la rete è mediamente
distribuita), o USB(in emulazione di seriale) al PC...
Il MicroPLC che ha costi molto bassi.

> Anche perché ormai di porte seriali-parallele, nei PC convenzionali, ne
> son rimaste poche.

Non servono più, esiste la connessione ModBus TCP, o si usa la USB in
emulazione Seriale...

> Chissà se è possibile via software interrompere in modalità ON-OFF i
> 5VDC a una porta USB...

Questa non è scienzzzzaaa come dice Zikikkiiiiki

> Bruno

@Alex


title: segnale esterno

text:
@Alex formulated the question :

[...]
> Non servono piï¿œ, esiste la connessione ModBus TCP, o si usa la USB in
> emulazione Seriale...
Ma sï¿œ, lo so, di USB Relay Controller ed Ethernet Relay Controller se
ne trovano a tonnellate, per tutti i gusti, tutti i prezzi e tutte le
prestazioni.

>> Chissï¿œ se ï¿œ possibile via software interrompere in modalitï¿œ ON-OFF i
>> 5VDC a una porta USB...
>
> Questa non ï¿œ scienzzzzaaa come dice Zikikkiiiiki
Continua a stupirmi il fatto che via software (ï¿œ il sistema operativo
che le controlla) le singole porte USB possano essere considerate
SEMPRE o NON SEMPRE alimentate e che tale alternativa non sia possibile
selezionare con VBA o altro linguaggio.

Bruno


title: segnale esterno

text:
> ...
> AH, gia' che ci sono: prima del tuo codice mettevo il normale "Beep". Ho
> letto l'help, che riporta un esempio in cui fa tre beep con un ciclo for
> .. next. Tutto banale tranne che, nonostante il ciclo e l'help, si sente
> un beep solo. Come mai?

...mah, credo che il sistema lanci i tre beep in maniera talmente
ravvicinata che se ne percepisce uno solo.

Grazie.

Ciao


title: Problema del Sendobject che non funziona

author: Antonio Biso

text:
Riguarda questo problema ho risolto col suggerimento di Karl, che ringrazio.
Il sendobject non funzionava, non partiva l'applicazione di posta
elettronica. Inserendo nel Win.ini la riga MAPIX=1 dopo MAPI=1 nel settore
[Mail], il problema si è risolto.
Certo, mi piacerebbe capire cosa effettivamente ho fatto, e perchè non c'è
bibliografia in merito...
Antonio


author: marcello

text:
"Antonio Biso" <
ch...@etruria.net
> ha scritto nel messaggio
news:6mA08.24648$cU4.8...@twister1.libero.it...

Ho letto il mio win.ini e trovo la riga mapix  dopo mapi1 eppure il problema
di avvio posta continua ad esserci.
Nel mio win.ini ho trovato due sezioni identiche chiamata [mail] e [posta],
deve essere per l'installazione di Office2000 conservando quella di Access97
in altra directory.
Secondo me è nato tutto da qua, sugli altri computer dell'azienda in cui
lavoro fila tutto bene tranna che per uno che ha installato Office2000
conservando access97 (come me)
Ho provato a cambiare in vari modi il win.ini, ma niente!!!!
C'è qualcos'altro .... adesso provo a disinstallare office2000 o a
reinstallare il 97 in forma completa.


text:
Antonio io la riga MAPIX=1 nel Win.ini ce l'ho (da sempre) ma Sendobjet non
funziona lo stesso... mi č accaduto dopo aver spostato il client di posta
elettronica predefinito da Outl.Express ad Outl.97... anche ripristinando la
vecchia impostazione o aggiornando l'Outl. dalla vers. 97 a quella 2000 non
mi funziona.
Mistero della fede.
Antonio Biso <
ch...@etruria.net
> wrote in message
6mA08.24648$cU4.8...@twister1.libero.it...
> Riguarda questo problema ho risolto col suggerimento di Karl, che
ringrazio.
> Il sendobject non funzionava, non partiva l'applicazione di posta
> elettronica. Inserendo nel Win.ini la riga MAPIX=1 dopo MAPI=1 nel settore
> [Mail], il problema si č risolto.
> Certo, mi piacerebbe capire cosa effettivamente ho fatto, e perchč non c'č
> bibliografia in merito...
>
> Antonio
>
>


text:
Maurizio75 <
maurizio...@gevi.it
> wrote in message
H2B08.24802$cU4.8...@twister1.libero.it...
> Antonio io la riga MAPIX=1 nel Win.ini ce l'ho (da sempre) ma Sendobjet
non
> funziona lo stesso... mi č accaduto dopo aver spostato il client di posta
> elettronica predefinito da Outl.Express ad Outl.97... anche ripristinando
la
> vecchia impostazione o aggiornando l'Outl. dalla vers. 97 a quella 2000
non
> mi funziona.
> Mistero della fede.
Prova a scriverci allora
mapidll=C.\windows\system\mapivim.dll
Antonio


text:
Antonio... niente da fare... provata anche questa, ma la sessione della
posta elettronica da access risulta sempre impossibile da aprire.
Ho provato anche a disinstallare sia l'Outl.2000 che il 97 con risultati cmq
negativi.
Se hai novità in merito ti sarei grato se mi facessi sapere.
Antonio Biso <
ch...@etruria.net
> wrote in message
1HB08.24989$cU4.8...@twister1.libero.it...
> Maurizio75 <
maurizio...@gevi.it
> wrote in message
> H2B08.24802$cU4.8...@twister1.libero.it...
> > Antonio io la riga MAPIX=1 nel Win.ini ce l'ho (da sempre) ma Sendobjet
> non
> > funziona lo stesso... mi è accaduto dopo aver spostato il client di



author: Carlo Costarella

text:
"Antonio Biso" <
ch...@etruria.net
> ha scritto nel messaggio
news:6mA08.24648$cU4.8...@twister1.libero.it...

controlla queste voci:
[Mail]
MAPI=1
MAPIX=1
OLEMessaging=1
CMC=1
CMCDLLNAME=mapi.dll
CMCDLLNAME32=MAPI32.DLL
MAPIXVER=1.0.0.1
[Posta]
CMC=1
CMCDLLNAME32=mapi32.dll
CMCDLLNAME=mapi.dll
MAPI=1
MAPIX=1
MAPIXVER=1.0.0.1
OLEMessaging=1
In pratica sia la versione italiana che quella inglese della posta.
Controlla che le due dll siano presenti e che i primi numeri della versione
della 32 corrispondono.
Ciao, Carlo


text:
marcello ha scritto:
> Ho letto il mio win.ini e trovo la riga mapix  dopo mapi1 eppure il
problema
> di avvio posta continua ad esserci.
> Nel mio win.ini ho trovato due sezioni identiche chiamata [mail] e
[posta],
> deve essere per l'installazione di Office2000 conservando quella di
Access97
> in altra directory.
> Secondo me è nato tutto da qua, sugli altri computer dell'azienda in cui
> lavoro fila tutto bene tranna che per uno che ha installato Office2000
> conservando access97 (come me)
> Ho provato a cambiare in vari modi il win.ini, ma niente!!!!
> C'è qualcos'altro .... adesso provo a disinstallare office2000 o a
> reinstallare il 97 in forma completa.
Quale messaggio di errore viene?
Con la combinazione di A97+A00 puo anche essere un problema
di registry:
http://support.microsoft.com/default.aspx?scid=kb;US;q283173
Ce scritto nel articolo che solo capita se A97 viene installato dopo A00.
Ma un collegha mi ha scritto che una volta ha l'avuto con il contrario.
--
HTH
Karl
*********
Access-FAQ (tedesco):
http://www.donkarl.com


text:
"Karl Donaubauer" <
ad...@donkarl.com
> ha scritto nel messaggio
news:a1vsc9$td6ka$2...@ID-46617.news.dfncis.de...

Karl sei sempre il migliore.
Grazie del prezioso consiglio
Seguendo le istruzioni dell'articolo della microsoft, cioè quelle di
cancellare dal registro la chiave:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\8.0\Common\MapiDLL
adesso il sendobject mi funziona perfettamente.


text:
Carlo Costarella <
carloco...@libero.it
> wrote in message
ZfF08.25642$aD.9...@twister2.libero.it...
>
> "Antonio Biso" <
ch...@etruria.net
> ha scritto nel messaggio
> news:6mA08.24648$cU4.8...@twister1.libero.it...
> > Riguarda questo problema ho risolto col suggerimento di Karl, che
> ringrazio.
> > Il sendobject non funzionava, non partiva l'applicazione di posta
> > elettronica. Inserendo nel Win.ini la riga MAPIX=1 dopo MAPI=1 nel
settore
> > [Mail], il problema si č risolto.
> > Certo, mi piacerebbe capire cosa effettivamente ho fatto, e perchč non
c'č
> > bibliografia in merito...
> >
> > Antonio
> >
> >
>
> controlla queste voci:
>
> [Mail]
> MAPI=1
> MAPIX=1
> OLEMessaging=1
> CMC=1
> CMCDLLNAME=mapi.dll
> CMCDLLNAME32=MAPI32.DLL
> MAPIXVER=1.0.0.1
>
> [Posta]
> CMC=1
> CMCDLLNAME32=mapi32.dll
> CMCDLLNAME=mapi.dll
> MAPI=1
> MAPIX=1
> MAPIXVER=1.0.0.1
> OLEMessaging=1
>
> In pratica sia la versione italiana che quella inglese della posta.
> Controlla che le due dll siano presenti e che i primi numeri della
versione
> della 32 corrispondono.
Aspetta Carlo. Il fatto č che ora il problema si č risolto. Io vorrei sapere
perchč con mapi=1 non funziona e con mapix=1 invece sě. Che tipo di settaggi
si eseguono in questo modo? E perchč non viene pubblicizzato questo tipo di
problema che sembra abbastanza diffuso?
Antonio


title: gestione chiamate in arrivo

author: gabriele

text:
Salve a tutti,
volevo implementare in un programma di gestione aziendale una procedura che
mi permettesse di rilevare le chiamate in entrata da modem ISDN e
visualizzare
il numero del chiamante in modo poi da collegarlo alla tabella dei clienti
fornitori
visualizzandone il nome.
C'è qualcuno che ha gia' risolto in qualche modo il problema magari tramite
qualche
ActiveX o direttamente tramite codice?


title: Tipi di dati (+ di 64000 caratteri)

text:
Memo arriva fino a 64000 caratteri.
Dovendo usare access per memorizzare il contenuto di un web form, è
possibile che siano necessari + di 64000 caratteri.
Si può estendere memo?
Oppure cosa si può usare?
Grazie, Paolo


title: Tipi di dati (+ di 64000 caratteri)

author: Emyr

text:
On Fri, 14 Mar 2003 09:01:54 GMT, "S_p_ike" <
s_p...@hotmail.com
>
wrote:

un oggetto esterno tipo un file txt esterno
Saluti.
Emanuele.


title: Tipi di dati (+ di 64000 caratteri)

author: Sib

text:
"S_p_ike" <
s_p...@hotmail.com
> ha scritto nel messaggio
> Memo arriva fino a 64000 caratteri.
> Dovendo usare access per memorizzare il contenuto di un web form, č
> possibile che siano necessari + di 64000 caratteri.
Dall'help in linea:----------------------------
Utilizzare il tipo di dati Memo se č necessario memorizzare piů di 255
caratteri. Un campo Memo puň memorizzare un massimo di 65.536 caratteri. Se
si desidera memorizzare testo formattato o documenti lunghi, č necessario
creare un campo Oggetto OLE e non un campo Memo
---------------------------------------------
Sib


title: password

author: Massimo

text:
Volevo chiedere un aiuto in merito ad un DB protetto da password.
E' possibile far si che durante il collegamento di un DB, ci sia una routine
che capisca se il DB č protetto da Password o no?
Es. cretino ma che faccia capire il mio problema
If DBpippo.psw=true then
fai cosě
else
fai questo
end if
Saluti a tutti e buon Ferragosto.
Max


title: password

text:
>E' possibile far si che durante il collegamento di un DB, ci sia una
routine
>che capisca se il DB č protetto da Password o no?
Ciao, non so rispondere alla tua domanda, ma ti do una risposta stupida:
Visto che la PASSW la devi sapere altrimenti nn accedi se durante la
connessione ";DATABASE=tuodb.mdb ;PWD=Password" in ogni caso non
da errore.
Se invece vuoi eseguire un tipo di LOGIN io lo realizzo da codice e verifico
utente e PWD.
Non so se ti ho confuso le idee.
Ciao ALex.
>--------------------------------------------------------------------------<
Alessandro B.
E-Mail        ----->
ik2...@libero.it
Sito web    ----->
http://digilander.iol.it/ik2zok/
>--------------------------------------------------------------------------<
--
Posted from [212.141.54.102]
via Mailgate.ORG Server -
http://www.Mailgate.ORG


title: Riferimento a campo db su form, da codice su modulo generico

author: RobertoA

text:
Form continua Articoli, che visualizza righe di dati da tabella db via odbc
Tra i vari campi di ogni riga ci sono Campo1, Campo2, Campo3, Campo4
Sulla form c'e' un command button 'INSERISCI' , destinato
all'inserimento nuove righe, il cui codice e'
--------------------------------------------------
DoCmd.GoToRecord , , acNewRec
dummy = testata_record(Me.Form)
Me!Campo1= 12345
Me!Campo2= "Test"
Me.dirty=false
--------------------------------------------------

Su altro modulo di codice e' presente la funzione

--------------------------------------------------
Function testata_record(ByVal NOME_FORM As Form)
NOME_FORM!Campo3= "peppe"
NOME_FORM!Campo4= "ostrega"
end function
--------------------------------------------------

Quando premo il command button INSERISCI mi attenderei di trovare i
quattro campi presenti nel db
Ma non e' cosi', nel senso che Campo3 e Campo4 NON vengono valorizzati
Come fare per valorizzare Campo3 e Campo4 da codice esterno alla form?


text:
Hai salvato...?
Perche metro dirty=false...?

Se non salvi sarebbe meglio usare Defaultvalue altrimenti salva.

@Alex


text:

E' il  dirty=false  che salva
Ed infatti Campo1 e Campo2 li tiene
Il problema e' che dal codice funzione presente nel modulo, non riesco a
'raggiungere' i campi Campo3 e Campo4 (nomi dei campi nel db) presenti
nella form
Ed il successivo dirty=false salva, ma solo i due campi valorizzati con
codice nella form


text:
...
> E' il  dirty=false  che salva
> Ed infatti Campo1 e Campo2 li tiene
> Il problema e' che dal codice funzione presente nel modulo, non riesco a
> 'raggiungere' i campi Campo3 e Campo4 (nomi dei campi nel db) presenti
> nella form
> Ed il successivo dirty=false salva, ma solo i due campi valorizzati con
> codice nella form

Sei sicuro che il DIRTY salva...?
Oppure semplicemente un giro contorto che annulla la TRANSAZIONE di inserimento... come eseguita, e forza il COMMIT..?
Hai provato a vedere cosa succede se su BeforeInsert fai un ME.UNDO ed un CANCEL=TRUE...?
Se non riesci ad annullare l'inserimento è la dimostrazione di quanto dicevo, ed anche che la procedure non è tecnicamente corretta, magari mi sbaglio...

Certo mi chiedo perchè non usi semplicemente un
DoCmd.RunCommand acCmdSaveRecord
che invece passa per tutti gli eventi in modo corretto.

Parli di non riuscire a raggiungere il Campo3 e Campo4 quali Campi del DB... questa cosa mi lascia perplesso.
Puoi raggiungere i CONTROLLI dell'Oggetto Form, per raggiungere i CAMPI devi accedere alla proprietà RECORDSET.FIELDS(NomeCampo).Value.

Non capisco di cosa stai parlando...

@Alex


text:

Il problema da risolvere e' avere una funzione generica chiamiamola
dati_testata(), usabile in tutto il codice, che possa valorizzare alcuni
campi db ad ogni inserimento o modifica record, i classici: utente,
data, ora, ...

Per ogni form (form continue) vorrei mantenere la possibilita' di
inserire una nuova riga sia premendo in tasto INS_RIGA sia andando a
digitare direttamente sull'ultima riga del corpo, la riga bianca

Per fare questo, nell'evento BeforeInsert della form ci metto il codice per:
- aggiungere un nuovo record
- valorizzare i campi essenziali
- richiamare routine dati_testata()
------------------------------------
DoCmd.GoToRecord , , acNewRec
Me!ID_ARTICOLI = nuovo_id()
dummy = dati_testata_record_da_form(Me.Form, "INS")
------------------------------------

Poi per ottenere l'inserimento riga anche da tasto INS_RIGA nel codice
suo evento click ci metto il richiamo del codice dentro BeforeInsert
------------------------------------
Form_BeforeInsert False
DoCmd.RunCommand acCmdSaveRecord
------------------------------------

Quello che non quadra e' la routine dati_testata() che riceve come
parametri la form di partenza e un flag per aggiornare o inserire
------------------------------------
Function test_record(ByVal NOME_FORM As Form, byval agg_ins as string)
NOME_FORM.Recordset.Fields("utente").Value= "peppe"
NOME_FORM.Recordset.Fields("data").Value= "10/01/2020"
end function
------------------------------------

I campi che la funzione testata_record dovrebbe aggiornare non vengono
aggiornati, ma alla prima istruzione della funzione, viene restituito un
errore 3020 come stessi tentando di scrivere senza un AddNew/Edit, che
pero' e' stato impartito poco prima (DoCmd.GoToRecord , , acNewRec)

Quindi o c'e' un errore oppure c'e' uno sbaglio, una delle tre


title: Da dove inizio?

text:
Ciao a tutti
mi dite da dove devo iniziare per creare una routine che copi il db corrente
su un disco zip?
Grazie
Ilario


title: Da dove inizio?

text:
"C.I.T." <
liviaeila...@libero.it
> ha scritto nel messaggio
> Ciao a tutti
> mi dite da dove devo iniziare per creare una routine che copi il db
corrente
> su un disco zip?
Dal sito comune:
http://www.sitocomune.com
Sib


title: Da dove inizio?

author: Franchi Flavio Srl

text:
"C.I.T." <
liviaeila...@libero.it
> ha scritto nel messaggio
news:HExha.61854$Lr4.1...@twister2.libero.it...

On Error GoTo err_Salva
  Dim retVal As Variant, strCmd As String, ZipName As String, Prog As
String, Risposta
  Risposta = InputBox("Imposta il Valore 1=D:\Dati 2=D:\Tutto 3=E:\Dati
4=E:\Tutto", "A", 3)
  If Risposta = "" Or Risposta > 4 Then Exit Sub
  strCmd = "D:\F2DATI\": Prog = "c:\programmi\winzip"
  If Risposta = 3 Or Risposta = 4 Then strCmd = "E:\F2DATI\": Prog =
"d:\programmi\winzip"
  ZipName = " d:\f2-gest\F2D?-XX.mdb"
  If Risposta = 2 Or Risposta = 4 Then ZipName = " d:\f2-gest\*.mdb"
  strCmd = strCmd + Format(Date, "ddmmyyyy") & ".zip"
  strCmd = Prog + "\winzip32.exe -a -ex " + strCmd + ZipName
  retVal = Shell(strCmd, vbHide)
exit_err_Salva:
  Exit Sub
err_Salva:
  MsgBox Error$
  'Resume exit_err_salva
  Resume Next


title: Da dove inizio?

text:
"C.I.T." <
liviaeila...@libero.it
> ha scritto nel messaggio
news:HExha.61854$Lr4.1...@twister2.libero.it...
Dal titolo, che deve essere significativo del problema!!!
Antonio


title: Vba non rilascia servizio Excel

author: Winston Smith

text:
Salve a tutti,
stò esportando una query verso un file execl, dopodiche
tramite il seguente codice formatto il foglio:

Dim ex          As Excel.Application
Dim wb          As Excel.Workbook
Dim ws          As Excel.Worksheet

'apre excel
Set ex = New Excel.Application

'apre il file xls
Set wb = ex.Workbooks.Open("C:\Pippo.xlsx")

'seleziona il foglio 1
Set ws = wb.Worksheets(1)

'CONTO LE COLONNE
Dim LastCol As Integer
With ws
  LastCol = .Cells(1, .Columns.Count).End(xlToLeft).Column
End With

'CONTO LE RIGHE
Dim LastRig As Integer
With ws
   LastRig = .Cells(.Rows.Count, 1).End(xlUp).Row
End With

'CAMBIO LE INTESTAZIONI
Dim strValore As String
i = 0
For i = 1 To LastCol
   strValore = ws.Cells(1, i).Value
   strNewval = DecodificaCampo(strValore)
   ws.Cells(1, i).Value = strNewval
Next i

CAMBIO FONT E DIMENSIONE CARATTERE
ws.Range(Cells(1, 1), Cells(LastRig, LastCol)).Font.Name = "PComm Session"
ws.Range(Cells(1, 1), Cells(LastRig, LastCol)).Font.Size = 8
ws.Range(Cells(1, 1), Cells(1, LastCol)).Font.Bold = True
ws.Range(Cells(1, 1), Cells(1, LastCol)).Font.Italic = True

wb.Sheets(1).Name = NomeFoglio

'ADATTO LE COLONNE AL TESTO
wb.ActiveSheet.Cells.EntireColumn.AutoFit

'CHIUDO IL FILE E LE ISTANZE

wb.Close True

'esce da excel
ex.Quit

'cancella variabili oggetto
Set ws = Nothing
Set wb = Nothing
Set ex = Nothing

Il problema è che nonostante chiuda il file e le relative istanze
da Gestione Attività trovo sempre aperto il servizio di Excel,
che ovvimente mi manda in errore se eseguo un'altra volta la suddetta
Funzione, aprendo un'altro servizio Excel per ogni volta che provo ad
eseguire il codice.

Francamente non riesco a capire come mai non chiude il servizio.

Ho provato a cercare e sembra che motli hanno avuto questo problema
ma soluzione nessuna.

Dove stò sbagliando?

--
O no ?

WS


title: Vba non rilascia servizio Excel

text:

i casi possibili sono tre :
1)
o hai aperta una sessione excel indipendentemente dalla tua
applicazione

2)
o senza rendertene conto apri un excel da qualche altra parte
dell' applicazione e poi non la chiudi

3)
oppure la tua macchina è posseduta :-)


title: Vba non rilascia servizio Excel

text:
Salve,

Winston Smith:
> ...
>
> wb.Close True
>
> 'esce da excel
> ex.Quit

> ...trovo sempre aperto il servizio di Excel ...

Siccome non salvi la causa potrebb'essere il dialogo di confermazione
aperto. Invece del wb.Close prova con:

wb.Save
'e poi
ex.Quit

--
Ciao
Karl
*********
Access FAQ:
http://www.donkarl.com/it


title: Vba non rilascia servizio Excel

text:
Dopo dura riflessione,
radica...@gmail.com
 ha scritto :

No sono sicuro di non avere nessun foglio excel aperto.

L'unico comando che utilizzo prima della funzione è il seguente
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, NomeQuery, DirCorrente & "\" & NomeFile & ".xlsx"

Ma il problema lo avevo anche quando bypassavo la suddetta funzione

Ho paura che sia la 3 8-o

Boh, non riesco a capire



title: Vba non rilascia servizio Excel

text:
Il giorno giovedì 17 novembre 2016 12:34:24 UTC+1, Karl Donaubauer ha scritto:
> Salve,
>
> Winston Smith:
> > ...
> >
> > wb.Close True
> >
> > 'esce da excel
> > ex.Quit
>
> > ...trovo sempre aperto il servizio di Excel ...
>
> Siccome non salvi la causa potrebb'essere il dialogo di confermazione
> aperto. Invece del wb.Close prova con:
>
> wb.Save
> 'e poi
> ex.Quit

Ma se fai

wb.close true

il sistema salva e chiude


title: Vba non rilascia servizio Excel

text:

Mah
Prova a fare come dice Karl (non si sa mai) e facci sapere

> Ho paura che sia la 3 8-o

che cosa è la 3 8-o ?


title: Vba non rilascia servizio Excel

text:
Winston Smith wrote on 17-11-16 :

Intanto stai sbagliando con stò...

Se crei un range in Excel da Access poi con le buone
maniere, a mia esperienza, non ci esci più!
Poni un REM davanti alle quattro istruzioni ws.Range(...
e vedrai che tutto funziona regolarmente.
Poi con un ciclo For... Next di Cells puoi andare
a cambiare i caratteri.
Se poi le righe e/o colonne sono tante...

Bruno


title: Vba non rilascia servizio Excel

text:
Dopo dura riflessione, Bruno Campanini ha scritto :

Funziona, grazie !
In effetti il problema era proprio li.
Adesso anche se molto, ma molto piu lento sembra funzionare.

Ho sostituito i ws.range con questo ciclo

i = 0
    For i = 1 To LastRig
        z = 0
        For z = 1 To LastCol
            With ws
                .Cells(i, z).Font.Name = "PComm Session"
                .Cells(i, z).Font.Size = 8
            End With
        Next z
    Next i

Mi sai eventualmente consigliare un ciclo più performante, perchè
questo è molto lento, e parlo di una matrice di 11 colonne per 100
righe

E poi serei curioso di capire dove è il problema con i range



title: Vba non rilascia servizio Excel

text:

cavolo
questa proprio non la sapevo.


title: Vba non rilascia servizio Excel

text:
Il giorno giovedì 17 novembre 2016 18:40:17 UTC+1, Winston Smith ha scritto:

> Mi sai eventualmente consigliare un ciclo più performante, perchè
> questo è molto lento, e parlo di una matrice di 11 colonne per 100
> righe

prova a fare cosi (intuizione) :

dim R as new range
set R = <range che ti serve>
poi usa R. solo R

e non usare l' active sheet : indirizza tutto in variabili oggetto

poi fai

wb.save
wb.close
doevents
ex.quit
doevents

poi metti a nothing tutte le variabili range e quelle oggetto.
Scommetti che funziona ?


title: Vba non rilascia servizio Excel

text:
Nel suo scritto precedente,
radica...@gmail.com
 ha sostenuto :

Dim Ran As New Range
Set Ran = ws.Range(Cells(1, 1), Cells(LastRig, LastCol))

Ran.Font.Name
 = "PComm Session"
   Ran.Font.Size = 8
Set Ran = Nothing

Ho sostituito con questa ma non mi riconosce Range come
oggetto e mi da errore.

Questi sono i riferimenti del progetto

Visual Basic for Applications
Microsoft Access 16.0 Object library
Microsoft Excel 16.0 Object Library
Microsoft Office 16.0 Access Database engine object
OLE Automation

può dipendere dal fatto che manca qualcosa qui?



title: Vba non rilascia servizio Excel

text:

Perchè usi il NEW...?

Devi comprendere la differenza tra definire una VARIABILE e creare un'istanza di un OGGETTO.
In questo caso non stai creando un istanza, ma definendo una VARIABILE di Typo RANGE che verrà assegnata nella riga successiva... quindi è un errore.

Dim Ran As Range

Altrimenti prova a definirlo Object, e vedi se l'errore persiste... poi valuta il LATEBINDING.

@Alex


title: Vba non rilascia servizio Excel

text:

Solo perchè ho scritto di fretta :-)

> Devi comprendere la differenza tra definire una VARIABILE e creare
> un'istanza di un OGGETTO.

Si, la conosco questa differenza. Pero a ripassarla fa sempre bene.

> In questo caso non stai creando un istanza, ma definendo una VARIABILE
> di Typo RANGE che verrà assegnata nella riga successiva... quindi è
> un errore.
>
> Dim Ran As Range
>
> Altrimenti prova a definirlo Object, e vedi se l'errore persiste...
> poi valuta il LATEBINDING.

Giustissimo, per carita.


title: Vba non rilascia servizio Excel

text:

vedi ultimo intervento di @Alex


title: Vba non rilascia servizio Excel

text:

e (secondo me) e' meglio se fai
dim R as excel.range


title: Vba non rilascia servizio Excel

text:
....
>
> e (secondo me) e' meglio se fai
> dim R as excel.range

Sei sicuro...? (che range sia esposto come mebro di Excel in questo modo...)

Secondo me è meglio il LATEBINDING:

Dim R as Object

@Alex


title: Vba non rilascia servizio Excel

text:

Grazie per le correzioni.
Variato il codice e provato con le varie soluzioni proposte, ma
purtroppo mi si ripresenta il problema iniziale, funziona tutto al
primo giro ma poi mi va in errore perchè rimane il servizio di Excel
aperto. 8-o
Evidentemente l'uso dei range incasina excel.

Proverò a documentarmi sul LATEBINDING che non conosco.

Se ci sono altre idee benvengano, vado avanti con altre prove
altrimenti userò il ciclo for..next che per il momento è l'unico che
funziona.

Se riesco a risolvere vi farò sapere.
Grazie ancora.



title: Vba non rilascia servizio Excel

text:
Il giorno venerdì 18 novembre 2016 14:31:54 UTC+1, @Alex ha scritto:
> ....
> >
> > e (secondo me) e' meglio se fai
> > dim R as excel.range
>
> Sei sicuro...? (che range sia esposto come mebro di Excel in questo modo...)

si, fatto tante volte ...

> Secondo me è meglio il LATEBINDING:
> Dim R as Object

perchè ? Spiegami


title: Vba non rilascia servizio Excel

text:
Winston Smith ha usato la sua tastiera per scrivere :
> Salve a tutti,
> stò esportando una query verso un file execl, dopodiche
> tramite il seguente codice formatto il foglio:
>
----CUT-----
>
> CAMBIO FONT E DIMENSIONE CARATTERE
> ws.Range(Cells(1, 1), Cells(LastRig, LastCol)).Font.Name = "PComm Session"
> ws.Range(Cells(1, 1), Cells(LastRig, LastCol)).Font.Size = 8
> ws.Range(Cells(1, 1), Cells(1, LastCol)).Font.Bold = True
> ws.Range(Cells(1, 1), Cells(1, LastCol)).Font.Italic = True
>
---CUT-----
>
Allora...facendo svariate prove mi è venuto fuori che il problema
sta nell'uso di Cells con Range.

Se sostituisco il codice sopra con

ws.Range("A1", "M77").Font.Name = "PComm Session"
ws.Range("A1", "M77").Font.Size = 8
ws.Range("A1", "M1").Font.Bold = True
ws.Range("A1", "M1").Font.Italic = True

tutto fila liscio.
Per le mie conoscenze è un gran mistero.
A questo punto però vi chiederei un'altra cosa, con il formato
A1:A1 come posso reperire i limiti della matrice del foglio excel?



title: Vba non rilascia servizio Excel

text:
Il giorno venerdì 18 novembre 2016 16:41:51 UTC+1, Winston Smith ha scritto:
> Winston Smith ha usato la sua tastiera per scrivere :
> > Salve a tutti,
> > stò esportando una query verso un file execl, dopodiche
> > tramite il seguente codice formatto il foglio:
> >
> ----CUT-----
> >
> > CAMBIO FONT E DIMENSIONE CARATTERE
> > ws.Range(Cells(1, 1), Cells(LastRig, LastCol)).Font.Name = "PComm Session"
> > ws.Range(Cells(1, 1), Cells(LastRig, LastCol)).Font.Size = 8
> > ws.Range(Cells(1, 1), Cells(1, LastCol)).Font.Bold = True
> > ws.Range(Cells(1, 1), Cells(1, LastCol)).Font.Italic = True
> >
> ---CUT-----
> >
> Allora...facendo svariate prove mi è venuto fuori che il problema
> sta nell'uso di Cells con Range.
>
> Se sostituisco il codice sopra con
>
>
> ws.Range("A1", "M77").Font.Name = "PComm Session"
> ws.Range("A1", "M77").Font.Size = 8
> ws.Range("A1", "M1").Font.Bold = True
> ws.Range("A1", "M1").Font.Italic = True
>
> tutto fila liscio.

argh Ma davvero ?

> Per le mie conoscenze è un gran mistero.

pure per le mie :-)

> A questo punto però vi chiederei un'altra cosa, con il formato
> A1:A1 come posso reperire i limiti della matrice del foglio excel?

Oddio oddio ... lo sapevo ma non mi ricordo ...


title: Vba non rilascia servizio Excel

text:
Il giorno venerdì 18 novembre 2016 16:41:51 UTC+1, Winston Smith ha scritto:

> A questo punto però vi chiederei un'altra cosa, con il formato
> A1:A1 come posso reperire i limiti della matrice del foglio excel?

Ecco :
http://stackoverflow.com/questions/6262743/convert-cells1-1-into-a1-and-vice-versa

devi usare il metodo address

Cells(1, 1).Address(RowAbsolute:=False, ColumnAbsolute:=False)
restituisce  A1.


title: Vba non rilascia servizio Excel

text:
Mah... LateBinding e EarlyBinding sono la base dell'uso di componenti COM o Automazione... trovi un sacco di 3D su questo tema.

@ALEX


title: Vba non rilascia servizio Excel

text:
Il giorno venerdì 18 novembre 2016 19:15:21 UTC+1, @Alex ha scritto:

> Mah... LateBinding e EarlyBinding sono la base dell'uso di
> componenti COM o Automazione... trovi un sacco di 3D su questo tema.

Ma io conosco la differenza tra i due concetti. Ti chiedevo perchè
pensi che il late binding sia migliore ed in particolare perchè in
questo caso. E' diverso.


title: Vba non rilascia servizio Excel

text:

In questo caso specifico non lo so, ma il LATEBINDING è utilissimo per svicolare l'applicazione da ciò che hai installato sul pc. Tu sviluppi con excel 2016 (x esempio), l'utente ha un'altra versione. L'applicazione va subito in crash xchè non trova i riferimenti alle librerie corrette. Se usi LATE tu specifiche solo che userai excel, qualunque versione ci sia installata. E' meno vincolante e ti risolve un mare di problemi quando distribuisci il tuo programma (visto che non sai mai cosa l'utente ha installato). Li risolve soprattutto nel tempo, altrimenti devi riscrivere codice o cmq toccare i riferimenti ogni volta che aggiorni Office, e ciò non è bene :)


title: Vba non rilascia servizio Excel

text:
radica...@gmail.com
 ha usato la sua tastiera per scrivere :

funziona grazie.
E però importante specificare l'oggetto

ws.Cells(1, 1).Address(RowAbsolute:=False, ColumnAbsolute:=False

altrimenti si genera lo stesso errore di mancata chiusura del
servizio, e alla seconda esecuzione va in errore.
La spiegazione del problema,  l'ho trovata qui
https://support.microsoft.com/it-it/kb/178510




title: Vba non rilascia servizio Excel

text:

uh

La per la mi tornava tutto, ma poi a pensarci bene quando fai l'early
binding non ti riferisci a particolari versioni di excel, o di word o
...

Es :
Dim x as excel.application, qualunque sia la versione dell' excel.


title: Vba non rilascia servizio Excel

text:

Ma nei riferimenti si.....


title: Vba non rilascia servizio Excel

text:
Winston Smith has brought this to us :

> funziona grazie.
> E però importante specificare l'oggetto
>
> ws.Cells(1, 1).Address(RowAbsolute:=False, ColumnAbsolute:=False
>
> altrimenti si genera lo stesso errore di mancata chiusura del
> servizio, e alla seconda esecuzione va in errore.
> La spiegazione del problema,  l'ho trovata qui
>
https://support.microsoft.com/it-it/kb/178510

Ottima ricerca e ottimo ritrovamento, certamente di buona
utilità, anche se il workaround mi sembra un po'... infantile con
quell'uso di Cells() e la rinuncia ad avvalersi appieno dell'uso
di Range, il quale Range è il cuore della programmazione VBA di Excel.

Premesso questo:
    StartCell = "A1"
    xlFileName = "D:\Pippo.xlsm"
    Set xlWorkbook = xlApp.Workbooks.Open(xlFileName)
    Set xlSheet = xlWorkbook.Worksheets(1)

ciò che segue non funziona:
    Set TargetRange = Range(StartCell)
    Tet TargetRange = Range(TargetRange, TargetRange.End(xlDown). _
                  End(xlToRight))

Con la stessa premessa funziona invece questo:
    Set TargetRange = xlSheet.Cells(1, 1)
    With xlSheet
       NumRows = .Cells(.Rows.Count, 1).End(xlUp).Row
       NumCols = .Cells(1, .Columns.Count).End(xlToLeft).Column
    End With
    Set TargetRange = TargetRange.Resize(NumRows, NumCols)

Bel colpo! l'abbiamo vercato in tanti...

Bruno


title: Vba non rilascia servizio Excel

text:

certo, ma funziona lo stesso. Almeno a memoria mi pare cosi.

Ma forse intendevi qualche altra cosa ...


title: Vba non rilascia servizio Excel

text:

avevo ragione, dunque. Si deve riferire tutto a variabili oggetto.
Evidentemente, il VBA altrimenti è come se si facesse lui una sua
interna variabile oggetto : la quale tu non puoi mettere a nothing
e quindi wb.quit fallisce.

Piu o meno. Molto piu o meno :-)


title: Vba non rilascia servizio Excel

text:

come fai a sapere che l' avete verificato in tanti ? Siete in
contatto anche esternamente ?


title: Vba non rilascia servizio Excel

text:
radica...@gmail.com
 explained on 19-11-16 :

[...]
>> Bel colpo! l'abbiamo vercato in tanti...
>
Quel vercato avrebbe dovuto essere scritto "cercato"
e non verificato; non sono così affamato da mangiarmi
tre lettere alla volta.

> come fai a sapere che l' avete verificato in tanti ? Siete in
> contatto anche esternamente ?
Se dai un'occhiata in Internet trovi un sacco di richieste
di chiarimento riferite al problema in oggetto... veramente.

Trovi anche un sacco di soluzioni che o sono specifiche
o presso i vari richiedenti, me compreso, non hanno funzionato.

Quella individuata da Winston Smith ha funzionato egregiamente
in alcune circostanze nelle quali l'ho testata.

Quel che mi spiace di essa l'ho già scritto.

Bruno


title: Vba non rilascia servizio Excel

text:
Il giorno sabato 19 novembre 2016 03:30:46 UTC+1,
radica...@gmail.com
 ha scritto:

Mmmmm se conosci la differenza, hai già anche la risposta, altrimenti non conosci la differenza.

In questo specifico caso, dichiarare una Variabile come OBJECT è indice di LateBinding... e siccome la premessa è che è MEGLIO... non vedo perchè debba essere diverso anche in questo caso, oppure serva un motivo ulteriore.

@Alex


title: Vba non rilascia servizio Excel

text:
Il giorno sabato 19 novembre 2016 19:23:30 UTC+1, @Alex ha scritto:
> Il giorno sabato 19 novembre 2016 03:30:46 UTC+1,
radica...@gmail.com
 ha scritto:
> > Il giorno venerdì 18 novembre 2016 19:15:21 UTC+1, @Alex ha scritto:
> >
> > > Mah... LateBinding e EarlyBinding sono la base dell'uso di
> > > componenti COM o Automazione... trovi un sacco di 3D su questo tema.
> >
> > Ma io conosco la differenza tra i due concetti. Ti chiedevo perchè
> > pensi che il late binding sia migliore ed in particolare perchè in
> > questo caso. E' diverso.
>
> Mmmmm se conosci la differenza, hai già anche la risposta, altrimenti
> non conosci la differenza.

Beh ... forse -credevo- di conoscerla.

> In questo specifico caso, dichiarare una Variabile come OBJECT è indice
> di LateBinding ... e siccome la premessa è che è MEGLIO... non vedo
> perchè debba essere diverso anche in questo caso, oppure serva un
> motivo ulteriore.

Boh

L' LB è più lento dell' EB perchè la associazione avviene ogni volta
che il codice viene eseguito.

Poi il codice è meno chiaro (imho)

Qual' è allora il vantaggio che offre e che è cosi rilevante da
piu che compensare la maggior lentezza d' esecuzione  ?


title: Vba non rilascia servizio Excel

text:
Il giorno sabato 19 novembre 2016 18:26:55 UTC+1, Bruno Campanini ha scritto:
>
radica...@gmail.com
 explained on 19-11-16 :
>
> [...]
> >> Bel colpo! l'abbiamo vercato in tanti...
> >
> Quel vercato avrebbe dovuto essere scritto "cercato"
> e non verificato; non sono così affamato da mangiarmi
> tre lettere alla volta.

hops :-)

Si vede che ero stanco : gli occhi mi dicevano vercato e il
cervello verificato

Scusa

> > come fai a sapere che l' avete verificato in tanti ? Siete in
> > contatto anche esternamente ?

> Se dai un'occhiata in Internet trovi un sacco di richieste
> di chiarimento riferite al problema in oggetto... veramente.
>
> Trovi anche un sacco di soluzioni che o sono specifiche
> o presso i vari richiedenti, me compreso, non hanno funzionato.
>
> Quella individuata da Winston Smith ha funzionato egregiamente
> in alcune circostanze nelle quali l'ho testata.
>
> Quel che mi spiace di essa l'ho già scritto.

ok


title: Vba non rilascia servizio Excel

text:

La versione delle librerie!!! Quando tu indichi nei riferimenti excel 14, poi da codice hai l'intellisese e tutto. Ma se l'utente ha il 13? Il xx? Non lo sai. E l'applicativo si pianta. E quando l'utente aggiorna Office? Devi riscrivere, non hai soluzioni. Quindi la buona norma è: chiedi al sistema! E' come impostare i percorsi dei file affidandosi a variabili (current.path...) o a variabili d'ambiente (%AppData%...) invece di specificare il percorso: ti mette al riparo da guai. Sviluppi in EB, dopo i test, trasformi in LB. hai il meglio dei due mondi :)


title: Vba non rilascia servizio Excel

text:
Più lento è un'affermazione relativa e decisamente inutile... l'istanza avviene 1 volta e la differenza di 200ms fa ridere...
Sei decisamente fuori strada... ed è evidente che non ti poni il problema di distribuire applicativi ma solo di usarli sul tuo PC.
Questo non è male... ma decisamente limitante nei ragionamenti.

EB ha senso solo nel caso si abbia la necessità di ereditare EVENTI cosa non fattibile in LB.

Per il resto devi approfondire un po di lettura prima di esporre concetti non completi.

@ALEX