author: Emyr

text:
On Tue, 09 Jul 2002 22:19:49 GMT, "@----- Pinco --@-- Pallino -----@"
<
tos...@libero.it
> wrote:
>
>"@----- Pinco --@-- Pallino -----@" <
tos...@libero.it
> ha scritto nel
>messaggio news:9MIW8.17820$7N3.3...@twister2.libero.it...
>> ho una form ed ho impostato la proprietŕ CONSENTI ELIMINAZIONI uguale a NO
>> la maschera e in visualizzazione maschre con tinue ed i selettori di
>record
>> sono visibili
>> e se seleziono un record e premo CANC me lo cancella lo stesso.
>>
>> perchč?????
>>
>> grazie.
>
>
>Fatto grazie!
>
>a chi serve č
>
>        IMG.ControlTipText =
>"C:\Programmi\InfoeWeb\castelcovus\foto\castelcovus.jpg"
>
>
e questo cosa c'entra?
Saluti.
Emanuele.


title: Ricerca nella maschera

author: MAU&SARA

text:
Ciao, ho trovato diversi articole nel sito sulla ricerca dei dati in una
maschera.....ma non riesco ad adattarli al mio database.
Vorrei sapere come impostare il codice, visto che avrei bisogno di creare
nella mia maschera delle Texbox per cercare anche più campi insieme e con il
criterio "contiene", e poi visualizzare la lista dei risultati, senza dover
utilizzare una casella di riepilogo, per avere la possibilità di
controllarli e modificarli.
Grazie mille.
Ciao ciao


title: Ricerca nella maschera

author: Ami

text:
On Mon, 29 Nov 2004 13:49:49 GMT, "MAU&SARA" <
maur...@tin.it
> wrote:
>Vorrei sapere come impostare il codice, visto che avrei bisogno di creare
>nella mia maschera delle Texbox per cercare anche più campi insieme e con il
>criterio "contiene", e poi visualizzare la lista dei risultati, senza dover
>utilizzare una casella di riepilogo, per avere la possibilità di
>controllarli e modificarli.
Mmmh, qualche settimana fa io avevo chiesto qualcosa di simile e alla fine sono
stata aiutata (molto!) a creare una maschera di ricerca ^_^
Se ti interessa qualcosa del genere prova a leggere questo thread:
http://tech-geeks.org/tiny.php?url=1603

Ciao
Ami
--
Per rispondermi... Togli "nospam"
To send me an email... take out "nospam"


title: altezza finestra dimensionabile via codice

author: ]SiLVieTTa[

text:
si possono forzare le dimensioni della finestra (della maschera, ad esempio) in
altezza?
quindi settare un valore via codice?
grazie
Ciao
Silvia.
 --
www.silvietta.it
...everyone's invited!
Non Esiste Una Razza Bianca, Benche' Se Ne Parli Tanto: Ogni Uomo Bianco E' Solamente Un Uomo Scolorito


author: sv

text:
]SiLVieTTa[ ha scritto:
> si possono forzare le dimensioni della finestra (della maschera, ad esempio)
in
> altezza?
> quindi settare un valore via codice?
> grazie
> Ciao
> Silvia.
>  --
>
www.silvietta.it
> ....everyone's invited!
> Non Esiste Una Razza Bianca, Benche' Se Ne Parli Tanto: Ogni Uomo Bianco E'
Solamente Un Uomo Scolorito
Se non sbaglio la proprietą "Height" si applica solo alle sezioni di una
maschera o report, mentre la "Width" alla maschera o report e non alle
sezioni.
--
rgrds
SC
--
questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news
 segnala gli abusi ad
ab...@newsland.it


text:
>Se non sbaglio la proprietą "Height" si applica solo alle sezioni di una
>maschera o report, mentre la "Width" alla maschera o report e non alle
>sezioni.
quindi la finestra non si potrebbe dimensionare in altezza??
Ciao
Silvia.
 --
www.silvietta.it



text:
]SiLVieTTa[ ha scritto:
> >Se non sbaglio la proprietą "Height" si applica solo alle sezioni di una
> >maschera o report, mentre la "Width" alla maschera o report e non alle
> >sezioni.
> quindi la finestra non si potrebbe dimensionare in altezza??
> Ciao
> Silvia.
Che io sappia solo il corpo della maschera in altezza.



text:
Thread ricco mi ci ficco: Il Thu, 08 Jan 2004 16:19:36 +0100,
salv...@nospbox.enel.it
 (sv) dopo averci riflettuto a lungo, ha scritto:
>Che io sappia solo il corpo della maschera in altezza.
allora non mi resta che sperare che qualcuno ti contraddica! ;-)



author: Roberto da casa

text:
"]SiLVieTTa[" <
silviaTOGLIQ...@studiomarketing.it
> ha scritto nel
messaggio news:6bqqvv4a269qgtgfp...@4ax.com...
> si possono forzare le dimensioni della finestra (della maschera, ad
esempio) in
> altezza?
> quindi settare un valore via codice?
>
> grazie
>
> Ciao
>
> Silvia.
>
Prova con il metodo MoveSize (vedi help).
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------


text:
Thread ricco mi ci ficco: Il Thu, 08 Jan 2004 15:27:38 GMT, "Roberto da casa"
<
r.ma...@libero.it
> dopo averci riflettuto a lungo, ha scritto:
>Prova con il metodo MoveSize (vedi help).
giиа provato: sposta la finestra, non la dimensiona :-(



text:
"]SiLVieTTa[" <
silviaTOGLIQ...@studiomarketing.it
> ha scritto nel
messaggio news:vcuqvv84p214ap7iv...@4ax.com...
> Thread ricco mi ci ficco: Il Thu, 08 Jan 2004 15:27:38 GMT, "Roberto da
casa"
> <
r.ma...@libero.it
> dopo averci riflettuto a lungo, ha scritto:
>
> >Prova con il metodo MoveSize (vedi help).
>
> giиа provato: sposta la finestra, non la dimensiona :-(
>
> Ciao
>
> Silvia.
>
Ti rammento che i parametri di MoveSize sono espressi in twips, che devi
impostare a no la proprietа Dimensioni automatiche e se non ricordo male non
funziona con le maschere popup.



text:
]SiLVieTTa[ ha scritto:
> Thread ricco mi ci ficco: Il Thu, 08 Jan 2004 16:19:36 +0100,
>
salv...@nospbox.enel.it
 (sv) dopo averci riflettuto a lungo, ha scritto:
> >Che io sappia solo il corpo della maschera in altezza.
> allora non mi resta che sperare che qualcuno ti contraddica! ;-)
> Ciao
> Silvia.
La speranza è sempre l'ultima .....Me lo auguro per te!



text:
Roberto da casa ha scritto:
> "]SiLVieTTa[" <
silviaTOGLIQ...@studiomarketing.it
> ha scritto nel
> messaggio news:vcuqvv84p214ap7iv...@4ax.com...
> > Thread ricco mi ci ficco: Il Thu, 08 Jan 2004 15:27:38 GMT, "Roberto da
> casa"
> > <
r.ma...@libero.it
> dopo averci riflettuto a lungo, ha scritto:
> >
> > >Prova con il metodo MoveSize (vedi help).
> >
> > gièà provato: sposta la finestra, non la dimensiona :-(
> >
> > Ciao
> >
> > Silvia.
> >
> Ti rammento che i parametri di MoveSize sono espressi in twips, che devi
> impostare a no la proprietà Dimensioni automatiche e se non ricordo male non
> funziona con le maschere popup.
Scusate se mi intrometto nella discussione :o)
premesso che io uso A2000:
1) Dovrebbe funzionare anche con le popup
2) Il codice dovrebbe essere
    DoCmd.MoveSize ,,,Altezza
