text:
Michele (Giò) ha scritto:
> Ma senti Alex, è possibile che prima di leggere la proprietà RecordCount di RecordsetClone, vi sia
> la necessità di fare un "recordsetclone.movelast" per rendere effettivo il conteggio? Leggevo su un
> manuale che la proprietà Recordcount dell'oggetto DAO.recordset ha bisogno per essere valida di far
> fare al recordset il caricamento di tutti i record, e questo con movelast. O mi sbaglio?
>
> Michele
Spulciando su internet per vedere come risolvere il mio quesito, anche
io ho trovato questo suggerimento che però dava più come una "buona
norma" più che una cosa obbligatoria e, sinceramente, non ne ho capito
il senso: o serve, o non serve... Alex?
Alessandro Baraldi ha scritto:
>
> lngSub1=Me!NomeSub1.Form.RecordsetClone.RecordCount
> lngSub2=Me!NomeSub2.Form.RecordsetClone.RecordCount
> lngSub3=Me!NomeSub3.Form.RecordsetClone.RecordCount
> lngSub4=Me!NomeSub4.Form.RecordsetClone.RecordCount
>
> Ciao
> @Alex
Ok, sono riuscito ad arrangiarmi (molte felicemente e grazie al tuo
spunto) ed il risultato è stato di poco differente dal tuo, inoltre ho
completato il codice perchè nella maschera principale sono presenti
oltre alle 4 sottomaschere, anche 4 Titoli e 4 linee di separazione.
Il codice non sarà perfetto perchè sono alle primissime armi però
sono felice come un pirla che comunque funzioni. Se c'è qualche
appunto da fare, fate pure, GRAZIE!!!
Eccovi il mio capolavoro (hehehehehe):
'DIMENSIONIAMO LE SOTTOMASCHERE...
'...a seconda dei record visualizzati in ciascuna di esse. Per
cominciare
'si assegna alla variabile "NumRec" i valori corrispondenti al numero
di film visualizzati nella maschera
    Dim NumRec1 As Integer
    Dim NumRec2 As Integer
    Dim NumRec3 As Integer
    Dim NumRec4 As Integer
    Set rst1 = sfrmSettimana1.Form.RecordsetClone
    rst1.MoveLast
    NumRec1 = rst1.RecordCount
    Set rst2 = sfrmSettimana2.Form.RecordsetClone
    rst2.MoveLast
    NumRec2 = rst2.RecordCount
    Set rst3 = sfrmSettimana3.Form.RecordsetClone
    rst3.MoveLast
    NumRec3 = rst3.RecordCount
    Set rst4 = sfrmSettimana4.Form.RecordsetClone
    rst4.MoveLast
    NumRec4 = rst4.RecordCount
' e alla variabili
'"AltTxtTitolo" l'altezza della casella di testo "TitoloFilm"
' "Twip" il valore di twip (unità di misura di MS Access) che
occorrono per fare un centimetro
' "AltFrm1" (2/3/4) le altezze calcolate delle 4 sfrm
' "DistTit" la distanza del titolo dalla rispettiva maschera
' "DistLin" la distanza della linea dalla rispettiva maschera
' "MrgFrm" il margine della subfrm da ciò che gli sta sopra, che si
tratti della subfrm precedente
' o del top del corpo della maschera principale
    Dim AltTxtTitolo, Twip, AltFrm1, AltFrm2, AltFrm3, AltFrm4,
DistTit, DistLin, MrgFrm
    AltTxtTitolo = 0.388
    Twip = 567
    AltFrm1 = AltTxtTitolo * NumRec1 * Twip
    AltFrm2 = AltTxtTitolo * NumRec2 * Twip
    AltFrm3 = AltTxtTitolo * NumRec3 * Twip
    AltFrm4 = AltTxtTitolo * NumRec4 * Twip
    DistTit = 284
    DistLin = 85
    MrgFrm = 400
' poi si ridimensionano e riposizionano le maschere a seconda dei
record contenuti
        sfrmSettimana1.Height = AltFrm1
        sfrmSettimana1.Top = MrgFrm
        lblFrmSettimana1.Top = MrgFrm - DistTit
        Linea1.Top = MrgFrm - DistLin
        sfrmSettimana2.Height = AltFrm2
        sfrmSettimana2.Top = AltFrm1 + 2 * MrgFrm
        lblFrmSettimana2.Top = AltFrm1 + 2 * MrgFrm - DistTit
        Linea2.Top = AltFrm1 + 2 * MrgFrm - DistLin
        sfrmSettimana3.Height = AltFrm3
        sfrmSettimana3.Top = AltFrm2 + AltFrm1 + 3 * MrgFrm
        lblFrmSettimana3.Top = AltFrm2 + AltFrm1 + 3 * MrgFrm - DistTit
        Linea3.Top = AltFrm2 + AltFrm1 + 3 * MrgFrm - DistLin
        sfrmSettimana4.Height = AltFrm4
        sfrmSettimana4.Top = AltFrm3 + AltFrm2 + AltFrm1 + 4 * MrgFrm
        lblFrmSettimana4.Top = AltFrm3 + AltFrm2 + AltFrm1 + 4 * MrgFrm
- DistTit
        Linea4.Top = AltFrm3 + AltFrm2 + AltFrm1 + 4 * MrgFrm - DistLin


title: Contare i record in una sottomaschera continua con VBA.

author: Alessandro Baraldi

text:
Michele (Giò) ha scritto:

Sull'apertura di un Recordset è possibile, ma sul RecordsetClone di
Form no, altrimenti come farebbe a mostrare
tutti i Records...?
@Alex


text:
leev ha scritto:

Non serve a nulla il MoveLast in questo caso, all'apertura o al
caricamento del Recordset di una Maschera
per riuscire a Popolare i campi il Recordset viene ciclato, quindi ti
trovi già sull'Ultimo.... TOGLILA.
Altro suggerimento...!
Questa dichiarazione è un'obrobrio:
Dim AltTxtTitolo, Twip, AltFrm1, AltFrm2, AltFrm3, AltFrm4,
DistTit, DistLin, MrgFrm
Una dichiarazione così assegna il tipo Variant a ben 9 Variabili che
forse dovrebbero essere addirittura
di tipo INTEGER.... stai bruciando un sacco di Byte in memoria...!
@Alex


author: Michele (Giò)

text:
"Alessandro Baraldi" <
ik2...@libero.it
> ha scritto nel messaggio
news:1159545520.9...@m7g2000cwm.googlegroups.com...
Sull'apertura di un Recordset è possibile, ma sul RecordsetClone di
Form no, altrimenti come farebbe a mostrare
tutti i Records...?
@Alex
Per cui, il morale della favola è che un recordsetclone di form può essere trattato come un
recordset, ma il meccanismo interno della form carica in automatico tutti i records sui propri
recordsets, clone e non.
Pensandoci bene vi possono essere delle strette analogie tra il recordcount del recordsetclone e il
conteggio records che appare in basso sulle maschere, già in apertura da subito corretto...
Michele


text:
Michele (Giò) ha scritto:
> "Alessandro Baraldi" <
ik2...@libero.it
> ha scritto nel messaggio
> news:1159545520.9...@m7g2000cwm.googlegroups.com...
>
> Sull'apertura di un Recordset è possibile, ma sul RecordsetClone di
> Form no, altrimenti come farebbe a mostrare
> tutti i Records...?
>
> @Alex
>
>
> Per cui, il morale della favola è che un recordsetclone di form può essere trattato come un
> recordset, ma il meccanismo interno della form carica in automatico tutti i records sui propri
> recordsets, clone e non.
Il RecordsetClone è un Recordset a tutti gli effetti, in particolare
è il Clone(metodo dell'oggetto Recordset) del Recordset di Form,
questa proprietà è esposta solo dall'Oggetto Form.
All'apertura la Form carica l'intero Recordset e, per aggiornare i
pulsanti di spostamento, l'indice numerico e non ultimo la
visualizzazione lo scorre....!
> Pensandoci bene vi possono essere delle strette analogie tra il recordcount del recordsetclone e il
> conteggio records che appare in basso sulle maschere, già in apertura da subito corretto...
Ipotizzo che la funzione nativa faccia esattamente quello....
> Michele
@Alex


author: leev

text:
> Non serve a nulla il MoveLast in questo caso, all'apertura o al
> caricamento del Recordset di una Maschera
> per riuscire a Popolare i campi il Recordset viene ciclato, quindi ti
> trovi già sull'Ultimo.... TOGLILA.
TOLTA! Comunque sono risalito al sito dove la avevo letta (io non sono
ancora in grado di partorire cose del genere, in tutti i sensi).
L'indirizzo è
http://www.itportal.it/developer/vb/datimascheree
 si
trova in fondo alla pagina nel riquadro giallo paglierino.
>
> Altro suggerimento...!
>
> Questa dichiarazione è un'obrobrio:
>
> Dim AltTxtTitolo, Twip, AltFrm1, AltFrm2, AltFrm3, AltFrm4,
> DistTit, DistLin, MrgFrm
>
> Una dichiarazione così assegna il tipo Variant a ben 9 Variabili che
> forse dovrebbero essere addirittura
> di tipo INTEGER.... stai bruciando un sacco di Byte in memoria...!
Eh si, saperlo! Purtroppo io sto cominciando adesso con access e pure
con VBA, e la maggior parte delle cose riesco a farle grazie a un po di
copia e incolla e molto intuito per il successivo adattamento alla
bisogna.
Ora provo a cambiarlo ma sicuramente sbaglierò ancora qualcosa,
vediamo, così?:
    Dim Twip, DistTit, DistLin, MrgFrm As Integer
    Dim AltTxtTitolo, AltFrm1, AltFrm2, AltFrm3, AltFrm4 as Single
considerando che
nella prima riga ci sono numeri interi che vanno da +85 a + 567
nella seconda numeri con max. 3 decimali che non superano certo il
valore di 100.000 (mi son tenuto largo)
Va meglio?
Per la seconda dichiarazione di variabili, ho scartato l'integer,
avendo dei decimali, e il double, non avendo necessità di cifre
enormi. Non mi restava che il single. E' corretto il ragionamento?
Grazie ancora.


text:
leev ha scritto:
[CUT]
> Eh si, saperlo! Purtroppo io sto cominciando adesso con access e pure
> con VBA, e la maggior parte delle cose riesco a farle grazie a un po di
> copia e incolla e molto intuito per il successivo adattamento alla
> bisogna.
Male, è il metodo più sbagliato...!
Prima LEGGERE e STUDIARE, poi si prendono i Demo, altrimenti non si
impara
altro che Copy/Paste
> Ora provo a cambiarlo ma sicuramente sbaglierò ancora qualcosa,
> vediamo, così?:
>
>     Dim Twip, DistTit, DistLin, MrgFrm As Integer
>     Dim AltTxtTitolo, AltFrm1, AltFrm2, AltFrm3, AltFrm4 as Single
>
> considerando che
> nella prima riga ci sono numeri interi che vanno da +85 a + 567
La dichiarazione delle variabili è sbagliata:
 Dim Twip as Integer
 DistTit as Integer
 DistLin as Integer
 Dim MrgFrm As Integer
Non voler risparmiare una riga di codice, così è corretto e ne
guadagna la leggibilità...!
> nella seconda numeri con max. 3 decimali che non superano certo il
> valore di 100.000 (mi son tenuto largo)
>
> Va meglio?
> Per la seconda dichiarazione di variabili, ho scartato l'integer,
> avendo dei decimali, e il double, non avendo necessità di cifre
> enormi. Non mi restava che il single. E' corretto il ragionamento?
Le considerazioni sono 2 :
1) Io già all'inizio ti ho suggerito INTEGER ma ti sei posto il
problema del perchè...?
2) Hi fatto un ragionamento che non solo è sbagliato, ma che non
dovevi fare...!!
Non devi inventarti nulla quando programmi, devi solo leggere
l'Help...!
La proprietà TOP o HEIGHT o WIDTH restituiscono ed accettano valori di
tipo INTEGER
come puoi ricavare senza bisogno di PENSARE dal visualizzatore
Oggetti...!!!!
Property Left As Integer
Property Height As Integer
Property Top As Integer
Property Width As Integer
Leggendo ti saresti accorto che se hai dei Decimali ad Access non gli
frega nulla perchè il Type della variabile li elimina, ma tu hai
sprecato memoria....!!
> Grazie ancora.
Continuo a dire che invece di andare a tentoni..... serve una BASE di
teoria avanzata che puoi acquisire solo studiando.
Tieni poi presente che non sempre il codice che trovi in rete è
Error_Free, quindi se non sei in grado di capirlo assorbi gli
errori....
@Alex


text:
Caro Alex, permettimi di rispondere a queste tue affermazioni, lungi da
me il voler venire a futili discussioni, se non altro perchè del tuo
aiuto credo di avere ancora parecchio bisogno.
> Prima LEGGERE e STUDIARE, poi si prendono i Demo, altrimenti non si
> impara
> altro che Copy/Paste
I demo che inserisco cerco sempre di studiarli a fondo e ricavarne il
più possibile
> > nella seconda numeri con max. 3 decimali che non superano certo il
> > valore di 100.000 (mi son tenuto largo)
> >
> > Va meglio?
> > Per la seconda dichiarazione di variabili, ho scartato l'integer,
> > avendo dei decimali, e il double, non avendo necessità di cifre
> > enormi. Non mi restava che il single. E' corretto il ragionamento?
>
> Le considerazioni sono 2 :
>
> 1) Io già all'inizio ti ho suggerito INTEGER ma ti sei posto il
> problema del perchè...?
Mi dici di non fare solo copia e incolla se no non imparo e poi
pretendi che utilizzi i tuoi suggerimenti senza chiedermi il perchè va
fatto in quel modo. Certo che mi son posto il problema: voglio capire
per imparare!
> 2) Hi fatto un ragionamento che non solo è sbagliato, ma che non
> dovevi fare...!!
E che altro potevo fare se non provare a ragionarci sopra.
> Non devi inventarti nulla quando programmi, devi solo leggere
> l'Help...!
Ti garantisco che lo faccio. Ma non credere che sia così semplice, in
ogni caso, anche se per te, ormai, potrà sembrare così.
> La proprietà TOP o HEIGHT o WIDTH restituiscono ed accettano valori di
> tipo INTEGER
> come puoi ricavare senza bisogno di PENSARE dal visualizzatore
> Oggetti...!!!!
Certo, a sapere che esiste una cosa del genere, uno la utilizza....
> Property Left As Integer
> Property Height As Integer
> Property Top As Integer
> Property Width As Integer
>
> Leggendo ti saresti accorto che se hai dei Decimali ad Access non gli
> frega nulla perchè il Type della variabile li elimina, ma tu hai
> sprecato memoria....!!
>
> > Grazie ancora.
>
> Continuo a dire che invece di andare a tentoni..... serve una BASE di
> teoria avanzata che puoi acquisire solo studiando.
> Tieni poi presente che non sempre il codice che trovi in rete è
> Error_Free, quindi se non sei in grado di capirlo assorbi gli
> errori....
Non credo sia il caso di elencare il mio curriculum studii (latino
inventato) riguardo ad access, ma a questo punto è giusto che precisi
alcune cose.
Ho acquistato 3 libri su access e 2 su Visual Basic già da parecchi
anni. Un semplice manuale Quick Start e quei maxi tomi dell'Apogeo e di
Mondadori, per quanto riguarda access. Uno della Mondadori sul VBA e
un'altro sullo stesso argomento di un'altra casa editrice.
Quelli sul VBA li ho letti una volta e a breve li rileggerò
nuovamente. Quelli su access li ho letti tutti, alcuni anche due volte
e mi sto rileggendo per la 3a volta i due tomi più grandi. Solo ora
sto cominciando a ricavarci qualcosa di interessante che mi permetta di
utilizzare il programma al meglio. Purtroppo il problema di chi è
autodidatta (e alla mia età, per vari motivi, non posso fare
altrimenti) è che se c'è una cosa che non ti è chiara nessuno te la
spiega (almeno fino a che non ho "conosciuto" teed i
tuoi....."colleghi"), o te la trovi sui libri, leggendo e rileggendo, o
ti tieni la lacuna.
D'altro canto considera che non posso aspettare di saper usare alla
perfezione sia access che il VBA prima di fare un DB, altrimenti lo
avrei disponibile giusto per lasciarlo in eredità a mia figlia. Sono
quindi costretto, mentre studio come un dannato nonostante le mie 11
ore (11effettive!!!) di lavoro al giorno, ad arrangiarmi cercando di
fare in modo che la base dati da me creata, o bene o male, funzioni,
per poterla utilizzare fin da subito.
Ti prego quindi di essere un po' più clemente nei tuoi giudizi che
sarei comunque, per altro, costretto a sopportare per ragioni
di....bisogno.   ^_*
Grazie della comprensione!
Elio


text:
Ora ho rimesso mano alle variabili impostandole tutte a integer e
dedicando ad ognuna una riga separata. Sarà giusto ora?:
    Dim AltTxtTitolo As Integer
    Dim Twip As Integer
    Dim AltFrm1 As Integer
    AltFrm2 As Integer
    Dim AltFrm3 As Integer
    Dim AltFrm4 As Integer
    Dim DistTit As Integer
    Dim DistLin As Integer
    Dim MrgFrm As Integer
Adesso però permettermi di fare i miei bei ragionamenti, sempre per
cercare di capire qualcosa in più.
La dichiarazione che avevo effettuato prima (Dim + elenco variabili +
As integer) è sbagliata perchè imposta solo l'ultima a valore intero,
oppure è sbagliata per una questione di sintassi e/o di chiarezza(non
che sia meno importante)?
>Non devi inventarti nulla quando programmi, devi solo leggere
>l'Help...!
>La proprietà TOP o HEIGHT o WIDTH restituiscono ed accettano valori di
>tipo INTEGER
>come puoi ricavare senza bisogno di PENSARE dal visualizzatore
>Oggetti...!!!!
>Property Left As Integer
>Property Height As Integer
>Property Top As Integer
>Property Width As Integer
>Leggendo ti saresti accorto che se hai dei Decimali ad Access non gli
>frega nulla perchè il Type della variabile li elimina, ma tu hai
>sprecato memoria....!!
Salvo ulteriori mie incomprensioni, la variabile integer non ammette
decimali. Nelle proprietà citate (TOP, HEIGHT, ecc.) access visualizza
numeri con decimali. Però il valore, controllato personalmente nel
visualizzatore oggetti (hehehehe), è di tipo integer. Perchè? Forse
perchè access converte tutto nei famosi Twip anche se visualizza
misure in cm.? O per altri motivi?
Grazie ancora, se avrai ancora la voglia di rispondermi.
Con affetto e simpatia (non sto leccando!!!!)
Elio


text:
leev ha scritto:
> Ora ho rimesso mano alle variabili impostandole tutte a integer e
>[omissis].
> Con affetto e simpatia (non sto leccando!!!!)
> Elio
Scusa ma mi sono accorto che con le variabili impostate ad integer la
finsetra non funziona. Dovrebbe elencare 4 titoli di sottomaschera più
4 sottomaschere con i film da 1 mese a questa parte, divisi per
settimana d'uscita. Se lascio le variabili a single, ho la
visualizzazione corretta, se imposto integer, nella maschera principali
vedo solo i titoli delle 4 subform senza altri dati.
Se per tua curiosità volessi dargli un'occhiata, per comodità, ti
riporto interamente il codice. Io sono troppo impegnato a capire se sta
bruciadno qualcosa o se il fumo che mi circonda la testa è uscito
tutto dal mio cervello.
Salutoni.
Elio
_____________________________________________________________________________
Private Sub Form_Open(Cancel As Integer)
' Imposta i titoli per le 4 settimane
Dim data1, data2, data3, data4 As String
data1 = FormatDateTime(Date + 6 - Weekday(Date), vbLongDate)
data2 = FormatDateTime(Date + 13 - Weekday(Date), vbLongDate)
data3 = FormatDateTime(Date + 20 - Weekday(Date), vbLongDate)
data4 = FormatDateTime(Date + 27 - Weekday(Date), vbLongDate)
lblFrmSettimana1.Caption = "Al cinema dal " & Right$(data1, Len(data1)
- 8)
lblFrmSettimana2.Caption = "Al cinema dal " & Right$(data2, Len(data2)
- 8)
lblFrmSettimana3.Caption = "Al cinema dal " & Right$(data3, Len(data3)
- 8)
lblFrmSettimana4.Caption = "Al cinema dal " & Right$(data4, Len(data4)
- 8)







    Dim AltTxtTitolo As Single  'oppure integer
    Dim Twip As Integer
    Dim AltFrm1 As Single  'oppure integer
    Dim AltFrm2 As Single  'oppure integer
    Dim AltFrm3 As Single  'oppure integer
    Dim AltFrm4 As Single  'oppure integer
    Dim DistTit As Integer
    Dim DistLin As Integer
    Dim MrgFrm As Integer
    AltTxtTitolo = 0.388






End Sub


text:
leev ha scritto:
Prima di tutto rispondo al Post sopra.
Tu non ti offendere, nel bene o nel male ho il cervello attaccato alla
lingua e dico
sempre il mio pensiero.
In ogni caso, i libri servono per prendere confidenza con il
Mezzo(access nel tuo caso), ma
poi ognuno ci mette del suo....!
Non ci credo che leggendo 3 volte un libro non hai trovato che esiste
il visualizzatore Oggetti
e l'Help..., a meno chè non li hai letti come si legge Topolino.
Questi libri, Tecnici, vanno metabolizzati, si legge un pezzo e si
prova a fare quanto si è letto
sia per prendere confidenza sia per capire, si fà sempre il Debug del
codice seguendo l'esecuzione delle funzioni passo passo, inserendo dei
breackPoint per meglio seguire l'esecuzione....!
Ora se tutto questo non ti è venuto automatico, credo che prima di
buttarti ad un'ulteriore
lettura(non essendo un libro di avventura) tu cerchi di capire che
mediamente i libro Tecnici hanno una difficoltà incrementale, pertanto
è INUTILE che prosegui a leggere se non hai capito i paragrafi
precedenti...., la prosecuzione si fà solo se il precedente è
chiaro....!!!!
Non voglio insegnarti nulla nè tanto meno a studiare, sono autodidatta
anch'io e quanto ti ho detto è il mio metodo, ma ti assicuro è quello
di molti che studiano libri tecnici....
Non essere accondiscendente perchè hai bisogno io sono sempre diretto
così con tutti.
> leev ha scritto:
>
> > Ora ho rimesso mano alle variabili impostandole tutte a integer e
> >[omissis].
> > Con affetto e simpatia (non sto leccando!!!!)
> > Elio
>
> Scusa ma mi sono accorto che con le variabili impostate ad integer la
> finsetra non funziona. Dovrebbe elencare 4 titoli di sottomaschera più
> 4 sottomaschere con i film da 1 mese a questa parte, divisi per
> settimana d'uscita. Se lascio le variabili a single, ho la
> visualizzazione corretta, se imposto integer, nella maschera principali
> vedo solo i titoli delle 4 subform senza altri dati.
> Se per tua curiosità volessi dargli un'occhiata, per comodità, ti
> riporto interamente il codice. Io sono troppo impegnato a capire se sta
> bruciadno qualcosa o se il fumo che mi circonda la testa è uscito
> tutto dal mio cervello.
>
> Salutoni.
> Elio
> _____________________________________________________________________________
>
> Private Sub Form_Open(Cancel As Integer)
>
> ' Imposta i titoli per le 4 settimane
>
> Dim data1, data2, data3, data4 As String
---------------------------------------------
[Risposta]
La Dichiarazione è errata, in quel modo solo l'ultima variabile è
String
le prime sono VARIANT.
> data1 = FormatDateTime(Date + 6 - Weekday(Date), vbLongDate)
> data2 = FormatDateTime(Date + 13 - Weekday(Date), vbLongDate)
> data3 = FormatDateTime(Date + 20 - Weekday(Date), vbLongDate)
> data4 = FormatDateTime(Date + 27 - Weekday(Date), vbLongDate)
>
> lblFrmSettimana1.Caption = "Al cinema dal " & Right$(data1, Len(data1)
> - 8)
> lblFrmSettimana2.Caption = "Al cinema dal " & Right$(data2, Len(data2)
> - 8)
> lblFrmSettimana3.Caption = "Al cinema dal " & Right$(data3, Len(data3)
> - 8)
> lblFrmSettimana4.Caption = "Al cinema dal " & Right$(data4, Len(data4)
> - 8)
>
> 'DIMENSIONIAMO LE SOTTOMASCHERE...
> '...a seconda dei record visualizzati in ciascuna di esse. Per
> cominciare
> 'si assegna alla variabile "NumRec" i valori corrispondenti al numero
> di film visualizzati nella maschera
>
>
>     Dim NumRec1 As Integer
>     Dim NumRec2 As Integer
>     Dim NumRec3 As Integer
>     Dim NumRec4 As Integer
>
>     Set rst1 = sfrmSettimana1.Form.RecordsetClone
>     rst1.MoveLast
---------------------------------------------
[Risposta]
Stai buttando via troppo codice, il MoveLast non serve a nulla, e l'uso
di un
Recordset aggiuntivo ancora meno...!!!!
Questo è giusto:
NumRec1 = Me!sfrmSettimana1.Form.RecordsetClone.RecordCount

---------------------------------------------
[Risposta]
Scusa ma non serve a nulla tutto questo.
Supponi di disegnare la tua Form per accogliere 1 solo Record.
Me!NomeSub1.Height=Me!NomeSub1.Height*NumRec1
Perchè mai devi lavorare in cm*twips per pixels o altro...?
Access lavora in Twips, quindi leggi il valore iniziale e moltiplicalo
per
la costante ricavata dal Numero di Records...!!!!!
> ' poi si ridimensionano e riposizionano le maschere a seconda dei
> record contenuti
>
>         sfrmSettimana1.Height = AltFrm1
>         sfrmSettimana1.Top = MrgFrm
>         lblFrmSettimana1.Top = MrgFrm - DistTit
>         Linea1.Top = MrgFrm - DistLin
>
>         sfrmSettimana2.Height = AltFrm2
>         sfrmSettimana2.Top = AltFrm1 + 2 * MrgFrm
>         lblFrmSettimana2.Top = AltFrm1 + 2 * MrgFrm - DistTit
>         Linea2.Top = AltFrm1 + 2 * MrgFrm - DistLin
>
>         sfrmSettimana3.Height = AltFrm3
>         sfrmSettimana3.Top = AltFrm2 + AltFrm1 + 3 * MrgFrm
>         lblFrmSettimana3.Top = AltFrm2 + AltFrm1 + 3 * MrgFrm - DistTit
>         Linea3.Top = AltFrm2 + AltFrm1 + 3 * MrgFrm - DistLin
>
>         sfrmSettimana4.Height = AltFrm4
>         sfrmSettimana4.Top = AltFrm3 + AltFrm2 + AltFrm1 + 4 * MrgFrm
>         lblFrmSettimana4.Top = AltFrm3 + AltFrm2 + AltFrm1 + 4 * MrgFrm
> - DistTit
>         Linea4.Top = AltFrm3 + AltFrm2 + AltFrm1 + 4 * MrgFrm - DistLin
>
>
> End Sub
Quello che hai fatto è decisamente confuso, e sbagliato a livello
concettuale, nonchè continuo a trovare gli errori che ti ho detto di
correggere.....
Altra cosa che non capisco è il motivo di voler ridimensionare le
SubForm in base ai Records...?
Esiste la ScrollBars appositamente per aver una visualizzazione fissa,
che per l'utente è importantissima....., perchè mai
ridimensionare...???
Quando i Records saranno 10000 che fai un monitor apposta...?
Quando le 4 SubForms hanno un Numero di records differenti cosa ottieni
4 SubForm con altezze diverse.....??????? Non dirmi di si......!!!
;-)
@Alex