Dove Altezza equivale all'altezza in twip, come ha detto Roberto
Ciaoooooooo
--
Dario
--
Il bello della vita è vivere:
molti esistono, ecco tutto.



text:
>Ti rammento che i parametri di MoveSize sono espressi in twips,
certamente
>impostare a no la proprietà Dimensioni automatiche e se non ricordo male non
>funziona con le maschere popup.
non so perchè con l'espressione:
movesize ,,,850 (ad esempio)
mi va SEMPRE  in crash access.
forse non può essere impostato in una SM?
e ad ogni modo, come posso impostarlo sulla maschera principale dalla SM?
grazie



text:
"]SiLVieTTa[" <
silviaTOGLIQ...@studiomarketing.it
> ha scritto nel
messaggio news:ch1tvv488bfhhs2du...@4ax.com...
> >Ti rammento che i parametri di MoveSize sono espressi in twips,
>
> certamente
>
>
> >impostare a no la proprietą Dimensioni automatiche e se non ricordo male
non
> >funziona con le maschere popup.
>
> non so perchč con l'espressione:
> movesize ,,,850 (ad esempio)
> mi va SEMPRE  in crash access.
Beh, penso che dovresti scrivere:
DoCmd.movesize ,,,850
Per tranquillitą ho provato taņe riga di VBA con Access97 e mi ha funzionato
regolarmente.
>
> forse non puņ essere impostato in una SM?
Onestamente non capisco che significato abbia usare il metodo MoveSize in
una sottomaschera; eventualmente dovresti ridimensionare il controllo
sottomaschera della maschera principale e non la sottomaschera.
> e ad ogni modo, come posso impostarlo sulla maschera principale dalla SM?
DoCmd.movesize ,,,850
>
> grazie
>
> Ciao
>
> Silvia.



author: Quicker

text:
"]SiLVieTTa[" <
silviaTOGLIQ...@studiomarketing.it
> ha scritto nel
messaggio news:6bqqvv4a269qgtgfp...@4ax.com...
> si possono forzare le dimensioni della finestra (della maschera, ad
esempio) in
> altezza?
> quindi settare un valore via codice?
 In AccessXP e 2000 e' possibile farlo senza ricorrere
alle funzioni API del sistema operativo.
 Basta impostare la proprieta seguente
 Forms("NomeMaschera").Properties("WindowHeight").Value
 In Access97 no
 Pero' mi trovo meglio con il codice seguente per ridimensionare
 una maschera. La maschera deve essere popup, bordo sottile.
 Il codice seguente l'ho tratto da un applicazione, e non ho
avuto voglia di modificarlo per adattarlo solo alla tua richiesta.
 In pratica serve ad aumentare l'altezza della maschera in modo
che possa contenere tutti i controlli che al suo interno vengono
spostati in basso. La variabile NCampi e' il numero di controlli
casella di testo che ci sono dentro la maschera.
 Il ridimensionamento ha inizio dall'evento Form_Open
 SetWindowPos e' la funzione chiave.
Option Compare Database
Option Explicit
' SetWindowPos Flags
Private Const SWP_NOSIZE = &H1
Private Const SWP_NOMOVE = &H2
Private Const SWP_NOZORDER = &H4
Private Const SWP_NOREDRAW = &H8
Private Const SWP_NOACTIVATE = &H10
Private Const SWP_FRAMECHANGED = &H20        '  The frame changed: send
WM_NCCALCSIZE
Private Const SWP_SHOWWINDOW = &H40
Private Const SWP_HIDEWINDOW = &H80
Private Const SWP_NOCOPYBITS = &H100
Private Const SWP_NOOWNERZORDER = &H200      '  Don't do owner Z ordering
' Costanti per GetSystemMetrics
Private Const SM_CXSCREEN = 0
Private Const SM_CYSCREEN = 1
Private Const SM_CXVSCROLL = 2
Private Const SM_CYHSCROLL = 3
Private Const SM_CXBORDER = 5
Private Const SM_CYBORDER = 6
' SetWindowPos() hWndInsertAfter values
Private Const HWND_TOP = 0
Private Const HWND_BOTTOM = 1
Private Const HWND_TOPMOST = -1
Private Const HWND_NOTOPMOST = -2
Private Const TITLE = ""
'  Device Parameters for GetDeviceCaps()
Private Const LOGPIXELSX = 88        '  Logical pixels/inch in X
Private Const LOGPIXELSY = 90        '  Logical pixels/inch in Y
Private Const BITSPIXEL = 12         '  Number of bits per pixel
' Twips per inch
Private Const TWIPSPERINCH = 1440&
Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function ReleaseDC Lib "user32" _
(ByVal hwnd As Long, ByVal hDC As Long) As Long
Private Declare Function apiGetDeviceCaps Lib "gdi32" _
Alias "GetDeviceCaps" (ByVal hDC As Long, ByVal nIndex As Long) As Long
Private Declare Function GetSystemMetrics Lib "user32" _
(ByVal nIndex As Long) As Long
Private Declare Function SetWindowPos Lib "user32" _
(ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, _
ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long)
As Long
Private Sub Form_KeyPress(KeyAscii As Integer)
On Error GoTo Errore
 If KeyAscii = vbKeySpace Then  ' Registrazione della scheda
   DoCmd.GoToControl "MSCComando"
   GestioneSchedaInArchivio
 End If
 If KeyAscii = vbKeyEscape Then
   ChiudiMaschera
 End If
Uscita:
       Exit Sub
Errore:
       GErrori Err.Number, Err.description, Err.Source, "Private Sub
Form_KeyPress()"
End Sub
Private Sub Form_Load()
   Me.X1.SetFocus
End Sub
Private Sub Form_Open(Cancel As Integer)
On Error GoTo Errore
 DoCmd.Restore
 Dim m_ScreenWidth As Long, m_ScreenHeight As Long
 Dim lngDC As Long
 Dim m_ScreenXdpi As Long
 Dim m_ScreenYdpi As Long
 Dim DistanzaControlli As Long
 Dim MaggiorazioneAltezza As Long
 Dim DistanzaTop As Long
 Dim MargineSinistro As Long
 Dim rst As DAO.Recordset
If NCampi > 2 Then ' Ridimensionamento se il numero delle tipologie postali
e' maggiore di 2
' ****** LETTURA PARAMETRI SCHERMO E RISOLUZIONE
 m_ScreenWidth = GetSystemMetrics(SM_CXSCREEN)  ' Dimensioni schermo - in
pixel - Es: 1024 * 768
 m_ScreenHeight = GetSystemMetrics(SM_CYSCREEN)
' Grab any DC
 lngDC = GetDC(0)
' Horizontal
    m_ScreenXdpi = apiGetDeviceCaps(lngDC, LOGPIXELSX)
' Vertical
    m_ScreenYdpi = apiGetDeviceCaps(lngDC, LOGPIXELSY)
 lngDC = ReleaseDC(0, lngDC)
' ****** FINE LETTURA PARAMETRI SCHERMO E RISOLUZIONE
' Per calcolare la distanza tra i controlli
 DistanzaControlli = Me.X2.Top - Me.X1.Top
' Calcolo la maggiore dimensione che deve avere la maschera
 MaggiorazioneAltezza = DistanzaControlli * ((NCampi - 2) + 1) ' Altezza
complessiva del set di controlli aggiuntivi
 MargineSinistro = Me.Properties("WindowHeight").Value - (Me.X2.Top +
Me.X2.Height) ' Spazio residuo disponibile
 If MaggiorazioneAltezza < MargineSinistro Then
    MaggiorazioneAltezza = 0
 Else
    MaggiorazioneAltezza = MaggiorazioneAltezza - MargineSinistro + 60
 End If
 ' Distanza della maschera dal bordo sinistro dello schermo
 MargineSinistro = (m_ScreenWidth - Me.Properties("WindowWidth").Value /
(TWIPSPERINCH / m_ScreenXdpi)) / 2
 MaggiorazioneAltezza = (MaggiorazioneAltezza +
Me.Properties("WindowHeight").Value) / (TWIPSPERINCH / m_ScreenYdpi)
' Calcolo della distanza dall'alto dello schermo
 If MaggiorazioneAltezza > m_ScreenHeight Then
    DistanzaTop = 0
 Else
    DistanzaTop = (m_ScreenHeight - MaggiorazioneAltezza) / 4
 End If
 ' Descrittore della windows - HWND_TOPMOST = Coordinate assolute rispetto