text:
Alessandro Baraldi ha scritto:
> leev ha scritto:
>
> Prima di tutto rispondo al Post sopra.
> Tu non ti offendere, nel bene o nel male ho il cervello attaccato alla
> lingua e dico
> sempre il mio pensiero.
> In ogni caso, i libri servono per prendere confidenza con il
> Mezzo(access nel tuo caso), ma
> poi ognuno ci mette del suo....!
> Non ci credo che leggendo 3 volte un libro non hai trovato che esiste
> il visualizzatore Oggetti
sono alla 3a lettura di acces non di VB
> e l'Help..., a meno chè non li hai letti come si legge Topolino.
No, ma partendo dal nulla una lettura non è bastata la seconda è
stata tempo fa e ora sento il bisogno di ripassare
> Questi libri, Tecnici, vanno metabolizzati, si legge un pezzo e si
> prova a fare quanto si è letto
> sia per prendere confidenza sia per capire, si fà sempre il Debug del
> codice seguendo l'esecuzione delle funzioni passo passo, inserendo dei
> breackPoint per meglio seguire l'esecuzione....!
Sono cose che farò dopo, quando ricomincerò a prendere in mano i
libri sul VBA, purtroppo ora però il codice mi serve e, bene o male,
lo devo inserire. Mi piace molto studiare ed approfindire ma ho anche
bisogno di concldere, con questo DB (non per lavoro, ovvio!!!!)
> Ora se tutto questo non ti è venuto automatico, credo che prima di
> buttarti ad un'ulteriore
> lettura(non essendo un libro di avventura) tu cerchi di capire che
> mediamente i libro Tecnici hanno una difficoltà incrementale, pertanto
> è INUTILE che prosegui a leggere se non hai capito i paragrafi
> precedenti...., la prosecuzione si fà solo se il precedente è
> chiaro....!!!!
Ti ripeto che se non hai nessuno che ti spiega (ora ci sei tu e
it.comp.appl.access: grazie!) leggi rileggi e provi anche a lasciarti
piccole lacune nella speranza che si possano colmare dopo. ti
garantisco che è così. Nota inoltre che in questo genere di libri si
può tranquillamente saltare di palo in frasca( con precazuzione e nei
modi dovuti, saltando per esempio tutte le pagine di accesso ai dati e
i report per fare solo le maschere -è solo un esempio-)
>
> Non voglio insegnarti nulla nè tanto meno a studiare, sono autodidatta
> anch'io e quanto ti ho detto è il mio metodo, ma ti assicuro è quello
> di molti che studiano libri tecnici....
> Non essere accondiscendente perchè hai bisogno io sono sempre diretto
Non lo sono, tranquillo, era solo una battuta, da amante dell'ironia
quale sono. Sii pure diretto, ma sappi che, nonostante non mi intendo
molto di access e meno ancora di VBA, hai di fronte un interlocutore
intelligente, scaltro, perspicace e con un ottimo metodo di studio
(pollice verso alla falsa modestia). Trattami per quello che sono. Se
poi non mi rivelerò per quanto detto, avrai tutte le ragioni di
sbeffeggiarmi od ignorarmi.

Ok è la conferma a ciò che ti avevo chiesto >>>Ora ho corretto!

Questo lo avevo capito e difatti lo avevo tolto. non capisco come sia
ancora qui.
Tengo due copie del DB, l'originale, più semplice, e una copia per
fare gli esperimenti (studiarci) che diventa l'originale solo quando
son sicuro che le novità inserite funzionano. E' possibile mi sia
ocnfuso, se così fosse chiedo venia, mea culpa.

cosa non serve a nulla? Supponendo che sia la parte che considera la
distanza del titolo e della linea dalla maschera, ti sbagli, serve.
Sarebbe sufficiente regolare l'altessa in presenza di un'unica subfrm.
con 4, bisogna regolare anche la posizione a partire dalla seconda.
>
> Perchè mai devi lavorare in cm*twips per pixels o altro...?
> Access lavora in Twips, quindi leggi il valore iniziale e moltiplicalo
> per
> la costante ricavata dal Numero di Records...!!!!!
I twips li ho scoperti dopo e in ogni caso il valore che vedo nella
finestra delle proprietà di access è in cm. Non saprei come o dove
prenderli i valori in twips, quello che tu chiami valore iniziale.
Immagino però, a questo punto, che quello che io vedo nella finestra
delle proprietà di access, espresso in cm., in realtà è memorizzato
in twips e se richiedo il valore tramite VBA mi viene fornito in Twips.
Giusto?
>
> > ' poi si ridimensionano e riposizionano le maschere a seconda dei
> > record contenuti
> >
> >         sfrmSettimana1.Height = AltFrm1
> >         sfrmSettimana1.Top = MrgFrm
> >         lblFrmSettimana1.Top = MrgFrm - DistTit
> >         Linea1.Top = MrgFrm - DistLin
> >
> >         sfrmSettimana2.Height = AltFrm2
> >         sfrmSettimana2.Top = AltFrm1 + 2 * MrgFrm
> >         lblFrmSettimana2.Top = AltFrm1 + 2 * MrgFrm - DistTit
> >         Linea2.Top = AltFrm1 + 2 * MrgFrm - DistLin
> >
> >         sfrmSettimana3.Height = AltFrm3
> >         sfrmSettimana3.Top = AltFrm2 + AltFrm1 + 3 * MrgFrm
> >         lblFrmSettimana3.Top = AltFrm2 + AltFrm1 + 3 * MrgFrm - DistTit
> >         Linea3.Top = AltFrm2 + AltFrm1 + 3 * MrgFrm - DistLin
> >
> >         sfrmSettimana4.Height = AltFrm4
> >         sfrmSettimana4.Top = AltFrm3 + AltFrm2 + AltFrm1 + 4 * MrgFrm
> >         lblFrmSettimana4.Top = AltFrm3 + AltFrm2 + AltFrm1 + 4 * MrgFrm
> > - DistTit
> >         Linea4.Top = AltFrm3 + AltFrm2 + AltFrm1 + 4 * MrgFrm - DistLin
> >
> >
> > End Sub
>
>
> Quello che hai fatto è decisamente confuso, e sbagliato a livello
> concettuale,
Non esagerare, quest'ultima cosa credo ancora sia necessaria
>nonchè continuo a trovare gli errori che ti ho detto di
> correggere.....
Come scritto sopra, ciò che mi hai detto , ho corretto. Fidati, io mi
fido di te! :-)
>
> Altra cosa che non capisco è il motivo di voler ridimensionare le
> SubForm in base ai Records...?
> Esiste la ScrollBars appositamente per aver una visualizzazione fissa,
> che per l'utente è importantissima....., perchè mai
> ridimensionare...???
> Quando i Records saranno 10000 che fai un monitor apposta...?
> Quando le 4 SubForms hanno un Numero di records differenti cosa ottieni
> 4 SubForm con altezze diverse.....??????? Non dirmi di si......!!!
Le subform sono una sopra l'altra, non allineate orizzontalmente,
quindi la differenza di misura non disturba affatto. Inoltre sono fatte
in modo assolutamente trasparente (intendo che non ci si accorge della
loro presenza, sembra di vedere un'unica maschera con le 4 settimane e
sottoelencati i film in programmazione. A 10.000 non arriveremo mai,
essendo massimo 8 10 film per settimana (ma anche 3 o 4 a volte).
Esteticamente ti garantisco che così è tutta un'altra cosa....fidati!
Ciao.
Elio
^_*


text:
leev ha scritto:
[CUT]
> Le subform sono una sopra l'altra, non allineate orizzontalmente,
> quindi la differenza di misura non disturba affatto. Inoltre sono fatte
> in modo assolutamente trasparente (intendo che non ci si accorge della
> loro presenza, sembra di vedere un'unica maschera con le 4 settimane e
> sottoelencati i film in programmazione. A 10.000 non arriveremo mai,
> essendo massimo 8 10 film per settimana (ma anche 3 o 4 a volte).
>
> Esteticamente ti garantisco che così è tutta un'altra cosa....fidati!
>
> Ciao.
> Elio
>
> ^_*
Elio io mi fido solo se quanto vedo o mi spiegano ha un senso....!
A mio avviso quello che mi stai spiegando non ne ha, quindi i casi sono
2:
1)Stai dando per scontato che io abbia capito la dinamica della tua
gestione.
2)Io sono di legno.
Vedendo possibili anche entrambe le cose..... non sò che fare, ma lo
switch tra le SubForm
si fà in un modo diverso, non si mettono 4 o 5 subForm in una Form per
poi visualizzarne solo 1...!
Perchè...?
Perchè come ti dissi prima ogni oggetto associato al caricamento perde
tempo nel reperire i dati ed è illogico perdere tempo per fare
qualcosa che non si deve vedere....!
Io mi ripeto, stai facendo una cosa nel modo meno corretto, ma come è
ovvio che sia, dato dall'inesperienza lo capirai...., quello che un pò
mi scoccia è che(sempre siamo nel caso 1) vuoi convincermi che è il
modo giusto...!!
Fai come OBI-ONE-CHENOBI .... allarga la tua mente...!
Ti riporto un articolo di Karl che trovi nel suo sito:
In esecuzione vuoi usare maschere diverse come sottomaschere nello
stesso controllo sottomaschera.
Soluzione
Con VBA puoi cambiare la proprietà SourceObject del controllo
sottomaschera (nell'esempio "sfcontrol") nella maschera principale:
Me!sfcontrol.SourceObject = "MiaProssimaSottoMaschera"
Se con ciò anche i campi collegati della sottomaschera e della
maschera principale sono differenti, devi cambiare le proprietà
Collega campi secondari e Collega campi master del controllo
sottomaschera:
Me!sfcontrol.LinkChildFields = "CampoInSottomaschera"
Me!sfcontrol.LinkMasterFields = "CampoInMascheraPrincipale"
Access automaticamente collega la chiave primaria (se presente). Così
se il tuo campo collegato non è chiave primaria ne devi settare le
proprietà a NULL (o a una stringa vuota) prima di poterlo cambiare ai
nuovi valori:
Me!sfcontrol.SourceObject = "MiaProssimaSottoMaschera"
Me!sfcontrol.LinkChildFields = NULL
Me!sfcontrol.LinkMasterFields = NULL
Me!sfcontrol.LinkChildFields = "CampoInSottomaschera"
Me!sfcontrol.LinkMasterFields = "CampoInMascheraPrincipale"
Ti allego 4 Link di siti che puoi consultare come e meglio dell'Help:
http://www.donkarl.com/it/
http://www.alessandrobaraldi.it/index.asp
http://www.sitocomune.com/
http://www.riolab.org/
Ciao
@Alex


text:
>Elio io mi fido solo se quanto vedo o mi spiegano ha un senso....!
>A mio avviso quello che mi stai spiegando non ne ha, quindi i casi sono
>2:
>
>1)Stai dando per scontato che io abbia capito la dinamica della tua
>gestione.
>2)Io sono di legno.
>
>
>Vedendo possibili anche entrambe le cose..... non sò che fare, ma lo
>switch tra le SubForm
>si fà in un modo diverso, non si mettono 4 o 5 subForm in una Form per
>poi visualizzarne solo 1...!
>Perchè...?
>Perchè come ti dissi prima ogni oggetto associato al caricamento perde
>tempo nel reperire i dati ed è illogico perdere tempo per fare
>qualcosa che non si deve vedere....!
>
Ora che hai visto un'immagine penso tu abbia capito ciò che dovevo
ottenere.
>
>Io mi ripeto, stai facendo una cosa nel modo meno corretto, ma come è
>ovvio che sia, dato dall'inesperienza lo capirai...., quello che un pò
>mi scoccia è che(sempre siamo nel caso 1) vuoi convincermi che è il
>modo giusto...!!
>Fai come OBI-ONE-CHENOBI .... allarga la tua mente...!
Stessa risposta di prima.
>
>
>Ti riporto un articolo di Karl che trovi nel suo sito:
>
>
>In esecuzione vuoi usare maschere diverse come sottomaschere nello
>stesso controllo sottomaschera.
>
>
>Soluzione
>
>
>Con VBA puoi cambiare la proprietà SourceObject del controllo
>sottomaschera (nell'esempio "sfcontrol") nella maschera principale:
>
>
>Me!sfcontrol.SourceObject = "MiaProssimaSottoMaschera"
>
>
>Se con ciò anche i campi collegati della sottomaschera e della
>maschera principale sono differenti, devi cambiare le proprietà
>Collega campi secondari e Collega campi master del controllo
>sottomaschera:
>
>
>Me!sfcontrol.LinkChildFields = "CampoInSottomaschera"
>Me!sfcontrol.LinkMasterFields = "CampoInMascheraPrincipale"
>
>
>Access automaticamente collega la chiave primaria (se presente). Così
>se il tuo campo collegato non è chiave primaria ne devi settare le
>proprietà a NULL (o a una stringa vuota) prima di poterlo cambiare ai
>nuovi valori:
>
>
>Me!sfcontrol.SourceObject = "MiaProssimaSottoMaschera"
>Me!sfcontrol.LinkChildFields = NULL
>Me!sfcontrol.LinkMasterFields = NULL
>Me!sfcontrol.LinkChildFields = "CampoInSottomaschera"
>Me!sfcontrol.LinkMasterFields = "CampoInMascheraPrincipale"
A prima vista non credo serva ad ottenere ciò che avevo bisogno
>Ti allego 4 Link di siti che puoi consultare come e meglio dell'Help:
>
>
>
http://www.donkarl.com/it/
>
http://www.alessandrobaraldi.it/index.asp
>
http://www.sitocomune.com/
>
http://www.riolab.org/
Grazie, li ho messi nei preferiti!
^_^
CIao
Elio


title: Casella Combinata

author: Antonio

text:
Tabella: BOLLETTINI
Campi: Operatore ed IdBollettino
Ad ogni Operatore corrisponde un n° di bollettino
Maschera: MOVIMENTI 1
Inserisco vari campi tra cui Operatore
Maschera: MOVIMENTI 2
Mi fa vedere i campi inseriti precedentemente nella maschera
MOVIMENTI ed anche un campo vuoto chiamato Bollettino, valore
che metterò adesso io.
Problema:
Il campo Bollettino di questa ultima maschera è una casella
combinata che preleva i dati dalla tabella bollettini. Anzichè
lasciare gestione libera io vorrei che lei mi facesse vedere
solo i bollettini associati all'operatore del record che sto
modificando e non tutti i bollettini.
Ho realizzato la query sulla quale basare questa ricerca e
funziona ma quando selezione un record diverso della maschera (è
una maschera continua) non me la aggiorna e rimane la precedente
selezione. Come devo fare.
Aggiungo che la query si aggiorna perfettamente, è la casella di
riepilogo che mi da il risultato della query precedente e non
aggiornato.
Grazie
--
Postato da Alice Newsgroup: lo usi da web ma con le funzioni del newsreader
http://newsgroup.alice.it
Gerarchie it, italia, it-alt, tin, it.binari. Unico!


title: Casella Combinata

author: Karl Donaubauer

text:
Antonio wrote:
> Tabella: BOLLETTINI
> Campi: Operatore ed IdBollettino
> Ad ogni Operatore corrisponde un n° di bollettino
>
> Maschera: MOVIMENTI 1
> Inserisco vari campi tra cui Operatore
>
> Maschera: MOVIMENTI 2
> Mi fa vedere i campi inseriti precedentemente nella maschera
> MOVIMENTI ed anche un campo vuoto chiamato Bollettino, valore
> che metterò adesso io.
>
> Problema:
> Il campo Bollettino di questa ultima maschera è una casella
> combinata che preleva i dati dalla tabella bollettini. Anzichè
> lasciare gestione libera io vorrei che lei mi facesse vedere
> solo i bollettini associati all'operatore del record che sto
> modificando e non tutti i bollettini.
>
> Ho realizzato la query sulla quale basare questa ricerca e
> funziona ma quando selezione un record diverso della maschera (è
> una maschera continua) non me la aggiorna e rimane la precedente
> selezione. Come devo fare.
> Aggiungo che la query si aggiorna perfettamente, è la casella di
> riepilogo che mi da il risultato della query precedente e non
> aggiornato.
Nel codice del evento "Su Corrente" della maschera dove
cambia il record devi fare un Requery alla casella combinata.
Vedi anche
www.donkarl.com/it?FAQ4.36
.
--
HTH
Karl
*********
Access FAQ:
www.donkarl.com/it


title: Inserire Formule da vba in fogli Excel

author: Pisinho

text:
Scusate sono sempre a rompere.
Da VBA inserisco valori e formule in fogli excel.
Fino ad ora ho avuto bisogno solo di SOMME dato che i conti li faccio a
monte per registrarli nel DB.
Se inserisco la formula con "=SUM(A1:A20)" tutto OK, se inserisco invece una
formula con SE
"=SE(A1=0;0;A1/C1)"
mi da ERRORE nell'oggetto worksheet.
Dove potrei sbagliare ?
grazie mille.


title: Inserire Formule da vba in fogli Excel

text:

L'inglese ....???
Hai provato a sostituire il "SE" con la versione INGLESE...???
@Alex


title: Inserire Formule da vba in fogli Excel

text:
Si, scusatemi l'ho scritta come la dovrei vedere, naturalmente le funzioni
vanno tradotte in inglese.
Ho trovato la soluzione proprio per caso perch� non avrei immaginato, forse
� un baco di ACCESS altrimenti non me lo spiego.
A differenza della funzione SUM che non prevedeva nel mio caso separazione
di valori con il punto e virgola, la IF lo prevede.
Ho letto un post che risolveva un altro problema dei doppi apici, e che
mostrava la formula con la virgola al posto del punto e virgola nel seguente
modo:
"=IF(M1=0,0,V1/M1)"
cambiato in virgola adesso il programma funziona e su EXCEL mi vedo la
formula scritta CORRETTA con il punto e virgola... magia di ACCESS che per�
mi ha fatto perdere un sacco di tempo.
Grazie a tutti comunque, speriamo possa servire a qualcuno.
Saluti



title: Inserire Formule da vba in fogli Excel

text:
Pisinho wrote:
>> L'inglese ....???
>> Hai provato a sostituire il "SE" con la versione INGLESE...???
>> ...
> Si, scusatemi l'ho scritta come la dovrei vedere, naturalmente le
> funzioni vanno tradotte in inglese.
>
> Ho trovato la soluzione proprio per caso perch� non avrei immaginato,
> forse � un baco di ACCESS altrimenti non me lo spiego.
>
> A differenza della funzione SUM che non prevedeva nel mio caso
> separazione di valori con il punto e virgola, la IF lo prevede.
>
> Ho letto un post che risolveva un altro problema dei doppi apici, e
> che mostrava la formula con la virgola al posto del punto e virgola
> nel seguente modo:
>
> "=IF(M1=0,0,V1/M1)"
>
> cambiato in virgola adesso il programma funziona e su EXCEL mi vedo la
> formula scritta CORRETTA con il punto e virgola... magia di ACCESS
> che per� mi ha fatto perdere un sacco di tempo.
Non � "un baco di ACCESS", neanche ha da fare con Access.
_VBA_ � americano e per questo il separatore dei argomenti
� la virgola anche se si usa lo stesso codice direttamente in Excel.
--
cu
Karl


title: File di Directory in una tabella

author: Max

text:
Ho preso dal sito comune l'esempio di Lorenzo Coronati
Ma con Access2000 non vuole saperne di funzionare...
Spero che qualcuno mi illumini:
Craeto una maschera con un bottone che su click richiama la sub
elencafile (nei riferimenti ho aggiunto DAO)
Al click del bottone mi esce fuori un bell'errore di run time 13, tipo
non corrispondente.
Sulla riga
   Set r = CurrentDb.OpenRecordset(s, dbOpenTable)
Apro l'help di access e inizio a leggere....
Non riesco proprio a trovare l'errore...
Comunque la tabella è stata creata, solo i file non vengono
elencati...
Qualche indizio...
Posto per comodità l'intero codice:
Public Sub elencafile(Optional d As String, Optional j As String)
   'Autore: Lorenzo Coronati
   'Argomenti:
   ' d=directory
   ' j=maschera di match
   Dim t As TableDef
   Dim r As Recordset
   Dim s As String
   If d = "" Then d = CurDir ' se non specificata usa la dir corrente
   If j = "" Then j = "*.*" ' se non specificato, lista tutti i file
   If Right(d, 1) <> "\" Then d = d & "\"
   s = "Files presenti in " & d
   Set t = CurrentDb.CreateTableDef(s)
   t.Fields.Append t.CreateField("NomeFile", dbText)
   CurrentDb.TableDefs.Append t
   Set r = CurrentDb.OpenRecordset(s, dbOpenTable)
   s = Dir(d & j)
   With r
      Do While s <> "" ' cicla per ogni file nella directory
         .AddNew
         !NomeFile = s
         s = Dir
         .Update
      Loop
   End With
End Sub
Grazie
Max


title: File di Directory in una tabella

author: Sergio MAZZA

text:
"Max" <
borto...@tiscalinet.it
> ha scritto nel messaggio
news:3b335a57...@News.CIS.DFN.DE...
> Ho preso dal sito comune l'esempio di Lorenzo Coronati
> Ma con Access2000 non vuole saperne di funzionare...
> Spero che qualcuno mi illumini:
> Craeto una maschera con un bottone che su click richiama la sub
> elencafile (nei riferimenti ho aggiunto DAO)
-------- omissis ---------
> Grazie
> Max
I riferimenti a DAO devono precedere quelli a ADO...
Ciao.


title: CompactDatabase e risorse di sistema

author: Giordano

text:
ho un db in access 2000 che dopo un po' che lo uso mi ritrovo con le risorse
di sistema azzerate. Certo l'ho presa un po' alla larga ma sono un
principiante. Indizi: ho convertito tutte le macro in codice (ho fatto bene
o non serve a nulla?) ed ho collegato tutte le immagini invece che averle
incorporate (stessa domanda). Le maschere che ho però sono tutte popup a
schermo intero, questo centra?
Ultima cosa, alla chiusura eseguo questo:
vai1:
Dim SourceFile, DestinationFile
DBEngine.CompactDatabase "c:\datatrek\dati\basedati.mdb",
"c:\datatrek\backup\basedati.mdb", , , "tc367"
Kill "c:\datatrek\dati\basedati.mdb"
SourceFile = "c:\datatrek\backup\basedati.mdb"
DestinationFile = "c:\datatrek\dati\basedati.mdb"
FileCopy SourceFile, DestinationFile
Ma mi ritrovo "IMAP NON INSTALLATO", ho provato l'help ma ho dovuto
evidentemente ricorrere a voi....
(ah, ovvimente basedati.mdb è un db chiuso, contiene solo le tabelle dei
dati che sono tutte collegate)
Ciao e grazie per la pazienza!
--
Giordolo sul web!!
http://www.Geocities.com/Giordolo
ICQ 45999881
Sono ottimista. Il bicchiere lo vedo mezzo pieno
.....di merda.
I quattro continenti sono questi tre: l'Asia e l'Africa


title: Maschere Continue

author: Giuliano

text:
Buongiorno, ho appena iniziato ad usare Access, e scusate se la domanda che
faro' sara' per voi banale.
Il mio problema e' il seguente: Ho creato una maschera che contiene una
tabella tabulare (mi serve tabulare perche' voglio vedere tutti i prodotti
che inserisco). Una volta che io ho inserito i prodotti che vanno in quella
tabella (nella maschera in modalita' maschere continue), come faccio per
poter magari attraverso un pulsante passare ad una tabella successiva
(quindi in una maschera uguale alla precedente ma nuova, identificata magari
da un ID incrementato rispetto alla precedente)?
Spero di essere stato chiaro.
GRAZIE.


title: Maschere Continue

author: Luciano

text:
Giuliano ha scritto nel messaggio ...
>Il mio problema e' il seguente: Ho creato una maschera che contiene una
>tabella tabulare (mi serve tabulare perche' voglio vedere tutti i prodotti
>che inserisco). Una volta che io ho inserito i prodotti che vanno in quella
>tabella (nella maschera in modalita' maschere continue), come faccio per
>poter magari attraverso un pulsante passare ad una tabella successiva
>(quindi in una maschera uguale alla precedente ma nuova, identificata
magari
>da un ID incrementato rispetto alla precedente)?
>Spero di essere stato chiaro.
Proprio no...!:.-)
Saluti.
Luciano
PS Tabella tabulare?:-)))


title: Maschere Continue

author: Thierry Rega

text:
> Buongiorno, ho appena iniziato ad usare Access, e scusate se la domanda
che
> faro' sara' per voi banale.
> Il mio problema e' il seguente: Ho creato una maschera che contiene una
> tabella tabulare (mi serve tabulare perche' voglio vedere tutti i prodotti
> che inserisco). Una volta che io ho inserito i prodotti che vanno in
quella
> tabella (nella maschera in modalita' maschere continue), come faccio per
> poter magari attraverso un pulsante passare ad una tabella successiva
> (quindi in una maschera uguale alla precedente ma nuova, identificata
magari
> da un ID incrementato rispetto alla precedente)?
> Spero di essere stato chiaro.
Chiaro? Mah, insomma ...
Se ho capito bene vorresti vederti i record di varie tabelle dove ogni
tabella è contenuta in una e una sola maschera continua?
Se la presentazione delle maschere continue non cambia, allora da codice, al
click del pulsante devi cambiare l'origine dati alla maschera e ai
controlli. Se invece cambia, allora devi crearti una maschera per ogni
tabella da vedere. In ognuna di queste maschere c'è lo stesso pulsante che
al click apre la maschera seguente e chiude la maschera presente.
Adesso, la prima soluzione non posso prevederti la reazione di Access, se
gli cambi le origini dei dati mentre è attiva la maschera (forse si
arrabbia!). In qual caso la faccenda rischia di essere pesante.
Per questo dettaglio è meglio aspettare la risposta da uno più esperto.
La seconda soluzione invece è più da "zappatore" ma più semplice :-)
Ciao
Thierry


title: Maschere Continue

author: Roberto