allo schermo - Posizione dal margine sinistro - Posizione dalla cima -
Dimensione orizzontale - Dimensione verticale
 Call SetWindowPos(Me.hwnd, HWND_TOPMOST, MargineSinistro, DistanzaTop,
Me.Properties("WindowWidth").Value / (TWIPSPERINCH / m_ScreenXdpi),
MaggiorazioneAltezza, SWP_NOZORDER)
 Me.Corpo.Height = Me.Corpo.Height + MaggiorazioneAltezza * (TWIPSPERINCH /
m_ScreenYdpi)
   For lngDC = 3 To NCampi
        Me.Controls("X" & lngDC).Visible = True
        Me.Controls("TX" & lngDC).Visible = True
          If ICmc = 2 Then ' In cancellazione
              Me.Controls("EX" & lngDC).Visible = False
          Else
              Me.Controls("EX" & lngDC).Visible = True
          End If
        Me.Controls("X" & lngDC).Top = Me.Controls("X" & CStr((lngDC -
1))).Top + DistanzaControlli
        Me.Controls("TX" & lngDC).Top = Me.Controls("TX" & CStr((lngDC -
1))).Top + DistanzaControlli
        Me.Controls("EX" & lngDC).Top = Me.Controls("EX" & CStr((lngDC -
1))).Top + DistanzaControlli
   Next lngDC
End If  ' Fine if NCampi
Set rst = CurrentDb.OpenRecordset(NomeTB3, dbOpenSnapshot)
 For lngDC = 1 To NCampi
   Me.Controls("TX" & lngDC).Caption = Nz(rst(1).Value, "Non assegnato")
   If Not (rst.EOF And rst.BOF) Then rst.MoveNext
 Next lngDC
rst.Close
Set rst = Nothing
Uscita:
       Exit Sub
Errore:
       GErrori Err.Number, Err.description, Err.Source, "Private Sub
Form_Open()"
End Sub


text:
Thread ricco mi ci ficco: Il Fri, 09 Jan 2004 15:36:40 GMT, "Roberto da casa"
<
r.ma...@libero.it
> dopo averci riflettuto a lungo, ha scritto:
>Beh, penso che dovresti scrivere:
>
>DoCmd.movesize ,,,850
x 1 attimo ho creduto di dovermi sotterrare: invece, no, avevo scritto
effettivamente bene: come hai scritto tu
>Onestamente non capisco che significato abbia usare il metodo MoveSize in
>una sottomaschera; eventualmente dovresti ridimensionare il controllo
>sottomaschera della maschera principale e non la sottomaschera.
no, infatti non ha senso farlo sulla sm e infatti non voglio farlo sulla sm.
solo che il comando parte da lě, in quanto conta i record della sottomaschera ed
č a quel punto che dovrei ridimensionare la finestra (quella principale). perň
se il comando lo scrivo nell'evento della sm forse tenta di agire sulla sm (non
so, l'ho buttata lě)



text:
Thread ricco mi ci ficco: Il Sun, 11 Jan 2004 21:13:53 GMT, "Quicker"
<
qui...@supereva.it
> dopo averci riflettuto a lungo, ha scritto:
> Il codice seguente l'ho tratto da un applicazione, e non ho
>avuto voglia di modificarlo per adattarlo solo alla tua richiesta.
non ti preoccupare, sei già abbastanza gentile.
ora ci dò un'occhiata.



text:
Thread ricco mi ci ficco: Il Sun, 11 Jan 2004 21:13:53 GMT, "Quicker"
<
qui...@supereva.it
> dopo averci riflettuto a lungo, ha scritto:
>
> In AccessXP e 2000 e' possibile farlo senza ricorrere
>alle funzioni API del sistema operativo.
> Basta impostare la proprieta seguente
> Forms("NomeMaschera").Properties("WindowHeight").Value
> In Access97 no
come mai non ti piace la funzione?
sembra così semplice e rapida....
ad ogni modo non capisco come funzioni, ho provato con:
   Forms("m_CorsiSvolti").Properties("WindowHeight").Value 860 * TotRecord
   Forms("m_CorsiSvolti").Properties("WindowHeight").Value =860 * TotRecord 'in
questo caso mi da "proprietà di sola lettura: impossibile impostarla"
   Forms("m_CorsiSvolti").Properties("WindowHeight").Value (860 * TotRecord)
nel 1° e 3° caso da un altro errore



title: Vendo vcd Gundam

author: Thomas

text:
13 cd 39 puntate
and...@mclink.it


title: Vendo vcd Gundam

author: Silvio Berruti

text:
"Thomas" <
mh9...@mclink.it
> ha scritto nel messaggio
news:8jdnk3$esr$1...@news.mclink.it...
> 13 cd 39 puntate
and...@mclink.it
>
>
Ho avuto l'impressione che sia OT: sbaglio?
Silvio


title: Vendo vcd Gundam

author: Sergio MAZZA

text:
"Silvio Berruti" <
s...@gma.it
> ha scritto nel messaggio
news:8jeutk$366$1...@fe1.cs.interbusiness.it...

Sě ma Gundam č mitico...
Ciao.


author: Federico

text:
Salve a tutti,
intanto grazie per le vostre utili informazioni,
ho una macro filtro collegata a 2 Common Box collegata a sua volte a
2
Caselle di controllo
la macro funziona per i singoli filtri ma non fa con entrambi con END
potete dirmi dove sbaglio?
'Private Sub Filtros()
Dim Filtro As String
If Me.CasellaControllo29 = True Then
       Filtro = "Cliente = '" & CasellaCombinata27.Text & "'"
  End If
If Me.CasellaControllo33 = True And Filtro <> "" Then
    Filtro = Filtro & "And"
    Filtro = Filtro & "Responsabile = '" & CasellaCombinata31.Text &
"'"
 End If
Me.Filter = Filtro
Me.FilterOn = True
End Sub
GRAZIE MILLE  A TUTTI
federico...@interfree.it


title: macro filtro collegata a 2 Common Box collegata a sua volte a 2

author: Access

text:
Ciao federico,
"Federico" <
ocire...@hotmail.it
> ha scritto nel messaggio
news:1180026086....@w5g2000hsg.googlegroups.com...

Prova a racchiudere le espressioni tra parentesi tonde cosi:
Private Sub Filtros()
 Dim Filtro As String
 If Me.CasellaControllo29 = True Then
       Filtro = "Cliente = '" & CasellaCombinata27.Text & "'"
  End If
===============================================
 If (Me.CasellaControllo33 = True) And (Filtro <> "") Then  ' qui
===============================================
    Filtro = Filtro & "And"
    Filtro = Filtro & "Responsabile = '" & CasellaCombinata31.Text & "'"
 End If
 Me.Filter = Filtro
 Me.FilterOn = True
 End Sub
Ciao
Access


title: Re: passare l'utente odbc ad access

author: RobertoA

text:
Il 25/09/2015 10:02, Remigio ha scritto:
> Buongiorno a voi tutti,
> uso access 2007 come front end su un server mysql attraverso il driver mysql connector.
> A questo driver al momento della configurazione viene impostato un nome utente ed una password che serviranno per accedere al server mysql.
> Ho bisogno di passare ad Access l'utente con cui il driver è connesso al server, come potrei fare secondo voi?
> Vi ringrazio e saluto
>
> __
> Remigio

Una textbox ?
O vai a leggerlo su un file  .ini  scritto prima, da una schermata
configurazione


title: Modificare (da codice VBA) la query Record Source del Report

author: Ammammata

text:
Ho questa query che uso per la stampa di un report di indirizzi e contatti:

SELECT tBP.SortKey, tBP.Code, tBP.SelectionName, tBP.Short,
tBP.Qualification, tBP.U_Qualification, tBP.CompanyName, tBP.QD,
tBP.Street, tBP.City, Mid([ZipCode],2,9) AS ZIP, tBP.AddressType,
tBP.Country, tBP.C_Code, tBP.RespShort, tBP.Send, tBP.Calendar, tBP.Green,
tCONT.C_Code, tCONT.C_Title, tCONT.C_FirstName, tCONT.C_LastName,
tCONT.C_ID, tCONT.Calendar, tCONT.Send, tCONT.Green, tCONT.LangCode FROM
tBP LEFT JOIN tCONT ON tBP.[Code] = tCONT.[Code];

è memorizzata nella proprietà Record Source del Report

Nella Form dove c'è il bottone di stampa ho inserito un gruppo di due
opzioni, 1 e 2, che devono applicare un filtro diverso sulla query qui
sopra

Quando opzione è 1 allora tBP.AddressType = "Private"
Quando opzione è 2 allora tBP.AddressType <> "Private"

La soluzione della serva è quella di duplicare il report e modificare la
query; nel codice del pulsante c'è (e funziona) il controllo con la
relativa azione:

    If Forms![fPREVIEW]![FramePC].Value = 1 Then
    stDocName = "tBP_P"
    Else
    stDocName = "tBP_C"
    End If
    DoCmd.OpenReport stDocName, acPreview

la DOMANDA, finalmente:

- è possibile intervenire sulla query soprariportata prima di eseguire la
stampa? in un altro database ho visto (cose che voi umani) del tipo apro il
report in modifica, vado a cambiare la sorgente dati di UN CAMPO in base a
certe condizioni, salvo il report, lo riapro in anteprima

qui però non si tratta di un campo anche se in effetti è una proprietà,
quindi teoricamente modificabile (mi dovrei portare dietro tutta la
pappardella); pensp però che ci sia una via più breve, come andare a
impostare il parametro filtro che trovo subito sotto record source

grazie

--
/-\ /\/\ /\/\ /-\ /\/\ /\/\ /-\ T /-\
-=- -=- -=- -=- -=- -=- -=- -=- - -=-
>>>>>
http://www.bb2002.it
 :)  <<<<<
........... [ al lavoro ] ...........


text:
Nnn ho ben capito la complicazione, ma la mia domanda banale è:
Non puoi usare il parametro WHERE CONDITION del metodo OpenReport per filtrare i dati...?

Di norma è quello che si fa quando si stampano i dati filtrati nella Maschera... si passa Me.Filter ed il Report che ha la STESSA OrigineRecords della Form, stampa solo quello che visualizzi.

Se tu hai una Selezione costruirai il Criterio e lo passerai...

Mi sfugge sicuramente qualche cosa.

@Alex


author: Karl Donaubauer

text:
Salve,

Ammammata ha scritto:
> Ho questa query che uso per la stampa di un report di indirizzi e contatti:
> ...
> Nella Form dove c'è il bottone di stampa ho inserito un gruppo di due
> opzioni, 1 e 2, che devono applicare un filtro diverso sulla query qui
> sopra
>
> Quando opzione è 1 allora tBP.AddressType = "Private"
> Quando opzione è 2 allora tBP.AddressType <> "Private"
>
> La soluzione della serva è quella di duplicare il report e modificare la
> query; nel codice del pulsante c'è (e funziona) il controllo con la
> relativa azione:
>
>      If Forms![fPREVIEW]![FramePC].Value = 1 Then
>      stDocName = "tBP_P"
>      Else
>      stDocName = "tBP_C"
>      End If
>      DoCmd.OpenReport stDocName, acPreview
> ...
> - è possibile intervenire sulla query soprariportata prima di eseguire la
> stampa?
> ...

Non sono sicuro ti capirti bene ma se l'unica differenza tra i due
report è il filtro puoi usare lo stesso report e aprirlo p.e. così:

DoCmd.OpenReport stDocName, acPreview, , _
     "tBP.AddressType" & IIf(Me!FramePC=1,"=","<>") & "'Private'"

--
Ciao
Karl
*********
http://www.AccessDevCon.com

Access FAQ:
http://www.donkarl.com/it


text:
Il giorno Thu 17 Oct 2019 04:12:26p, *Karl Donaubauer* ha inviato su
it.comp.appl.access il messaggio
news:h0rb68...@mid.individual.net
.
Vediamo cosa ha scritto:

> Non sono sicuro ti capirti bene ma se l'unica differenza tra i due
> report è il filtro puoi usare lo stesso report e aprirlo p.e. così:
>
> DoCmd.OpenReport stDocName, acPreview, , _
>      "tBP.AddressType" & IIf(Me!FramePC=1,"=","<>") & "'Private'"
>
>

ottimo, mi ero dimenticato del parametro "WhereCondition" :(

e grazie.

DoCmd.OpenReport Method
The OpenReport method carries out the OpenReport action in Visual Basic.
Syntax

expression.OpenReport(ReportName, View, FilterName, WhereCondition,
WindowMode, OpenArgs)

expression   A variable that represents a DoCmd object.

Parameters

ReportName Required Variant A string expression (string expression: An
expression that evaluates to a sequence of contiguous characters. Elements
of the expression can be: functions that return a string or a string
Variant (VarType 8); a string literal, constant, variable, or Variant.)
that's the valid name of a report in the current database. If you execute
Visual Basic code containing the OpenReport method in a library database
(library database: A collection of procedures and database objects that you
can call from any application. In order to use the items in the library,
you must first establish a reference from the current database to the
library database.), Microsoft Access looks for the report with this name,
first in the library database, then in the current database.

View Optional AcView A AcView constant that specifies the view in which the
report will open. The default value is acViewNormal.

FilterName Optional Variant A string expression that's the valid name of a
query (query: A question about the data stored in your tables, or a request
to perform an action on the data. A query can bring together data from
multiple tables to serve as the source of data for a form or report.) in
the current database.

WhereCondition Optional Variant A string expression that's a valid SQL
WHERE clause (WHERE clause: The part of an SQL statement that specifies
which records to retrieve.) without the word WHERE.

WindowMode Optional AcWindowMode A AcWindowMode constant that specifies the
mode in which the form opens. The default valus is acWindowNormal.

OpenArgs Optional Variant Sets the OpenArgs property.



title: filtrare date senza tenere conto dell'anno

text:
c'č un interessante thread su un altro gruppo relativo ad access

Subject: Need some SQL
From: Keith Tizzard <
internet...@foobox.com
>
Newsgroups: comp.databases.ms-access

in pratica, avendo un elenco di targhe e di date di registrazione (queste
ultime sparpagliate su piů anni) si chiede di scrivere un codice SQl che
elenchi solo quelle che cadono all'interno di un range giorno/mese (il
"compleanno", in pratica)

il punto cruciale č che il range puň essere a cavallo della fine dell'anno,
p.e. dal 15/12 al 15/01

io ho scritto un po' di spaghetti-code che produce il risultato, altri ci
stanno pestando la testa, spesso senza aver compreso a fondo i requisiti

qui cosa suggerite?

--
/-\ /\/\ /\/\ /-\ /\/\ /\/\ /-\ T /-\
-=- -=- -=- -=- -=- -=- -=- -=- - -=-
........... [ al lavoro ] ...........


text:
Si da per assunto che la 2° data sia superiore alla 1° spero...