text:
Giuliano <
gro...@libero.it
> wrote in message
YNS_4.107061$VM3.7...@news.infostrada.it...
> Buongiorno, ho appena iniziato ad usare Access, e scusate se la domanda
che
> faro' sara' per voi banale.
> Il mio problema e' il seguente: Ho creato una maschera che contiene una
> tabella tabulare (mi serve tabulare perche' voglio vedere tutti i prodotti
> che inserisco). Una volta che io ho inserito i prodotti che vanno in
quella
> tabella (nella maschera in modalita' maschere continue), come faccio per
> poter magari attraverso un pulsante passare ad una tabella successiva
> (quindi in una maschera uguale alla precedente ma nuova, identificata
magari
> da un ID incrementato rispetto alla precedente)?
> Spero di essere stato chiaro.
> GRAZIE.
>
Non riesco a capire il contesto in cui stai oterando.
Non mi è neppure chiaro cosa sia una tabella tabulare.
Accendo la mia sfera di cristallo e faccio un'ipotesi di quello che ti
serve.
Hai una tabella ordini (TabOrdini) avente come chiave primaria IDOrdine;
vuoi fare una maschera (MASCHERA1) che ha come "Origine record" la tabella
TabOrdini e che ti faccia vedere e/o inserire i prodotti a fronte di ogni
ordine.
Se è questo quello che ti serve occorre che ti dichiari una seconda tabella
(TabOrdineProdotto) che contiene necessariamente un campo che chiami
IDOrdine un secondo campo che chiami IDProdotto (l'insieme di questi due
campi dichiarali come chiave primaria di TabOrdineProdotto) ed eventualmente
altri campi, ad esempio la quantità ordinata di quel prodotto.
Dal menu Strumenti con il comando "Relazioni.." crea una relazione
uno-a-molti tra TabOrdini e TabOrdineProdotto tramite IDProdotto che hai in
ambedue le tabelle.
Creati una sottomaschera (SOTTOMASCHERA1) che abbia come "Origine record"
TabOrdineProdotto e inseriscila in MASCHERA1 collegandola ad essa tramite
IDProdotto. La proprietà "Visualizzazione predefinita" di SOTTOMASCHERA1
deve essere "Maschere continue".
Aprendo a questo punto MASCHERA1 vedrai (o potrai inserire) tutti idati di
un ordine e nella zona relativa alla sottomascherea vedrai (o potrai
inserire) i dati di ogni prodotto relativo a quell'ordine.
Agendo sui "Pulsanti di scorrimento" che ti compariranno in basso a sinistra
della maschera, potrai vedere un altro ordine ed i relativi prodotti oppure
inserire un nuovo ordine ed i relativi prodotti.
E' questo che ti serviva?  Ho letto bene nella mia sfera di cristallo?????
:-))))
Roberto


title: OT: Statistiche

author: Claudio

text:
Per un cliente ho dovuto realizzare una piccola funzione per ottenere
delle statistiche sulle mail inviate, e per provarla l'ho fatta girare
sui messaggi dell'ultimo mese transitati per icaa. Ecco i risultati :-)
Vi consiglio un font non proporzionale...
Nome                       Messaggi   Linee
Roberto da casa                 393  17.418
Antonio Biso                    363   8.166
Claudio                         277   6.124
Alessandro Cara                 223   5.521
Maurizio Borrelli               215   8.980
Emyr                            149   3.012
Sib                             143   3.147
Lorenzo Coronati                112   1.684
Alex                            105   2.585
MM                              104   4.777
oizirbaF                        100   3.238
MA                               78   1.978
Federico Luciani                 77   3.100
desio                            64   1.699
Tiziano                          57   1.242
antcim                           57   2.257
Antonio Ganci                    51   1.040
RoDAgo                           51   1.106
@Alex                            49   1.493
Fabrizio                         48   1.519
Karl Donaubauer                  38   1.001
Maicol                           35   1.216
All Eyez On me                   34   1.016
Gobbo                            34   1.244
ringo                            34   1.101
leo_duca                         33     812
Ettore Manara                    32     654
Fabio Chiaro                     31     905
Fabrizio yQy                     30     682
Totale messaggi               5.194 145.356
Perdonate l'OT, se potete...
Ciao. Claudio.


title: OT: Statistiche

author: Federico Luciani

text:
Claudio wrote:
> Per un cliente ho dovuto realizzare una piccola funzione per ottenere
> delle statistiche sulle mail inviate, e per provarla l'ho fatta girare
> sui messaggi dell'ultimo mese transitati per icaa. Ecco i risultati :-)
> Vi consiglio un font non proporzionale...
>
> Nome                       Messaggi   Linee
> Roberto da casa                 393  17.418
> Antonio Biso                    363   8.166 di monnezza ;)
--
Federico
----------------------------------
Rimuovi paperino. per e-mail
----------------------------------
Tutte le richieste che arrivano
in privato, vengono cestinate.
----------------------------------
Sito Comune di it.comp.appl.access
http://www.sitocomune.com
mailto:
webm...@sitocomune.com
----------------------------------


title: OT: Statistiche

author: MA

text:
Il 15 Nov 2002, 16:00, Claudio <c...@NOSPAMandCOsupereva.it> ha scritto:
> Per un cliente ho dovuto realizzare una piccola funzione per ottenere
> delle statistiche sulle mail inviate, e per provarla l'ho fatta girare
> sui messaggi dell'ultimo mese transitati per icaa. Ecco i risultati :-)
> Vi consiglio un font non proporzionale...
>
> Nome Messaggi Linee
> Roberto da casa 393 17.418
> Antonio Biso 363 8.166
> Claudio 277 6.124
> Alessandro Cara 223 5.521
> Maurizio Borrelli 215 8.980
> Emyr 149 3.012
Emyr al 6° posto??
Ma se scrive mezza riga di risposta alla volta???
Risponde bene, per amor di Dio, ma è così tirchio di inchiostro...!?!
scrive con frasi da codice fiscale...
;-P
ciao MAssimiliano
--------------------------------
Inviato via
http://usenet.libero.it


title: OT: Statistiche

author: Sib

text:
"Claudio" <c...@NOSPAMandCOsupereva.it> ha scritto nel messaggio

Molto simpatico.
io proporrei di postarlo mensilmente.
Che routine hai fatto?
Sib


title: OT: Statistiche

text:
Fri, 15 Nov 2002 16:21:54 GMT, Sib ha scritto ben 45 righe per dire:
>"Claudio" <c...@NOSPAMandCOsupereva.it> ha scritto nel messaggio
>> Per un cliente ho dovuto realizzare una piccola funzione per ottenere
>> delle statistiche sulle mail inviate, e per provarla l'ho fatta girare
>> sui messaggi dell'ultimo mese transitati per icaa. Ecco i risultati :-)
>
>Molto simpatico.
>io proporrei di postarlo mensilmente.
>Che routine hai fatto?
Ti ringrazio :-)
Il programma, invero molto semplice, l'ho scritto in awk (mio vecchio
grande amore), che per queste cose ritengo sia il più adatto (quindi
sono doppiamente OT).
Sarei un po' timoroso invece sul fatto di postarlo periodicamente... non
vorrei che venisse preso come una "gara", per cui aumenterebbe il numero
di post "inutili" soltanto per conquistarsi una "buona posizione"...
Sono perplesso...
Ciao. Claudio.


title: OT: Statistiche

text:

non preoccuparti,
in passato mi occupavo io di postare mensilmente la 'classifica'
e' vero, si facevano le gare, ma erano per rispondere prima degli
altri e non per la classifica;
anche perche' si capisce facilmente chi posta cose utili e chi
inutili ;-)
bei tempi...



title: OT: Statistiche

author: Roberto da casa

text:
"Federico Luciani" <
fluc...@sitocomune.com
> ha scritto nel messaggio
news:3DD518D0...@sitocomune.com...
> Claudio wrote:
> > Per un cliente ho dovuto realizzare una piccola funzione per ottenere
> > delle statistiche sulle mail inviate, e per provarla l'ho fatta girare
> > sui messaggi dell'ultimo mese transitati per icaa. Ecco i risultati :-)
> > Vi consiglio un font non proporzionale...
> >
> > Nome                       Messaggi   Linee
> > Roberto da casa                 393  17.418
> > Antonio Biso                    363   8.166 di monnezza ;)
Ti approfitti perché è in vacanza e non ti può rispondere! :-)
> --
> Federico
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------


title: OT: Statistiche

text:
"Claudio" <c...@NOSPAMandCOsupereva.it> ha scritto nel messaggio
> Fri, 15 Nov 2002 16:21:54 GMT, Sib ha scritto ben 45 righe per dire:
>
> >"Claudio" <c...@NOSPAMandCOsupereva.it> ha scritto nel messaggio
> >> Per un cliente ho dovuto realizzare una piccola funzione per ottenere
> >> delle statistiche sulle mail inviate, e per provarla l'ho fatta girare
> >> sui messaggi dell'ultimo mese transitati per icaa. Ecco i risultati :-)
> >
> >Molto simpatico.
> >io proporrei di postarlo mensilmente.
> >Che routine hai fatto?
>
> Ti ringrazio :-)
> Il programma, invero molto semplice, l'ho scritto in awk (mio vecchio
> grande amore), che per queste cose ritengo sia il più adatto (quindi
> sono doppiamente OT).
non conosco awk, cos'e'?
> Sarei un po' timoroso invece sul fatto di postarlo periodicamente... non
> vorrei che venisse preso come una "gara", per cui aumenterebbe il numero
> di post "inutili" soltanto per conquistarsi una "buona posizione"...
> Sono perplesso...
Figurati.
Intanto dicevo cosi' per dire.
Poi non credo che potrebbe nascere una gara, chi scrive lo fa perche' vuole
rispondere o domandare e dubito che si possa essere influenzati da una
classifica di qualunque tipo.
Ciao
Sib


title: OT: Statistiche

text:
Roberto da casa wrote:
>
> "Federico Luciani" <
fluc...@sitocomune.com
> ha scritto nel messaggio
> news:3DD518D0...@sitocomune.com...
> > Claudio wrote:
> > > Per un cliente ho dovuto realizzare una piccola funzione per ottenere
> > > delle statistiche sulle mail inviate, e per provarla l'ho fatta girare
> > > sui messaggi dell'ultimo mese transitati per icaa. Ecco i risultati :-)
> > > Vi consiglio un font non proporzionale...
> > >
> > > Nome                       Messaggi   Linee
> > > Roberto da casa                 393  17.418
> > > Antonio Biso                    363   8.166 di monnezza ;)
>
> Ti approfitti perché è in vacanza e non ti può rispondere! :-)
quando i gatti dormono i topi ballano?
.. figurati ..
il buon Biso..
ogni tanto sento la mancanza dei botta-risposta di qualche anno fa
con Stefano, Antonio, Luca, etc..
--
Federico
----------------------------------
Rimuovi paperino. per e-mail
----------------------------------
Tutte le richieste che arrivano
in privato, vengono cestinate.
----------------------------------
Sito Comune di it.comp.appl.access
http://www.sitocomune.com
mailto:
webm...@sitocomune.com
----------------------------------


title: OT: Statistiche

text:
Fri, 15 Nov 2002 17:03:17 GMT, Sib ha scritto ben 35 righe per dire:
>"Claudio" <c...@NOSPAMandCOsupereva.it> ha scritto nel messaggio
>> Fri, 15 Nov 2002 16:21:54 GMT, Sib ha scritto ben 45 righe per dire:
>> >Che routine hai fatto?
>>
>> Ti ringrazio :-)
>> Il programma, invero molto semplice, l'ho scritto in awk (mio vecchio
>> grande amore), che per queste cose ritengo sia il più adatto (quindi
>> sono doppiamente OT).
>
>non conosco awk, cos'e'?
Awk è un "complete pattern scanning and processing language".
Sostanzialmente accetta in input un file di testo e consente, riga per
riga, di intraprendere delle azioni quando si verifica una particolare
condizione, tipicamente la corrispondenza di un'espressione regolare.
In realtà è anche di per se stesso un linguaggio di programmazione
"c-like" a tutti gli effetti, tanto che può essere utilizzato anche per
fare cose che non c'entrano nulla con i testi. Ma per elaborare i testi
è una vera forza :-)
E' estremamente noto in ambienti Unix, e fortunatamente ne esistono
versioni anche per Windows/DOS.
>
>> Sarei un po' timoroso invece sul fatto di postarlo periodicamente... non
>> vorrei che venisse preso come una "gara", per cui aumenterebbe il numero
>> di post "inutili" soltanto per conquistarsi una "buona posizione"...
>> Sono perplesso...
>
>Figurati.
>Intanto dicevo cosi' per dire.
>Poi non credo che potrebbe nascere una gara, chi scrive lo fa perche' vuole
>rispondere o domandare e dubito che si possa essere influenzati da una
>classifica di qualunque tipo.
Probabilmente hai ragione. Peraltro il "vecchio"* Federico ha detto di
non preoccuparmi :-)
* Vecchio: [agg.] che ha lunga pratica ed esperienza: un vecchio lupo di
mare; essere vecchio del mestiere. [s. m.] persona che svolge un dato
lavoro da lungo tempo, o che ha notevole anzianità in un servizio: i
vecchi del mestiere, dell'azienda, del reggimento (Garzanti)
Ciao. Claudio.


title: OT: Statistiche

text:
Claudio wrote:
> [cut]
> Probabilmente hai ragione. Peraltro il "vecchio"* Federico ha detto di
> non preoccuparmi :-)
>
> * Vecchio: [agg.] che ha lunga pratica ed esperienza: un vecchio lupo di
> mare; essere vecchio del mestiere. [s. m.] persona che svolge un dato
> lavoro da lungo tempo, o che ha notevole anzianità in un servizio: i
> vecchi del mestiere, dell'azienda, del reggimento (Garzanti)
rotfl!
cmq, non esageriamo ;)



title: OT: Statistiche