Month(campoData)>=Month(MinDate) AND Month(CampoData)<=Month(MaxDate) AND Day(CampoData)>=Day(MinDate) AND Day(CampoData)<=Day(MaxDate)

Mi pare regga...?

@Alex


text:
Il giorno Mon 16 Aug 2021 10:09:54a, *@Alex* ha inviato su
it.comp.appl.access il messaggio news:d1a23af4-f0dd-4c83-9ec1-
863b7a...@googlegroups.com
. Vediamo cosa ha scritto:

> Si da per assunto che la 2° data sia superiore alla 1° spero...
>

NO

come scritto nell'OP non c'è un riferimento all'ANNO, solo mese e giorno

giro la domanda: dalla tua rubrica dei contatti, con nome e DATA DI NASCITA
(giorno/mese/ANNO), tira fuori quelli che compiono gli anni tra il 15
dicembre e il 24 gennaio



author: BFS

text:
Il 16/08/2021 09:22, Ammammata ha scritto:
> c'è un interessante thread su un altro gruppo relativo ad access
>
> Subject: Need some SQL
> From: Keith Tizzard <
internet...@foobox.com
>
> Newsgroups: comp.databases.ms-access
>
> in pratica, avendo un elenco di targhe e di date di registrazione (queste
> ultime sparpagliate su più anni) si chiede di scrivere un codice SQl che
> elenchi solo quelle che cadono all'interno di un range giorno/mese (il
> "compleanno", in pratica)
>
> il punto cruciale è che il range può essere a cavallo della fine dell'anno,
> p.e. dal 15/12 al 15/01
>
> io ho scritto un po' di spaghetti-code che produce il risultato, altri ci
> stanno pestando la testa, spesso senza aver compreso a fondo i requisiti
>
> qui cosa suggerite?
>

la butto li

avendo come input

gg iniziale
gg finale
mm iniziale
mm finale

accodo tutte le datetarghe in una tabella temporanea sostitundo l'anno
con un anno a caso esempio 2000

costriusco le due date limite

se mm finale<mm iniziale

datastart=gginizilae+mminiziale+2000
datastop=ggfinale+mmfinale+2001

altrimenti

datastart=gginizilae+mminiziale+2000
datastop=ggfinale+mmfinale+2000

select targa from tabellatemporanea where datatarga between datastart
and datastop

BFS


text:
Il giorno Mon 16 Aug 2021 10:57:18a, *BFS* ha inviato su
it.comp.appl.access il messaggio news:sfd99f$rkp$
1...@gioia.aioe.org
. Vediamo
cosa ha scritto:

>>
>> qui cosa suggerite?
>>
>
> la butto li
>
>

molto simile a quella che mi sono inventato io, grazie



text:
Il giorno lunedì 16 agosto 2021 alle 10:34:06 UTC+2 Ammammata ha scritto:
> Il giorno Mon 16 Aug 2021 10:09:54a, *@Alex* ha inviato su
> it.comp.appl.access il messaggio news:d1a23af4-f0dd-4c83-9ec1-
>
863b7a...@googlegroups.com
. Vediamo cosa ha scritto:
> > Si da per assunto che la 2° data sia superiore alla 1° spero...
> >
> NO
>
> come scritto nell'OP non c'è un riferimento all'ANNO, solo mese e giorno

APPUNTO cosa c'entra l'anno...?? hai visto nel mio esempio un riferimento all'anno...?
Quando chiedo se la 2° data è superiore alla prima è solo per capire se si va avanti oppure indietro...

> giro la domanda: dalla tua rubrica dei contatti, con nome e DATA DI NASCITA
> (giorno/mese/ANNO), tira fuori quelli che compiono gli anni tra il 15
> dicembre e il 24 gennaio

Se metti 15Dicembre 15Gennaio il dT=1 Mese
Se metti 15Gennaio 15Dicembre il dT=11mesi

Quindi se non hai il riferimento Fisso al momento dell'inserimento... devi prendere entrambe...?
Basta l'OR delle 2 condizioni...

> /-\ /\/\ /\/\ /-\ /\/\ /\/\ /-\ T /-\
> -=- -=- -=- -=- -=- -=- -=- -=- - -=-
> ........... [ al lavoro ] ...........

Boh
@Alex


text:
Il giorno Mon 16 Aug 2021 11:31:43a, *@Alex* ha inviato su
it.comp.appl.access il messaggio
news:866a9c13-fc7b-4210...@googlegroups.com
. Vediamo
cosa ha scritto:

> APPUNTO cosa c'entra l'anno...?? hai visto nel mio esempio un
> riferimento all'anno...?

ho messo il tuo codice in MSSQL:

declare @minday as int
declare @minmonth as int
declare @maxday as int
declare @maxmonth as int

set @minday = 15
set @minmonth = 12
set @maxday = 15
set @maxmonth = 1

select DocNum, DocDate
from ORDR
where  DATEFROMPARTS(Year(DocDate),@minmonth,@minday)<=DocDate AND
DATEFROMPARTS(Year(DocDate)+1,@maxmonth,@maxday)>DocDate

mostra solo le date comprese tra il 15 dicembre e il 31 dicembre, ignora
quelle di inizio gennaio

se invece faccio p.e.

set @minday = 15
set @minmonth = 2
set @maxday = 15
set @maxmonth = 3

mi mostra praticamente tutti i record della tabella, a partire dal 15
febbraio fino a fine dicembre

> Quando chiedo se la 2° data è superiore alla
> prima è solo per capire se si va avanti oppure indietro...
>

qui non ti capisco, ho riproposto il "quiz" in maniera molto semplice con i
compleanni, cosa significa andare avanti o indietro?

--



text:
Il 16/08/2021 11:07, Ammammata ha scritto:
> Il giorno Mon 16 Aug 2021 10:57:18a, *BFS* ha inviato su
> it.comp.appl.access il messaggio news:sfd99f$rkp$
1...@gioia.aioe.org
. Vediamo
> cosa ha scritto:
>
>>>
>>> qui cosa suggerite?
>>>
>>
>> la butto li
>>
>>
>
> molto simile a quella che mi sono inventato io, grazie
>
senza tabella temporanea..mi pare funzioni

declare @minday as int
declare @minmonth as int
declare @maxday as int
declare @maxmonth as int

set @minday = 13
set @minmonth = 12
set @maxday = 15
set @maxmonth = 01

declare @datastart as smalldatetime
declare @datastop as smalldatetime

if @maxmonth<@minmonth
	begin
	set @datastart=DATEFROMPARTS(2020,@minmonth,@minday)
	set @datastop=DATEFROMPARTS(2021,@maxmonth,@maxday)
	select * from Targhe where
datefromparts(2020,month(datatarga),day(datatarga)) between @datastart
and datefromparts(2020,12,31)
	union
	select * from Targhe where
datefromparts(2021,month(datatarga),day(datatarga)) between
datefromparts(2021,01,01) And @datastop
	end
else
	begin
	set @datastart=DATEFROMPARTS(2020,@minmonth,@minday)
	set @datastop=DATEFROMPARTS(2020,@maxmonth,@maxday)
	select * from Targhe where
datefromparts(2020,month(datatarga),day(datatarga)) between @datastart
and @datastop
	end


text:
Il giorno Mon 16 Aug 2021 04:53:12p, *BFS* ha inviato su
it.comp.appl.access il messaggio news:sfdu4p$rd2$
1...@gioia.aioe.org
. Vediamo
cosa ha scritto:

>>
>> molto simile a quella che mi sono inventato io, grazie
>>
> senza tabella temporanea..mi pare funzioni
>
>
>

sě, provata sul database degli ordini, č ok



text:
La fuzione da usare è questa e non contiene l'anno e funziona secondo me.

Month(campoData)>=Month(MinDate) AND Month(CampoData)<=Month(MaxDate) AND Day(CampoData)>=Day(MinDate) AND Day(CampoData)<=Day(MaxDate)

Saluti
@Alex


text:

Ho detto una bella cazzata ehehehe
Lascia stare, ma ci ragiono meglio

@Alex


text:
Il 16/08/2021 17:17, Ammammata ha scritto:
> Il giorno Mon 16 Aug 2021 04:53:12p, *BFS* ha inviato su
> it.comp.appl.access il messaggio news:sfdu4p$rd2$
1...@gioia.aioe.org
. Vediamo
> cosa ha scritto:
>
>>>
>>> molto simile a quella che mi sono inventato io, grazie
>>>
>> senza tabella temporanea..mi pare funzioni
>>
>>
>>
>
> sì, provata sul database degli ordini, è ok
>
>

ottimo
BFS


text:

dopo aver letto le risposte di @alex credo che non serva neppure
l'anno...e quindi si può evitare la funzione datefrompart
credo non si scappi però da dover usare una union per il caso in cui il
mese finale sia inferiore a quello iniziale

quindi è ulteriormente migliorabile in termini di costi computazionali

BFS


text:
>> >
> dopo aver letto le risposte di @alex credo che non serva neppure
> l'anno...e quindi si può evitare la funzione datefrompart
> credo non si scappi però da dover usare una union per il caso in cui il
> mese finale sia inferiore a quello iniziale
>
> quindi è ulteriormente migliorabile in termini di costi computazionali
>
>
> BFS

Un dubbio ragionando... il campo oggetto di analisi ha sicuramente l'anno...
Basterebbe comporre il between con un iif se MeseFine<MeseInizio e prendere l'anno del campo data sommando appunto 1Anno solo se ....?
Si compone la data cosi:

Between Dateserial(year(campodata),MeseInizio,GiornoInizio) AND
Dateserial(Dateadd('y',-(MESEinizio > Mesefine)),MseFine,Giornofine)

Non riesco a provarlo... quindi spero non sia la seconda cavolata... ma è caldissimo.

@Alex


text:
Il giorno Mon 16 Aug 2021 06:03:07p, *@Alex* ha inviato su
it.comp.appl.access il messaggio news:d171bb28-a0d8-4f05-b971-
d174a4...@googlegroups.com
. Vediamo cosa ha scritto:

> Ho detto una bella cazzata ehehehe
> Lascia stare, ma ci ragiono meglio

non ti preoccupare, è un esercizio di programmazione



text:
Il giorno Mon 16 Aug 2021 05:45:18p, *@Alex* ha inviato su
it.comp.appl.access il messaggio news:7eae5e78-738c-41f4-be69-
6d91d6...@googlegroups.com
. Vediamo cosa ha scritto:

> La fuzione da usare è questa e non contiene l'anno e funziona secondo me

"secondo me" significa che la hai provata su un db campione di pochi record
e hai effettivamente visto il risultato che ti aspettavi? chiedo perché
prima di arrivare a una query funzionante IO ho cannato diverse volte :)



text:
Vabbè dopo aver sparato qualche cavolata da CALORE... questa l'ho testata dopo essermi riappropriato del PC.

Assunto:
MeseINI=12  GiornoINI=15
MeseEND=1  GiornoINI=15

SELECT
T1.ID
, T1.Cognome, T1.Nome, T1.Nascita, TSel.IniDate, TSel.EndDate FROM T1
RIGHT JOIN (
SELECT ID, CDate(DateSerial(Year([Nascita]),MeseINI,GiornoINI)) AS IniDate, CDate(DateSerial(Year([Nascita])+1,MeseEND,GiornoEND)) AS EndDate, T1.Nascita FROM T1) AS TSel
ON
T1.ID
=TSel.ID AND (T1.Nascita Between TSel.Inidate And TSel.EndDate) WHERE
T1.ID
 Is Not Null

Provate se vi torna... io ho realizzato uina mascherina conl'immissione dei Mesi/Giorni e costruito il predicato SQL, quindi eseguita la Query.

@Alex


text:
Non avevo il PC quindi non potevo provare nulla...

Di fatto diventa così:

SELECT
T1.ID
, T1.Cognome, T1.Nome, T1.Nascita, TSel.IniDate, TSel.EndDate FROM T1
RIGHT JOIN (
SELECT ID, CDate(DateSerial(Year([Nascita]),12,15)) AS IniDate, CDate(DateSerial(Year([Nascita])+1,1,15)) AS EndDate, T1.Nascita FROM T1) AS TSel
ON
T1.ID
=TSel.ID AND (T1.Nascita Between TSel.Inidate And TSel.EndDate) WHERE
T1.ID
 Is Not Null

Testata su una Tabella di Anagrafiche di qualche centinaio di utenti... e a me pare restituire i dati corretti.

 @Alex


text:

Manca un pezzo che è nel codice ... il campo EndDate della Tabella derivata ha un +1 in realtà vedete il risultato della costruzione... che è questo:

Private Sub Comando2_Click()
    Dim sSQL    As String

    sSQL = "SELECT
T1.ID
, T1.Cognome, T1.Nome, T1.Nascita, TSel.IniDate, TSel.EndDate FROM T1 RIGHT JOIN ("
    sSQL = sSQL & "SELECT ID, CDate(DateSerial(Year([Nascita])," & Me.tMIni & "," & Me.tGIni & ")) AS IniDate, CDate(DateSerial(Year([Nascita])+" & Abs((Me.tMend < Me.tMIni)) & "," & Me.tMend & "," & Me.tGEnd & ")) AS EndDate, T1.Nascita FROM T1)  AS TSel "
    sSQL = sSQL & " ON (
T1.ID
=TSel.ID) AND (T1.Nascita Between TSel.Inidate And TSel.EndDate) WHERE
T1.ID
 Is Not Null;"

    Debug.Print sSQL
    CurrentDb.QueryDefs("Query1").SQL = sSQL
End Sub

@ALex


text:

no, salvo errori miei di copiatura
prova con

mario nato 16/12/1980
simone nato 13/01/1981
rosa nato 15/06/1982

 > Assunto:
 > MeseINI=12  GiornoINI=15
 > MeseEND=1  GiornoINI=15

dovrebbe restituirmi sia mario che simone

ma invece restituisce solo mario

non credo ci siano alternativa alla union nel caso di mese finale minore
del mese iniziale

if mese iniziale>mese finale then

select da giorno/mese iniziale al 31/12
union
select da 01/01 al giorno/mese finale

else
	select banale
end if

BFS


text:

Assunto:
MeseINI=12  GiornoINI=15
MeseEND=1  GiornoINI=15

il debug print del tuo codice mi restituisce

SELECT
T1.ID
, T1.Cognome, T1.Nome, T1.Nascita, TSel.IniDate,
TSel.EndDate FROM T1 RIGHT JOIN (SELECT ID,
CDate(DateSerial(Year([Nascita]),12,15)) AS IniDate,
CDate(DateSerial(Year([Nascita])+1,1,15)) AS EndDate, T1.Nascita FROM
T1)  AS TSel  ON (
T1.ID
=TSel.ID) AND (T1.Nascita Between TSel.Inidate
And TSel.EndDate) WHERE
T1.ID
 Is Not Null;SELECT
T1.ID
, T1.Cognome,
T1.Nome, T1.Nascita, TSel.IniDate, TSel.EndDate FROM T1 RIGHT JOIN
(SELECT ID, CDate(DateSerial(Year([Nascita]),12,15)) AS IniDate,
CDate(DateSerial(Year([Nascita])+1,1,15)) AS EndDate, T1.Nascita FROM
T1)  AS TSel  ON (
T1.ID
=TSel.ID) AND (T1.Nascita Between TSel.Inidate
And TSel.EndDate) WHERE
T1.ID
 Is Not Null;

e con questo dati

mario nato 16/12/1980
simone nato 13/01/1981
rosa nato 15/06/1982