text:
"Federico Luciani" <
fluc...@sitocomune.com
> ha scritto nel messaggio
news:3DD52F5F...@sitocomune.com...
[CUT]
>
> quando i gatti dormono i topi ballano?
>
> .. figurati ..
> il buon Biso..
>
> ogni tanto sento la mancanza dei botta-risposta di qualche anno fa
> con Stefano, Antonio, Luca, etc..
>
> --
> Federico
>
Io quelli con Stefano me li sono persi tutti. :-(
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------


title: OT: Statistiche

text:
"Sib" <si...@SPAMiol.it> ha scritto nel messaggio
news:Ca9B9.18315$Yw.7...@news2.tin.it...
[CUT]
>
> Molto simpatico.
> io proporrei di postarlo mensilmente.
Se ti interessa, insieme ad altri dati statistici di questo NG,  puoi
consultare questa statistica su questo link:
http://newsstat.musicoff.com/it.comp.appl.access/index.html
> Che routine hai fatto?
>
> Sib
--



title: OT: Statistiche

text:
Roberto da casa wrote:
> "Federico Luciani" <
fluc...@sitocomune.com
> ha scritto nel messaggio
> news:3DD52F5F...@sitocomune.com...
> [CUT]
>
> >
> > quando i gatti dormono i topi ballano?
> >
> > .. figurati ..
> > il buon Biso..
> >
> > ogni tanto sento la mancanza dei botta-risposta di qualche anno fa
> > con Stefano, Antonio, Luca, etc..
> >
> > --
> > Federico
> >
>
> Io quelli con Stefano me li sono persi tutti. :-(
se vuoi ti mando 2-3 annate di icda ;-)
--
Federico
----------------------------------
Rimuovi paperino. per e-mail
----------------------------------
Tutte le richieste che arrivano
in privato, vengono cestinate.
----------------------------------
Sito Comune di it.comp.appl.access
http://www.sitocomune.com
mailto:
webm...@sitocomune.com
----------------------------------


title: OT: Statistiche

text:
"Claudio" <c...@NOSPAMandCOsupereva.it> ha scritto nel messaggio
> Fri, 15 Nov 2002 17:03:17 GMT, Sib ha scritto ben 35 righe per dire:
cut
> >non conosco awk, cos'e'?
>
> Awk è un "complete pattern scanning and processing language".
> Sostanzialmente accetta in input un file di testo e consente, riga per
> riga, di intraprendere delle azioni quando si verifica una particolare
> condizione, tipicamente la corrispondenza di un'espressione regolare.
> In realtà è anche di per se stesso un linguaggio di programmazione
> "c-like" a tutti gli effetti, tanto che può essere utilizzato anche per
> fare cose che non c'entrano nulla con i testi. Ma per elaborare i testi
> è una vera forza :-)
> E' estremamente noto in ambienti Unix, e fortunatamente ne esistono
> versioni anche per Windows/DOS.
e' un free o si paga?
esiste una versione di prova?
e' un linguaggio vecchio o e' ancora in auge?
Ciao
Sib


title: OT: Statistiche

author: oizirbaF

text:
On Fri, 15 Nov 2002 16:44:16 GMT, Claudio <c...@NOSPAMandCOsupereva.it>
wrote:

Sono daccordo, vedi come si è posizionato un certo imbecille :
oizirbaF.
E' carina come cosa ( se vi interessa c'è
http://newsstat.musicoff.com/
) , ma non ha nessuna attinenza con il
reale stato delle cose, è meglio lasciar perdere.
Mi vergogno un po' ad essere sincero, mi limiterò adesso che ho visto
la statistica.
Ciao. Fabrizio.
(Access XP (sp2), Win ME, P4 1Ghz, 320 RAM)


title: OT: Statistiche

text:
Fri, 15 Nov 2002 18:05:54 GMT, Roberto da casa ha scritto ben 26 righe
per dire:
>Se ti interessa, insieme ad altri dati statistici di questo NG,  puoi
>consultare questa statistica su questo link:
>
>
http://newsstat.musicoff.com/it.comp.appl.access/index.html
Notevole. Grazie per la segnalazione. Dovevo farmi dare la routine da
chi gestisce questo sito :-)
Ciao. Claudio


title: OT: Statistiche

text:
Fri, 15 Nov 2002 20:44:03 GMT, Sib ha scritto ben 25 righe per dire:
>"Claudio" <c...@NOSPAMandCOsupereva.it> ha scritto nel messaggio
>> Fri, 15 Nov 2002 17:03:17 GMT, Sib ha scritto ben 35 righe per dire:
>cut
>> >non conosco awk, cos'e'?
>>
>> Awk č un "complete pattern scanning and processing language".
...
>e' un free o si paga?
Credo esista solo in versione rigorosamente free.
>esiste una versione di prova?
Vedi sopra. Fai una ricerca e lo troverai dappertutto.
Per lo piů lo troverai denominato gawk, la versione GNU di awk.
>e' un linguaggio vecchio o e' ancora in auge?
Prova a chiederlo ad un utente Unix :-)
A parte tutto... fai una ricerca e valuta i risultati.
>Ciao
Ciao. Claudio.


title: OT: Statistiche

author: Emyr

text:
On Fri, 15 Nov 2002 16:07:45 GMT,
kk...@kksrl.com
 (MA) wrote:
> Emyr 149 3.012
>
>Emyr al 6° posto??
>
>Ma se scrive mezza riga di risposta alla volta???
>
>Risponde bene, per amor di Dio, ma è così tirchio di inchiostro...!?!
>scrive con frasi da codice fiscale...
>
>;-P
e pensa che tempo fa ero arrivato 2°
(tengo tante cose da fare e purtroppo voglio dormire 8 ore al giorno)
Saluti.
Emanuele.


title: OT: Statistiche

text:
On Fri, 15 Nov 2002 16:44:16 GMT, Claudio <c...@NOSPAMandCOsupereva.it>
wrote:
>Sarei un po' timoroso invece sul fatto di postarlo periodicamente... non
>vorrei che venisse preso come una "gara", per cui aumenterebbe il numero
>di post "inutili" soltanto per conquistarsi una "buona posizione"...
la persona saggia si fa riconoscere....
Saluti.
Emanuele.


title: OT: Statistiche

author: Lorenzo Coronati

text:
Scrisse Claudio <c...@NOSPAMandCOsupereva.it>:
>Sarei un po' timoroso invece sul fatto di postarlo periodicamente... non
>vorrei che venisse preso come una "gara", per cui aumenterebbe il numero
>di post "inutili" soltanto per conquistarsi una "buona posizione"...
eh eh eh
quanti ricordi spumosi :-)
--
lorenzo coronati
---


title: inserire uno stream in OLE

author: RoBog

text:
Ho un file c:\pippo.xls   e voglio memorizzarlo in una tabella access con
colonna tipo oggetto OLE
Il tutto  in un codice ASP
creo un oggetto ADODB.stream e ci inserisco il file
set ADODBstream= CreateObject("ADODB.Stream")
ADODBstream.Type = 1       (tipo dati binario)
ADODBstream.open
ADODBstream.loadfrom file "c:\pippo.xls"
a questo punto cerco di inserire lo stream nela tabella
SQL=" update TABELLA set  colonnaOLE= "& ADODBstream.read(-1) &" where ..."
esegui sql
purtroppo mi viene detto "tipo non corrispondente" :-(
Suggerimenti?


title: con myodbc l'attributo primary key dei campi scompare!!!

author: Emiliano

text:
utilizzando myodbc passando da access a mysql l'attributi primary key dei
campi scompare!!!
ho gia settato il flag "return matching rows" ed ho linkato tutte le tabelle
al driver myodbc...
collegandomi al db in mysql e facendo describe nometabella le primarykey non
sono segnate...
perche'?
grazie
Emiliano


author: Sandro

text:
Il 28 Apr 2003, 14:48, "Emiliano" <
emi...@tiscalinet.it
> ha scritto:
> utilizzando myodbc passando da access a mysql l'attributi primary key dei
> campi scompare!!!
Non so. Credo che sia un problema del drive ODBC 3.5 (con il 2.5 alcuni
campi venivano rimappati male nell'esportazione delle tabelle).
BTW, se ti crei "a mano" le chiavi su MySQL e relinki le tabelle ad access,
allore tutto tornerà normale, con la finestra di struttura di Access che ti
visualizzarà la chiave primaria in modo corretto.
Ciao, Sandro.
--------------------------------
Inviato via
http://usenet.libero.it


text:
Il problema e' che vorrei utilizzare mysql non access!!! sai, vedere il mio
caro db in access che aumenta di dimensioni esponenzialmente col tempo che
passa e notando la generazione random di record con valori simili ad un
overflow per poi utilizzare il tutto per la mia tesi...
;)
grazie!
Emiliano
"Sandro" <
sandro...@yahoo.com
> ha scritto nel messaggio
news:212Z210Z230Z116Y...@usenet.libero.it...



author: Alessandro Cara

text:
Emiliano ha scritto:
>
> Il problema e' che vorrei utilizzare mysql non access!!! sai, vedere il mio
> caro db in access che aumenta di dimensioni esponenzialmente col tempo che
> passa e notando la generazione random di record con valori simili ad un
> overflow per poi utilizzare il tutto per la mia tesi...
> ;)
> grazie!
> Emiliano
per favore rispondi dopo il quoting.
Al di la' dell'uso di mysql.
Con access perche' ogni tanto non provi a compattare il db?
E poi. Mi sembra strano che la "parte dati" di access aumenti
"smisuratamente". L'aumento lo ottieni poiche' ogni volta che
cambi anche una "virgola" sui moduli attivi (maschere, forms, etc...)
access riscrive (e ricompila) su spazi nuovi creando parecchio
"garbage" (monnezza) che viene spazzata via solo in fase di
compattamento.
Questo solo per la precisione. (come sosteneva, non pereira, ma
un figurante televisivo)
E sempre per la precisione l'aumento "non" e' esponenziale ma "lineare
doppio" ;<)
[cut]
--
a.cara
togli qualcosa dall'email


text:
Il 29 Apr 2003, 08:22, "Emiliano" <
emi...@tiscalinet.it
> ha scritto:
> Il problema e' che vorrei utilizzare mysql non access!!!
Ma si, l'avevo capito :-)
Una volta che hai esportato su MySQL tutte le tabelle, ti sei definito a
mano le chiavi, allora puoi rimuovere da Access le tabelle e "collegare" con
odbc Access alle tabelle sul server MySQL. Di fatto, Access continuerà ad
essere una sovrastruttura poggiata su odbc e, in ultimo, su MySQL, smettendo
di essere lui il contenitore fisico dei dati.



text:
"Alessandro Cara" <
alexqu...@blunet.it
> ha scritto nel messaggio
news:3EAE2454...@blunet.it...
>
> per favore rispondi dopo il quoting.
! ok ;)
> Al di la' dell'uso di mysql.
> Con access perche' ogni tanto non provi a compattare il db?
e' divenuta routine per me creare un nuovo db e riimportare in toto il
vecchio :)
> E sempre per la precisione l'aumento "non" e' esponenziale ma "lineare
> doppio" ;<)
Hai ragione :)
Emiliano