mi da solo mario.....manca simone
secondo me ti frega l'anno..

BFS


text:

scusa ho incollato due volte il predicato
il debug mi da

SELECT
T1.ID
, T1.Cognome, T1.Nome, T1.Nascita, TSel.IniDate,
TSel.EndDate FROM T1 RIGHT JOIN (SELECT ID,
CDate(DateSerial(Year([Nascita]),12,15)) AS IniDate,
CDate(DateSerial(Year([Nascita])+1,1,15)) AS EndDate, T1.Nascita FROM
T1)  AS TSel  ON (
T1.ID
=TSel.ID) AND (T1.Nascita Between TSel.Inidate
And TSel.EndDate) WHERE
T1.ID
 Is Not Null;

ma l'errore persiste

secondo me l'errore è qui
SELECT T1.id, CDate(DateSerial(Year([Nascita]),12,15)) AS IniDate,
CDate(DateSerial(Year([Nascita])+1,1,15)) AS EndDate, T1.nascita, T1.nome
FROM T1;

perchè se simone è nato il  13/01/1981 la tua query calcola
iniDate=15/12/1981 e endDate 15/01/1982

e simone non ci cade dentro

BFS


text:
....
> > BFS
> scusa ho incollato due volte il predicato
> il debug mi da
> SELECT
T1.ID
, T1.Cognome, T1.Nome, T1.Nascita, TSel.IniDate,
> TSel.EndDate FROM T1 RIGHT JOIN (SELECT ID,
> CDate(DateSerial(Year([Nascita]),12,15)) AS IniDate,
> CDate(DateSerial(Year([Nascita])+1,1,15)) AS EndDate, T1.Nascita FROM
> T1) AS TSel ON (
T1.ID
=TSel.ID) AND (T1.Nascita Between TSel.Inidate
> And TSel.EndDate) WHERE
T1.ID
 Is Not Null;
> ma l'errore persiste
>
>
> secondo me l'errore è qui
> SELECT T1.id, CDate(DateSerial(Year([Nascita]),12,15)) AS IniDate,
> CDate(DateSerial(Year([Nascita])+1,1,15)) AS EndDate, T1.nascita, T1.nome
> FROM T1;
>
> perchè se simone è nato il 13/01/1981 la tua query calcola
> iniDate=15/12/1981 e endDate 15/01/1982
>
> e simone non ci cade dentro
>
> BFS

Corretto Daniele, giusta osservazione... un passo alla volta deve essere più semplice possibile...

Ci ragiono ancora... ;-) ma potrebbe essere la strada da percorrere con gli adeguati aggiustyamenti... da trovare.

@Alex


text:
Il giorno martedì 17 agosto 2021 alle 10:42:11 UTC+2
shad...@gmail.com
 ha scritto:
> non e' pui semplice
>
> SELECT xxx.dataN
> FROM xxx
> WHERE ((Month([datan]) In (1,2,3,12)));

Se la soglia minima fosse 15 Dicembre... il nato il 14 Dicembre verrebbe preso... ma erroneamente, stessa cosa per la soglia massima...

La soluzione di Daniele ed Ammammata sicuramente funziona, quindi da validare, mi pare troppo complessa nell'insieme per un problema appartentemente così banale, sicuramente sono io che sottovaluto...

@Alex


text:

chi è Daniele? ahahah

BFS
(Fabio)


text:
> chi è Daniele? ahahah
>
> BFS
> (Fabio)

Scusa Fabio, non so da dove mi salta fuori ma ero convinto ti chiamassi Daniele...

@Alex


text:
SELECT xxx.dataN
FROM xxx
WHERE (((Month([datan])) In (12,1,2,3)) AND ((IIf(Month([datan])=12,Day([datan])>15,-1))<>False) AND ((IIf(Month([datan])=3,Day([datan])<15,-1))<>False));


text:

Temo che le Date LIMITE, siano partametri Flessibili, quindi quello che scrivi con IN(12,1,2,3) in realtà va determinato... ed anche la logica del controllo dei giorni... e questo rende più complessa la cosa, o meglio rende obbligatorio scrivere codice per costruire la SINTASSI SQL... e, se si usa il VBA per fare tutto poi diventa poco scalabile su un RDBMS.

Quindi meglio la soluzione FULL_SQL proposta, anche se è pur vero che non è applicabile in JET...

@Alex


text:
Dal momento che le cose non risolte mi lasciano male... vi sottopongo questo esperimento se vi va di provarlo:

Usa a base di Appoggio una Query, nella quale creo i 2 Campi DataIni e DataEnd, ricavando l'Anno dalla DataNascita e, aggiungo 1 anno alla DataEnd SOLO se il MeseEnd<MeseIni per i ragionamenti fatti sopra...!
DataIni=15/12   Mese 12
DataEnd=18/1  Mese 1
In questo caso la DataEnd avrà l'anno+1

Abbiamo visto che anche questa non copriva tutte le condizioni...

Questa soluzione fa questo ma considera 2 Date di Compleanno... quella Registrata, e [+1] per fare rientrare nel Range quello che è scappato con l'assunto precedente.
Private Sub CmdSQL_Click()
    Dim sSQL    As String
    Dim sSQLT   As String

    sSQL = "SELECT
T1.ID
,T1.Nascita,T1.Cognome,"
    sSQL = sSQL & "DateSerial(Year([Nascita])," & Me.tMIni & "," & Me.tGIni & ") As dTIni, "
    sSQL = sSQL & "DateSerial(Year([Nascita])+ " & Abs(Val(Me.tMend) < Val(Me.tMIni)) & "," & Me.tMend & "," & Me.tGEnd & ") As dTEnd, "
    sSQL = sSQL & "[Nascita]+365 As Nascita1 "
    sSQL = sSQL & "FROM T1"

    sSQLT = "SELECT * FROM (" & sSQL & ") As TSel WHERE (TSel.Nascita Between TSel.dTIni AND TSel.dTEnd) OR (TSel.Nascita1 Between TSel.dTIni AND TSel.dTEnd)"

    Debug.Print sSQLT
    CurrentDb.QueryDefs("Query1").SQL = sSQL
End Sub

Uso una SUB_SELECT solo per rendere più chiaro il tutto, ma basta una sola Query... ho testato su 100 Records qualche prova e mi pare dare i risultati corretti... ma vorrei chiedervi un test nel caso mi sia sfuggito qualche dettaglio.

Se funzionasse... mi pare sia possa essere facilmente scalabile su qualsiasi RDBMS e credo sia discretamente performante... anche con JET riducendola ad 1 SELECT.

@Alex


text:
Ho cancellato un pezzetto:

era:
CurrentDb.QueryDefs("Query1").SQL = sSQL  <----- Manca la T

Deve essere:
CurrentDb.QueryDefs("Query1").SQL = sSQLT

@Alex


text:

funziona
BFS


text:
> funziona
> BFS

Bene.

Questa è la versione Parametrica singola:

PARAMETERS mIni Byte, mEnd Byte, dIni Byte, dEnd Byte;
SELECT *
FROM T1
WHERE (((T1.Nascita) Between DateSerial(Year([Nascita]),mIni,dIni) And DateSerial(Year([T1].[Nascita])+1,mEnd,dEnd)))
OR ((([T1].[Nascita]+365) Between DateSerial(Year([Nascita]),mIni,dIni) And DateSerial(Year([T1].[Nascita])+1,mEnd,dEnd)));

@Alex


text:
Giusto a completamento,

Questa la Query:
PARAMETERS pMINI Byte, pMEND Byte, pDINI Byte, pDEND Byte;
SELECT *
FROM T1
WHERE ((T1.Nascita) Between DateSerial(Year([Nascita]),[pMINI],[pDINI]) And DateSerial(Year(T1.Nascita)-([pMEND]<[pMINI]),[pMEND],[pDEND])) OR
((T1.Nascita+365) Between DateSerial(Year([Nascita]),[pMINI],[pDINI]) And DateSerial(Year(T1.Nascita)-([pMEND]<[pMINI]),[pMEND],[pDEND]));

Questo il metodo per usarla:
Private Function OpenQueryRange(MonthIni As Byte, MonthEnd As Byte, Optional DayIni, Optional DayEnd) As DAO.Recordset
    Dim qdf     As DAO.QueryDef

    Dim bMIni   As Byte
    Dim bMEnd   As Byte
    Dim bDIni   As Variant
    Dim bDEnd   As Variant

    bMIni = MonthIni
    bMEnd = MonthEnd
    bDIni = DayIni
    bDEnd = DayEnd

    If IsMissing(DayIni) Then bDIni = 1
    If IsMissing(DayEnd) Then bDEnd = Day(Fix(DateSerial(Year(Date), Month(bMEnd) + 1, 0))) ' Ultimo gg del mese

    Set qdf = DBEngine(0)(0).QueryDefs("Q1")
    With qdf
        Debug.Print .SQL
        .Parameters!pMINI = bMIni
        .Parameters!pDINI = bDIni
        .Parameters!pMEND = bMEnd
        .Parameters!pDEND = bDEnd
        Set OpenQueryRange = .OpenRecordset
    End With
    qdf.Close
End Function

@Alex


text:
Il giorno Thu 19 Aug 2021 09:32:50a, *@Alex* ha inviato su
it.comp.appl.access il messaggio
news:adb9f35f-4cc6-4346...@googlegroups.com
. Vediamo
cosa ha scritto:

> WHERE ((T1.Nascita) Between
> DateSerial(Year([Nascita]),[pMINI],[pDINI]) And
> DateSerial(Year(T1.Nascita)-([pMEND]<[pMINI]),[pMEND],[pDEND])) OR
> ((T1.Nascita+365) Between DateSerial(Year([Nascita]),[pMINI],[pDINI])
> And DateSerial(Year(T1.Nascita)-([pMEND]<[pMINI]),[pMEND],[pDEND]));
>

quel 365 funziona anche con gli anni bisestili?
per il 2100 devo preoccuparmi?



text:
...
> quel 365 funziona anche con gli anni bisestili?
> per il 2100 devo preoccuparmi?

Io inizierei a preoccuparmi prima... nel 2100 forse sono secco...!

Credi possa bastare un DateAdd("y",1,TuaData)...?
;-)

@Alex


text:
Il giorno Thu 19 Aug 2021 10:34:41a, *@Alex* ha inviato su
it.comp.appl.access il messaggio news:c1b48db7-5eca-44d0-ae48-
33adb8...@googlegroups.com
. Vediamo cosa ha scritto:

>> quel 365 funziona anche con gli anni bisestili?
>

ho impostato il periodo dal 15 dicembre al 15 gennaio

la query mi fa uscire anche il 16 gennaio (del 2020)

https://i.imgur.com/MANKux3.png

tutto il resto, dal 17/12/2018 al 15/01/2021 sembra a posto



text:
Il giorno Mon 16 Aug 2021 09:22:35a, *Ammammata* ha inviato su
it.comp.appl.access il messaggio
news:XnsAD885F61F28D3am...@127.0.0.1
. Vediamo cosa ha
scritto:

> io ho scritto un po' di spaghetti-code che produce il risultato

ah, giusto nel caso che non siate andati a curiosare nell'altro gruppo,
questo č il mio parto di dieci minuti:

declare @fd as int -- from day
declare @fm as int -- from month

declare @td as int -- to day
declare @tm as int -- to month

declare @fr as int -- from range
declare @tr as int -- to range

set @fd = 15 -- i.e. from 15/12
set @fm = 12

set @td = 15 -- i.e. to   15/01
set @tm = 1

set @fr = @fm * 50 + @fd -- convert month and day into a single number
set @tr =
case -- case 'to' is lower then 'from' -> falls in next year
when @tm * 50 + @td < @fr then @tm * 50 + @td + 600
else @tm * 50 + @td
end

select DocNum, DocDate -- using ORDR SAP table ;)
from ORDR

where
case
when @tm * 50 + @td < @fr
and  DATEPART(month, DocDate) * 50 + DATEPART(day, DocDate) < @fr
then DATEPART(month, DocDate) * 50 + DATEPART(day, DocDate) + 600
else DATEPART(month, DocDate) * 50 + DATEPART(day, DocDate)
End >= @fr
and
case
when @tm * 50 + @td < @fr
and  DATEPART(month, DocDate) * 50 + DATEPART(day, DocDate) < @fr
then DATEPART(month, DocDate) * 50 + DATEPART(day, DocDate) + 600
else DATEPART(month, DocDate) * 50 + DATEPART(day, DocDate)
end <= @tr

non sono stato lě a limarlo e a semplificarlo, se possibile (c'č un calcolo
@tm * 50 + @td che si ripete diverse volte)

perň si risolve con una sola query, senza UNION e senza appoggi aggiuntivi



text:
Il giorno Thu 19 Aug 2021 10:55:11a, *Ammammata* ha inviato su
it.comp.appl.access il messaggio
news:XnsAD8B6F15A1AF8am...@127.0.0.1
. Vediamo cosa ha
scritto:

> Il giorno Mon 16 Aug 2021 09:22:35a, *Ammammata* ha inviato su
> it.comp.appl.access il messaggio
>
news:XnsAD885F61F28D3am...@127.0.0.1
. Vediamo cosa ha
> scritto:
>
[agatino]
>
> non sono stato lě a limarlo e a semplificarlo, se possibile (c'č un
> calcolo @tm * 50 + @td che si ripete diverse volte)
>

come pure DATEPART(month, DocDate) * 50 + DATEPART(day, DocDate)



text:

Non riscontro questa anomalia, inserito stessi Limiti con data 16/01/2000 ma non viene inclusa.

@Alex


text:
Il giorno Thu 19 Aug 2021 11:32:54a, *@Alex* ha inviato su
it.comp.appl.access il messaggio
news:29e5031c-ca23-4f24...@googlegroups.com
. Vediamo
cosa ha scritto:

> Non riscontro questa anomalia, inserito stessi Limiti con data
> 16/01/2000 ma non viene inclusa.
>

SELECT *
FROM (SELECT
T1.ID
,
T1.Nascita,
T1.Cognome,
DateSerial(Year([Nascita]),12,15) As dTIni,
DateSerial(Year([Nascita])+ 1,1,15) As dTEnd,
[Nascita]+365 As Nascita1
FROM
T1
)  AS TSel
WHERE (TSel.Nascita Between TSel.dTIni AND TSel.dTEnd) OR (TSel.Nascita1
Between TSel.dTIni AND TSel.dTEnd);

questa è la query generata dal codice VBA (ho messo qualche 'a capo' per
migliorarne la leggibilità)



text:

Provato e non riscontro quel problema.
La Data che ho inserito, essendo Compleanni, NON sono valorizzate con 'ipotetico Now() che contiene hh:mm:ss, ma semplicemente con gg/mm/aaaa quindi hh:mm:ss=0, credi possa essere questo...?

@Alex


title: Casella di riepilogo

author: Fabio

text:
Salve a tutti
Ho una tabella con i seguenti campi:
area
utente
località
indirizzo
per ogni località ed indirizzo ho più utenti.
In una maschera, ho creato una casella di riepilogo con selezione estesa
la cui origine dati è data dai campi raggruppati località ed indirizzo
della tabella precedente.
Devo avere la possibilità di selezionare più righe e in base alla
selezione devo creare una tabella che riporti tutti gli utenti di quegli
indirizzi e aree.
Quale il codice da utilizzare?
Grazie per l'aiuto
Fabio