text:
le tabelle che avevo in access le ho esportate sul myodbc,
ho cancellato quelle vecchie su access e ho linkato su access le tabelle che
avevo inserito su myodbc, ho ridefinito le chiavi e... ...non e' servito a
niente :(, quando faccio describe su mysql sulla tablella creata su myodbc
l'attributo key di tutti i campi e' null,
esiste un altro modo che non siano i driver my odbc per leggere da access se
un campo e' primarykey o meno?,lo dovrei fare da una pagina jsp...
Grazie
Emiliano
"Sandro" <
sandro...@yahoo.com
> ha scritto nel messaggio
news:212Z210Z230Z116Y...@usenet.libero.it...



title: Creazione infinita di record

author: Catlory

text:
Dopo aver risolto il problema della creazione automatica di record
grazie a Sergio mazza ed altri,mi è sorto un altro guaio:se x caso si
modifica qualcosa nella maschera da dove prendo i dati per le rate del
leasing,anche non attinente al pagamento,mi crea di nuovo i record che
avevo già creato prima.Esiste un modo per evitare ciò?mi hanno
suggerito di creare una tabella in cui registrare le occorrenze  e poi
verificare se sono già presenti.Grazie a tutti


title: Creazione infinita di record

author: Sergio MAZZA

text:
"Catlory" <
cat...@libero.it
> ha scritto nel messaggio news:1120639931.5...@z14g2000cwz.googlegroups.com...

[risposta]
Dovrai associare il leasing alle rate generate:
es.
tabella_leasing:
- id, contatore, univoco;
- (dati leasing);
tabella_rate_leasing:
- id_leasing, numerico, intero lungo;
- rata1;
- rata2;
- rata3;
(etc. etc.)
Ossia alla routine che genera le rate devi inserire anche la scrittura dell'identificativo del leasing, così la prossima volta che
devi modificare le rate di QUEL leasing inserirai una condizione Where id_leasing = forms!id_leasing
Me so' capito?
Ciao.
--
Sergio MAZZA


title: Creazione infinita di record

text: Merci!


title: marigini di pagina

author: Hellas

text: come si posso tenere fissi i margini di pagina da VBA?


title: marigini di pagina

author: Alex

text:
"Hellas" <
torot...@tiscalinet.it
> wrote in message
news:9tufml$k7k$1...@pegasus.tiscalinet.it...
> come si posso tenere fissi i margini di pagina da VBA?
Se ti riferisci ai Report una volta che li imposti sono fissi, viene
memorizzata
la Pagina cosě come č settata compresi margini e Verticale/Orizz....
@Alex
--
Posted from  [62.98.24.62]
via Mailgate.ORG Server -
http://www.Mailgate.ORG


title: marigini di pagina

text:
> Se ti riferisci ai Report una volta che li imposti sono fissi, viene
> memorizzata
> la Pagina così come è settata compresi margini e Verticale/Orizz....
ma se ho report con margini diversi?
grazie


title: marigini di pagina

text:
"Hellas" <
torot...@tiscalinet.it
> wrote in message
news:cHIM7.185103$sq5.8...@news.infostrada.it...
> ma se ho report con margini diversi?
> grazie
Ma hai provato..??????????
@Alex
--
Posted from  [146.133.1.30]



title: Diminuire la complessità di una query

text:
Per creare un Report che mettesse insieme informazioni di natura molto
differente ho dovuto creare un castello di query che si risolve, allo step
finale, con una query costituita da altre 8 legate da join quadrupli. Ora
quast'ultima è di una lentezza disarmante, e non può che peggiorare
all'aumentare dei dati immessi. Mi sono accorto, però, che l'elemento
critico è proprio nei join: le query del penultimo step, se eseguite
singolarmente non richiedono tempi enormi.
Secondo voi, se io diminuissi la complessità a scapito del numero degli step
successivi, otterrei dei benefici? Mi spiego meglio: se invece di mettere
insieme 8 query in un colpo solo, io ne mettessi insieme 2; ciò che ottengo
lo metto insieme ad una 3a query; il risultato insieme ad una 4a e così via.
Farei molti più passaggi ma molto più semplici.
Secondo voi cosa otterrei?
--------------------------------
Inviato via
http://arianna.libero.it/usenet/


title: Diminuire la complessità di una query

author: maestro

text:
P@olo ha scritto:

certamente otteresti dei benefici,  considerei anche l'idea di creare
una tabella di appoggio che si genera con questa query, quindi la nuova
query parte da questa tabella.


title: Diminuire la complessità di una query

author: VT @ home

text:
Il Wed, 26 Mar 2008 15:46:07 GMT,
paolodamo...@tim.it
 (P@olo) ha scritto:
>(.....)

Difficile, se non impossibile, rispondere senza avere informazioni dettagliate
sulla struttura delle tabelle e del risultato che vuoi ottenere nel report.
>
>--------------------------------
>Inviato via
http://arianna.libero.it/usenet/
Vincenzo Turturro
Certificato Eucip Core Level
ITA 0000-002299 del 14/05/2007
---------------------------------------------
il sito comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------
risorse Access:
http://www.accessgroup.it
---------------------------------------------
Il sito comune di it.comp.as400
http://www.faq400.com
---------------------------------------------


title: Diminuire la complessità di una query

author: Pablitomf

text:
> Secondo voi cosa otterrei?
dovresti postare struttura tabelle usate, query effettuate, join usati e
scopi di output per poter dire qualcosa in più di Bhò!


title: Diminuire la complessità di una query

text:
>
> Difficile, se non impossibile, rispondere senza avere informazioni
dettagliate
> sulla struttura delle tabelle e del risultato che vuoi ottenere nel
report.
>
Hai assolutamente ragione, ma la cosa sarebbe un po' troppo complicata. MI
bastava capire se concettualmente la cosa poteva avere un senso....
Grazie!



title: Diminuire la complessità di una query

author: Mario De Ghetto

text:

Io normalmente procedo proprio così, cioè: quando un report o comunque
un risultato mi richiede una catena troppo lunga di query e molti
join, creo delle tabelle di appoggio nelle quali memorizzare i
risultati parziali e poi creo una procedura che esegua automaticamente
tutta la sequenza di query necessarie (svuota tabella di appoggio,
accoda la selezione iniziale, svuota tabella di appoggio 2, accoda
un'estrazione ecc.), fino ad arrivare a una tabella di appoggio finale
che sarà la fonte di un report o di una query di selezione finale.
---------------------------------------------------
Mario De Ghetto
sito Internet:
http://www.deghetto.it
blog VB & .NET:
http://deghetto.wordpress.com/
blog MS Office:
http://deghetto2.wordpress.com/
forum
http://deghetto.forumattivo.com


title: Diminuire la complessità di una query

author: Marco Pizzamiglio

text:
P@olo ha scritto:

Usa il metodo empirico: visto che tu stesso hai proposto una possibile
soluzione provala e poi facci sapere com'è andata.
Sicuramente un corretto uso di indici e chiavi primarie nelle tabelle può
aumentare la velocità di esecuzione delle varie query.
Ciao.
-Marco-
--
questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news
 segnala gli abusi ad
ab...@newsland.it


title: Tabella collegata

author: liones

text:
tabella collegata con fiore di testo: é possibile leggere e/o
 modificare le specifiche di collegamento? (Non salvate con
 nome)

Se la tabella è stata collegata con specifiche salvate con nome è
 possibile leggere il nome delle specifiche?

--
Liones


title: Tabella collegata

text:
Ho provato a spremere le meningi, cosa per me assai improbabile, ma non ho capito nulla, soprattutto la parte del "fiore di testo" che mi ha proprio messo KO.

Cosa sono per le le Specifiche di Collegamento ...?

In Access esiste:
1) Stringa di Connessione per Linkare/Collegare una Tabella al Database
2) Specifiche di Importazione/Esportazione dati

Tu a quale delle 2 opzioni ti riferisci...?

@Alex


title: Tabella collegata

author: Bruno Campanini

text:
liones explained on 25-01-20 :

Guarda se ti può servire questo giochino fatto anni fa:

https://1drv.ms/u/s!AvTaMfd5-b2oyGMM-iNujkskYJVO?e=uzjFhG

Bruno


title: Tabella collegata

text:
In Access esiste:2) Specifiche di Importazione/Esportazione dati

La 2

Praticamente ho collegato una tabella riportando che un campo era
 un intero ora devo modificarlo e 'dichiararlo' a precisione
 singola

--
Liones


title: Tabella collegata

text:
tabella collegata con file di testo:

.CSV separato da ;


title: Tabella collegata

text:
Ci sono 2 Tabelle di Sistema quando si gestiscono le SPECIFICHE, puoi interagire direttamente li...

MSysIMEXSpecs
MSysIMEXColumns

Relazionate 1-M

@Alex


title: Aiutoooooooooo

author: David

text:
 Ho un file access.mde  e vorrei estrarre i report e le varie macro interne,
 come posso fare.
 Creando un nuovo database ad importare query e tabelle ma zero assoluto per
 i report e le macro.
 Visto che devo modificare alcun report esiste qualche utility che mi
 permetta di fare questo??
 ciao e grazie a tutti


title: Aiutoooooooooo

author: RoDAgo

text:
"David" ha scritto nel messaggio ...

Nun sč pň fŕ.
RoDAgo


title: Aiutoooooooooo

author: Micio

text:
Un file .mde è praticamente un file .mdb "pseudocompilato"
nel quale trovi tabelle e query ma non trovi nessun altro oggetto
modificabile. Quindi non è possibile estrarre gli oggetti che
volevi.
Micio
David <
davi...@yahoo.it
> wrote in message 8op565$fom$1...@nslave2.tin.it...



title: operazioni con "ore/minuti"

author: arcano

text:
Ciao a tutti.
Devo fare operazioni con valori in ore e minuti. Specialmente nelle
differenze negative come devo fare per far apparire il segno meno
davanti al valore espresso in ore minuti?
Grazie anticipatamente


title: operazioni con "ore/minuti"

author: Roberto dal portatile

text:
"arcano" <
61si...@libero.it
> ha scritto nel messaggio
news:1152975952....@b28g2000cwb.googlegroups.com...
> Ciao a tutti.
> Devo fare operazioni con valori in ore e minuti. Specialmente nelle
> differenze negative come devo fare per far apparire il segno meno
> davanti al valore espresso in ore minuti?
Se i valori orari con i quali fai la dififferenza sono contenuti in campi o
variabili di tipo Data/ora, imposta il formato del campo calcolato (se stai
operando in una query) o del controllo calcolato (se stai operando in una
maschera o in un report) che contiene il risultato della sottrazione nel
seuente modo;
hh:nn; -hh:nn
Se poi oltre al meno davanti il valore negativo lo vuoi visualizzare in
rosso, nel formato scrivi:
hh:nn; -hh:nn[Rosso]
> Grazie anticipatamente
Prego
--
Roberto
-----------------------------------------------
il Sito Comune di it.comp.appl.access
http://www.sitocomune.com
-----------------------------------------------


title: form con controlli dinamici

author: Maurizio Miozzo

text:
buonasera a tutti
A2003+win XP
ho realizzato,anche grazie a vostri spunti ed aiuti,un programmino che serve
per evadere le comande per la sagra paesana.
Vorrei ora modificare la form che uso per gli ordini e realizzarne una con
dei pulsanti che una volta premuti mi inseriscano la pietanza nella lista
apposita.
La vorrei realizzare in modo che fosse il più dinamica possibile per cui se
nel listino ho 3 tipi di primi vorrei visualizzare 3 pulsanti con le
relative descrizioni e colore tasto associato al tipo di pietanza.
Se ho 5 contorni visualizzare 5 pulsanti e così di seguito per gli altri
tipi di pietanze.
Naturalmente ho una tabella TipiPietanze e un'altra tabella Pietanze
La form verrebbe formattata alla pressione del tasto relativo al tipo
pietanza.
Ho dato un occhiata in giro su internet e da quello che ho capito dovrei
avere un array di controlli e lavorarci sopra.
E' giusto come sistema per gestire la cosa ?
Altrimenti come posso fare ?
Qualche esempio ?
Spero di essermi spiegato bene ,altrimenti scusatemi per l'esposizione non
proprio corretta
Grazie
Maurizio


title: form con controlli dinamici

author: Carlo Costarella

text:
"Maurizio Miozzo" <
maurizio...@tin.it
> ha scritto nel messaggio
news:4e98be06$0$1388$4faf...@reader1.news.tin.it...
> buonasera a tutti
> A2003+win XP
> ho realizzato,anche grazie a vostri spunti ed aiuti,un programmino che
> serve per evadere le comande per la sagra paesana.
> Vorrei ora modificare la form che uso per gli ordini e realizzarne una con
> dei pulsanti che una volta premuti mi inseriscano la pietanza nella lista
> apposita.
> La vorrei realizzare in modo che fosse il piů dinamica possibile per cui
> se nel listino ho 3 tipi di primi vorrei visualizzare 3 pulsanti con le
> relative descrizioni e colore tasto associato al tipo di pietanza.
> Se ho 5 contorni visualizzare 5 pulsanti e cosě di seguito per gli altri
> tipi di pietanze.
> Naturalmente ho una tabella TipiPietanze e un'altra tabella Pietanze
> La form verrebbe formattata alla pressione del tasto relativo al tipo
> pietanza.
> Ho dato un occhiata in giro su internet e da quello che ho capito dovrei
> avere un array di controlli e lavorarci sopra.
> E' giusto come sistema per gestire la cosa ?
> Altrimenti come posso fare ?
> Qualche esempio ?
> Spero di essermi spiegato bene ,altrimenti scusatemi per l'esposizione non
> proprio corretta
> Grazie
> Maurizio
>
In Access non esistono gli array di controlli ma puoi usare il gruppo di
opzioni formattato con i pulsanti.
Questi verrebbero attivati o disattivati dinamicamente a seconda della
pietanza o tipo.
C'č da scrivere un po' di codice ma alla fine dovrebbe essere fattibile.

Ciao, Carlo


title: form con controlli dinamici

author: MA

text:
"Maurizio Miozzo"  ha scritto nel messaggio
news:4e98be06$0$1388$4faf...@reader1.news.tin.it...

__________________________risposta:
su
www.accessgroup.it
 c'è un esempio di touchscreen che può servirti
MA


title: OT : query per turni turni a scuola

author: Pawn

text:
Ciao,
scusate l'OT ,
mi date una mano con questo rompicapo :
se in una scuola ci sono :
18 aule
23 classi
come si fa ad organizzare in modo che in una o due settimane tutte le classi
frequantano lo stesso numero di lezioni ?
L' orario scolastico è organizzato dal lunedi al sabato.
E' possibile in una query o in Excel ?
grazie.


title: OT : query per turni turni a scuola

text:
"Pawn" <
pa...@tin.it
> ha scritto nel messaggio
news:4222e...@x-privat.org...

E' necessario costruire un algoritmo ma credo con variabili a cui non hai
fatto cenno.
Ore di lezione per classe, Intervalli, Mattina-Pomeriggio, durata singola
lezione, calcolo dello spostamento alunni per ginnastica in palestre lontane
dalle aule, periodi festivi, feste patronali, supplenze, disponibilità degli
insegnanti ecc.
Sono molte le variabili da tenere in consederazione ma vanno elencate e
quantizzate tutte.
Ciao, Carlo


title: OT : query per turni turni a scuola

text:
"Carlo Costarella" <
carloantonioco...@virgilio.it
> ha scritto nel
messaggio news:NnCUd.975398$35.36...@news4.tin.it...

    fa nulla pensavo fosse più facile :)
    grazie !
    ciao !


title: OT : query per turni turni a scuola

author: Giacomo Ciani

text:
Non sapendo bene come descrivere il mi problema con poche parole
"chiave", non saprei come cominciare una ricerca nè qui nè sul sito
comune: accetto quindi ben volentieri anche dei semplici rimandi a
discussioni passate o a parti del sito comune che trattino una
problematica simile...
Cerchero di essere chiaro e sintetico (anche se non sarà facile): ho una
tabella "ordini", una tabella "clienti", una tabella "articoli" e una
tabella "dettaglio articoli" che mi permette di associare più articoli a
un certo ordine. Fin qui nessun problema: una maschera per gli ordini
(che ha come origine dati una query con inner join fra ordine e clienti)
con una sottomaschera che elenca gli articoli relativi al singolo
ordine... La spiegazione è un po' sommaria ma immagino sia una
situazione talmente comune da non dover essere ulteriormente
specificata.
Adesso passiamo al problema: i prezzi: il prezzo di un articolo non è
fissato, ma dipende dall'ordine in cui tale articolo compare. Ad ogni
ordine è associato un listino dal quale vanno presi i prezzi relativi ai
singoli articoli. A questo scopo esistono altre due tabelle: "listini" e
"dettaglio listini"; nella prima ci sono i campi "nome listino" e
"codice listino", mentre nella seconda sono presenti i campi "codice
articolo", "codice listino" e "prezzo" (i primi due campi costituiscono,
insieme, una chiave primaria così che ci sia un solo prezzo per ogni
coppia articolo-listino).
A questo punto ecco ciò che vorrei (e non mi riesce) fare: per ogni
record della sottomaschera dovrebbe esserci un campo "prezzo" il cui
contenuto viene determinato cercando nella tabella "dettagli listini" il
codice articolo di quel particolare record della sottomaschera e il
codice listino associato all'ordine (che quindi si trova nella
maschera).
Avete qualche idea su come impostare la cosa? Ogni suggerimento o
rimando sarà graditissimo...
Grazie
Giacomo


title: OT : query per turni turni a scuola


title: OT : query per turni turni a scuola

author: Roberto da casa

text:
"Giacomo Ciani" <
giacomo.levaquestom...@inwind.it
> ha
scritto nel messaggio news:38glrcF...@individual.net...

Se la tabella Ordini ha una struttura simile a questa:
IdOrdine            Cintatore e chiave primaria
NumeroOrdine   Numerico
DataOrdine        Data/ora
CodiceListino     Numerico
ecc. ecc.
Se la tabella DettaglioOrdini ha una struttura simile a questa:
IdDettaglio            Contatore e chiave primaria
IdOrdine               Numerico
Codice Articolo    Numerico
Quantità                Numerico
ecc. ecc.
Se le tabelle Ordini e DettaglioOrdini sono tra di loro in relazione
uno-a-molti in base ai rispettivi campi IdOrdine.
Se la tabella tblArticolo_Listino ha la seguente struttura:
CodiceArticolo    Numerico e chiave primaria
CodiceListino      Numerico e chiave Primaria
Prezzo                 Valuta
Creati una query che abbia il seguente codice SQL:
SELECT OD.*, (SELECT Prezzo FROM tblArticolo_Listino As PR WHERE
PR.CodiceArticolo = OD.CodiceArticolo  AND PR.CodiceListino =
OD.CodiceListino;) AS Prezzo
FROM [SELECT DettaglioOrdini.*, Ordini.CodiceListino
FROM Ordini INNER JOIN DettaglioOrdini ON Ordini.IdOrdine =
DettaglioOrdini.IdOrdine;]. AS OD;
A questo punta usa questa query come origine record della sottomaschera al
posto della tabella DettaglioOrdini; questa query contiene gia un campo
Prezzo che quindi non dovrai calcolare nella sottomaschera che si limiterà a
visualizzare il prezzo contenuto nella query.
--
Roberto
-----------------------------------------------------
il Sito Comune di it.comp.appl.access
http://www.sitocomune.com
----------------------------------------------------


title: OT : query per turni turni a scuola

text:
"Giacomo Ciani" <
giacomo.levaquestom...@inwind.it
> ha
scritto nel messaggio news:38gltoF...@individual.net...

Se la tabella Ordini ha una struttura simile a questa:



title: OT : query per turni turni a scuola

text:
Sei stato gentilissimo e molto veloce... e pergiunta il tuo suggerimento
funziona a meraviglia!  :-)
...ma siccome non sono un acquila dell'SQL (anzi, sono proprio
ignorante) e mi piacerebbe capire cosa sto facendo (così magari la
prossima volta che ho un problema simile non vengo a rompervi le
scatole!), approfitterei ancora un attimo della tua pazienza...
Roberto da casa wrote:
> Se la tabella Ordini ha una struttura simile a questa:
>
>[CUT]
Esatto, la struttura del DB è quella che hai immaginato
> Creati una query che abbia il seguente codice SQL:
>
> SELECT OD.*, (SELECT Prezzo FROM tblArticolo_Listino As PR WHERE
> PR.CodiceArticolo = OD.CodiceArticolo  AND PR.CodiceListino =
> OD.CodiceListino;) AS Prezzo
> FROM [SELECT DettaglioOrdini.*, Ordini.CodiceListino
> FROM Ordini INNER JOIN DettaglioOrdini ON Ordini.IdOrdine =
> DettaglioOrdini.IdOrdine;]. AS OD;
Su questo vorrei un chiarimento, perchè non riesco a capire a fondo
quello che fa il codice che mi hai suggerito.
Credo che come prima cosa il codice crei un dataset (a cui assegna
l'alias OD) "aggiungendo" (passami il termine) ad ogni record del
"dettaglio ordini" anche il codice listino dell'ordine a cui quel record
si riferisce. In pratica è una copia della tabella "dettaglio ordini"
con un campo in più, il codice listino. Prime domande:
- Ho interpretato bene?
- Perchè la SELECT è racchiusa in parentesi quadre invece che tonde?
- A che serve il punto dopo la chiusura della parentesi quadra?
Ora poi cominciano i misteri veri (solo perchè evidentemente non so come
funziona SQL!). Appurato che ormai OD è stato "creato", dalla classica
sintassi di una select io mi sarei aspettato qualcosa del tipo
SELECT OD.*, X AS Prezzo FROM ...
dove "X" sarebbe stato il nome di un campo. Ma dalla tua query X è il
risultato di una select, qundi è un dataset... non capisco!
Seconda serie di domande:
- la select che ricava il prezzo viene evidentemente ripetuta per ogni
record di OD, ogni volta con i giusti valori di CodiceArticolo e
CodiceListino; non capisco però come questo sia espresso nella
sintassi... insomma, la domanda non è chiarissima, ma quello che sto
chiedendo, se possibile, è una spiegazione su come il motore del DB
interpreta le query così da chiarire perchè esegua la select una volta
per ogni record di OD... è forse una question e di ordine delle
operazioni? Sarebbe stata la stessa cosa se io avessi invertito "SELECT
Prezzo..." con "OD.*"?
- cosa succederebbe se non ci fosse la chiave primaria composta nella
tabella Articolo_listino, cioè se il risultato di quella select che
restituisce il prezzo fosse un dataset con più di un prezzo? Nel dataset
finale ci sarebbero i record di OD duplicati per ogni prezzo trovato?
Ti ringrazio fin da ora per la pazienza che (spero) dimostrerai fugando
i miei mille dubbi!
Ciao
Giacomo


title: OT : query per turni turni a scuola

text:
"Giacomo Ciani" <
giacomo.levaquestom...@inwind.it
> ha
scritto nel messaggio news:38joikF...@individual.net...
> Sei stato gentilissimo e molto veloce... e pergiunta il tuo suggerimento
> funziona a meraviglia!  :-)
>
> ...ma siccome non sono un acquila dell'SQL (anzi, sono proprio
> ignorante) e mi piacerebbe capire cosa sto facendo (così magari la
> prossima volta che ho un problema simile non vengo a rompervi le
> scatole!), approfitterei ancora un attimo della tua pazienza...
Cercherò nei limiti imposti dal NG di darti chiarimenti, ma ho dei seri
dubbi che tu possa rimanere soddisfatto delle mie spiegazioni se prima non
studierai almeno i fondamentali del linguaggio SQL, e tra questi cosa siano
e come si usano le subquery.
Comunque se ti fai una passeggiata nel Sito Comune (link qui sotto), nella
Sezione Queries, ci trovi tre nuove FAQ, relative all'ultimo aggiornamento,
che usano le subquery; di una è trattato passo-passo come è stata costruita.
>
> Roberto da casa wrote:
> > Se la tabella Ordini ha una struttura simile a questa:
> >
> >[CUT]
>
> Esatto, la struttura del DB è quella che hai immaginato
>
> > Creati una query che abbia il seguente codice SQL:
> >
> > SELECT OD.*, (SELECT Prezzo FROM tblArticolo_Listino As PR WHERE
> > PR.CodiceArticolo = OD.CodiceArticolo  AND PR.CodiceListino =
> > OD.CodiceListino;) AS Prezzo
> > FROM [SELECT DettaglioOrdini.*, Ordini.CodiceListino
> > FROM Ordini INNER JOIN DettaglioOrdini ON Ordini.IdOrdine =
> > DettaglioOrdini.IdOrdine;]. AS OD;
>
> Su questo vorrei un chiarimento, perchè non riesco a capire a fondo
> quello che fa il codice che mi hai suggerito.
> Credo che come prima cosa il codice crei un dataset (a cui assegna
> l'alias OD) "aggiungendo" (passami il termine) ad ogni record del
> "dettaglio ordini" anche il codice listino dell'ordine a cui quel record
> si riferisce. In pratica è una copia della tabella "dettaglio ordini"
> con un campo in più, il codice listino. Prime domande:
> - Ho interpretato bene?
Più o meno.
Il codice SQL che ti ho suggerito altro non è che una query principale che
contiene due subquery, ovvero si tratta di 3 queries compenetrate e che
interagiscono fra di loro. La prima subquery (quella chiusa tra parentesi
tonde) preleva il prezzo dalla tabella tblArticolo_Listino e quindi
rappresenta un campo calcolato della SELECT principale. La seconda subquery
(quella chiusa tra parentesi quadre) è inserita nella proposizione FROM e
come tale prende il nome anche di tabella derivata: come tu dici tale
subquery non fa nient'altro che aggiungere il codice listino ai dati della
tabella "dettaglio ordine".
> - Perchè la SELECT è racchiusa in parentesi quadre invece che tonde?
Almeno in Access 97, la sintassi prevede che una subquery inserita al
livello della proposizione FROM deve essere racchiusa tra parentesi quadre e
non tra parentesi tonde, in caso contrario viene segnalato errore formale
sulla proposizione FROM; non mi è mai interessato di sapere il perché di
questa regola sintattica: la conosco, la applico e del resto non è che me ne
importi molto.
> - A che serve il punto dopo la chiusura della parentesi quadra?
Anche il punto in questo caso fa parte della sintassi che serve a scrivere
una tabella derivata: scusami, ma che senso ha chiedersi il motivo per cui
esistono certe regole di sintassi?
La sintassi a mio avviso non si deve capire: la si studia e la si applica.
>
> Ora poi cominciano i misteri veri (solo perchè evidentemente non so come
> funziona SQL!). Appurato che ormai OD è stato "creato", dalla classica
> sintassi di una select io mi sarei aspettato qualcosa del tipo
>
> SELECT OD.*, X AS Prezzo FROM ...
>
> dove "X" sarebbe stato il nome di un campo. Ma dalla tua query X è il
> risultato di una select, qundi è un dataset... non capisco!
Scusami, ma in un campo di una SELECT (nel tuo caso X AS Prezzo) non puoi
far riferimento ad un campo che NON è contenuto nel recordset indicato nella
FROM; il recordset della proposizione FROM, come abbiamo scritto sopra, è
ottenuto con l'INNER JOIN delle tabella DettaglioOrdini e Ordini, nessuna
delle quali contiene il prezzo che è invece contenuto nella tabella
tblArticolo_Listino; come vedi sarebbe materialmente impossibile fare ciò
che tu dici.
> Seconda serie di domande:
> - la select che ricava il prezzo viene evidentemente ripetuta per ogni
> record di OD, ogni volta con i giusti valori di CodiceArticolo e
> CodiceListino;
Esatto.
> non capisco però come questo sia espresso nella
> sintassi... insomma, la domanda non è chiarissima, ma quello che sto
> chiedendo, se possibile, è una spiegazione su come il motore del DB
> interpreta le query così da chiarire perchè esegua la select una volta
> per ogni record di OD... è forse una question e di ordine delle
> operazioni? Sarebbe stata la stessa cosa se io avessi invertito "SELECT
> Prezzo..." con "OD.*"?
Se vuoi arrivare a capire come funziona la subquery che rileva il prezzo
prova a prenderla in considerazione a se stante e non nel contesto del
codice SQL complessivo; se lo farai ti accorgerai che tale codice
restituisce con la SELECT un solo campo Prezzo prelevato dalla tabella
tblArticolo_Listino, nel record per il quale il codice articolo ed il codice
listino coincidono a quelli del record corrente; visto che questi due campi
sono la chiave primaria della tabella tblArticolo_Listino la proposizione
WHERE scritta così restituirà un solo record, cosa indispensabile affinché
si possa usare una subquery come campo calcolato di una SELECT.
Quanto poi a capire come JET di Access valuti ed esegua una query è
veramente complesso spiegarlo ed onestamente sarei solo in grado di darti
delle spiegazioni molto sommarie. Puoi approfondire il discorso
acculturandoti un po' sullo SHOWPLAN di Access: a tale scopo vai sul Sito
Comune (link qui sotto) e nella Sezione General leggi la FAQ intitolata
"6.158 Cosa è lo SHOWPLAN di Access".
> - cosa succederebbe se non ci fosse la chiave primaria composta nella
> tabella Articolo_listino, cioè se il risultato di quella select che
> restituisce il prezzo fosse un dataset con più di un prezzo? Nel dataset
> finale ci sarebbero i record di OD duplicati per ogni prezzo trovato?
Se non ho capito male questa eventualità nel tuo caso non avrebbe
significato, ovvero non mi sembra possibile ipotizzare che per un articolo e
un listino possano esistere più di un prezzo; comunque Access verifica che
una subquery usata come campo calcolato di una SELECT sia costituita solo da
un campo e restituisca un solo record, in caso contrario ti segnala errore e
non ti permette di salvare la query.
>
> Ti ringrazio fin da ora per la pazienza che (spero) dimostrerai fugando
> i miei mille dubbi!
Io ho cercato in qualche modo di rispondere ai tuoi quesiti e, a parte la
chiarezza delle mie risposte, non credo che sarebbe logico fare di più in un
NG; a mio avviso sarebbe sbagliato scambiare il NG per un corso per
corrispondenza privato sul codice SQL.
>
> Ciao
>
> Giacomo
