Newsgroup: it.comp.appl.access
Titolo: problema sql server adp access su proprietà serverfilter

ciao a tutti!
vi posto questo problemino:
da mdb ho fato adp per lavorare con db sql server express
nota (è un bel casino ho dovuto cambiare tutto il codice in vba che
avevo scritto perchè sql server non lo capisce!!!; chi capisce la
politica di microsoft è bravo!!)
problema: nell'mdb da una maschera mi si aprono diversi report sulla
base di 1 o più parametri dinamici, una volta fatto l'upsize in sql
server express e creato l'adp i miei report non vengono più
filtrati!!!!
ecco le operazioni che ho eseguito e la mia situazione:
1. i report hanno come origine una select from (non si dovrebbe
trattare quindi di una stored procedure) che si aprono nell'mdb sulla
base di un criterio che passavo via codice in questo modo:
dim strsql as string
strsql = pippo
docmd.openreport "tal dei tali", ...,...,.. , strsql
2. io in adp + sqlserver faccio cosi
dim strsql as string
strsql = pippo
me.serverfilter= strsql
docmd.openreport "tal dei tali", ...,...,..
ma il report non mi si apre!!! perchè???
la cosa strana è che su altri report strutturati nello stesso modo
questo metodo funziona...
qualcuno mi sa aiutare??
inoltre (chiedo venia per la lunghezza del post) ho capito che esiste
un analizzatore delle prestazioni di sql server express, mi sapete
dire come attivarlo? io vorrei capire in particolare come fare
eseguire sul server la query e poi portare al client solo il report
filtrato... mi sa che con serverfilter prima il client si carica tutto
in locale....
sapete aiutarmi???
grazie molte a tutti!!!

On 13 Apr, 14:44, "
fabiani.uli...@gmail.com
"

..................?

 ha scritto nel messaggio 
news:1176468248....@d57g2000hsg.googlegroups.com...







qualcuno mi sa aiutare??

Ciao Ulisse,
impaziente? tieni conto che chi risponde su questo NG lo fa solo su base 
volontaria e ogni tanto gli tocca pure lavorare per vivere... per cui se non 
ottieni rapide risposte abbi un po' di pazienza prima o poi qualcuno, se 
sa.. risponderà...
Dopo il dovuto ca......one, vediamo di chiarire...
Tu scrivi:
2. io in adp + sqlserver faccio cosi
dim strsql as string
strsql = pippo
me.serverfilter= strsql
docmd.openreport "tal dei tali", ...,...,..
ma il report non mi si apre!!! perchè???
me.serverFilter = strsql
stai applicando un filtro non al report che stai per aprire ma alla maschera 
corrente
per aprire il report filtrato secondo il tuo criterio, puoi farlo 
esattamente come negli mdb:
  DoCmd.OpenReport "tal dei tali", acPreview, , "(" & strsql & ")", 
acWindowNormal
il report non si apre o non si apre filtrato? e che errore da se non si 
apre?  tieni presente che il filtro deve avere una sintassi SQL 
comprensibile a SQL Server che non ha la minima idea dei nomi dei controlli 
delle maschere in Access.
Per quanto riguarda la seconda domanda, per vedere le istruzioni che 
viaggiano tra il server e Access puoi Attivare il SQL Server Profiler 
(dovrebbe esserci anche nella versione Express) che ti fa vedere esattamente 
le istruzioni inviate da Access a SQL Server ad esempio nel caso di un 
report che ha come origine dati una Select campo1, campo2 From TabellaX e 
che viene aperto con una istruzione del tipo:
  DoCmd.OpenReport "tal dei tali", acPreview, , "(" & strsql & ")", 
acWindowNormal
l'istruzione inviata a SQL server è:
SELECT "Campo1", "Campo2"  FROM "dbo"."TabellaX" WHERE (([Campo1] =
10021) )
 per cui non è vero che il client si carica tutto in locale e poi filtra, ma 
il filtro viene eseguito sul server e vengono restituiti solo i record 
filtrati.
-- 
Cinzia [Office Access MVP]
_______________________
 
www.riolab.org
---------------------------------------- 

 acWindowNormal
io ho provato e mi pare che in questo modo sql server express non
prenda i benedetti parametri che gli passo nella stringa (mi dà sempre
"errore in prossimità di "(", oppure nome del campo non trovato)
metendo il me.filter il mio report si apre e ho visto che il codice
viene interpretato correttamente, ma naturalmente come dici tu il
filtro lo fa sulla maschera e quindi mi restituisce il report con
tutti i campi senza applicare il filtro!.
Adesso riprovo con attenzione e poi ti faccio sapere nei prossimi
giorni!
ciao grazie molte alla prossima!
uli

ciao a tuuti!!
grazie cinzia di nuovo ma il tuo codice non funge!!!
mi dispiace!!!!!!
sto disperato!!!!!!!!
una seconda cosa di cui farò pure una nuova discussione:
come c........o si passano i parametri via codice ad una funzione
definita dall'utente??????
su sql server express
scusate ma io scrivo una funzione "pescainventario" cosi fatta:
definisico il paramatero @inventario come varchar(20)
select inventario from tbl monete
where inventario=(@inventario)
sull'adp di access ho una una combobox da cui pesco un elenco di
inventari che sono il parametro @inventario che devo passare alla mia
funzione pescainventario
come si faaaaa??????????
graziiiieeeeeeeeeeee

sto disperato!!!!!!!!
invece di disperarti,  che errore hai?  hai provato a guardare cosa succede 
con il Profiler?



il profiler non lo trovo sulla versione sql express e non so come
attivarlo (nè a questo punto se c'è)
per quanto riguarda il passaggio dei parametri molto semplicemente è
come se non esistesero per il report di sql server, il che mi fa
abbastanza arrabbiare. Ho dovuto mettere tutti i parametri sui report
e francamente mi sembra una bella cavolata!!!! Peccato! comunque ho
ancora un paio di report che devo aggiustare con un parametro
variabile che vorrei riuscire a mettere in codice (anche per
soddifazione personale!)
cmq credo ( e sottolineo credo, data la mia ignoranza) che il
parametro come lo hai scritto tu non funzioni perchè mancano gli
apicetti ... può essere?
DoCmd.OpenReport "tal dei tali", acPreview, , "(" & strsql & ")" mi
pare che vadano inseriti gli apicetti prima e dopo le &
che dici?
ciao


il profiler non lo trovo sulla versione sql express e non so come
attivarlo (nè a questo punto se c'è)
per quanto riguarda il passaggio dei parametri molto semplicemente è
come se non esistesero per il report di sql server, il che mi fa
abbastanza arrabbiare. Ho dovuto mettere tutti i parametri sui report
e francamente mi sembra una bella cavolata!!!! Peccato! comunque ho
ancora un paio di report che devo aggiustare con un parametro
variabile che vorrei riuscire a mettere in codice (anche per
soddifazione personale!)
cmq credo ( e sottolineo credo, data la mia ignoranza) che il
parametro come lo hai scritto tu non funzioni perchè mancano gli
apicetti ... può essere?
DoCmd.OpenReport "tal dei tali", acPreview, , "(" & strsql & ")" mi
pare che vadano inseriti gli apicetti prima e dopo le &
che dici?
Ciao ulisse,
le parentesi non sono obbligatorie, puoi anche non metterle, non cambia 
niente gli apicetti invece direi che non ci vogliono proprio, se servono 
saranno dentro a strsql.
Mi spiego meglio, se strsql fosse fosse un criterio del tipo nome = "ulisse" 
allora scriveremmo:
strsql="nome ='ulisse'"
se invece il criterio fosse prezzo< 500 scriveremmo
strsql="prezzo<500"  senza gli apici


 ha scritto nel messaggionews:1177259135....@l77g2000hsb.googlegroups.com...

ciao Cinzia,
ma per quanti sforzi abbia fatto a me non funziona affatto come dici
tu(!!!).
Inoltre non trovo questo metodo di passare criteri come con access in
nessuna documentazione di sql server nè di adp di access!!!!!
sei sicura che sia questo il modo? L'hai provato effettivamente? dove?
come? perchè non lo trovo su nessuna documentazione ufficiale????
scusami,ma per me è importante capire se esiste un modo analogo
funzionante a quello di access per passare i criteri di un report. Ti
spiego: stiamo facendo un collaudo del lavoro di una ditta per una
commessa moooolto grande e dobbiamo valutare i costi praticamente per
ogni più piccola cosa (pensa addirittura il tempo delle pause
caffè!!!!!!!!!; sto uscendo matto!!!) in particolare sto valutando i
tempi necessari per passare alcuni report a sql server da access mdb.
Per questo, senza vedere come ha fatto la ditta devo rifare la
procedura di trasferimento in diverse modalità, valutando quella più
rapida, visto che si tratta dimolti report (circa 200) ma tutti uguali
con parametri.
per questo per me è fondamentale capire se il metodo che mi suggerisci
tu è reale e testato oppure no!!
p.s.: perdonami la mia ignoranza ma io di mestiere collaudo e testo
pezzi di aereoplani e di elicotteri (!!!), quindi non mi ci ritrovo
molto in questi aspetti (!!!)
grazie

tu è reale e testato oppure no!!
realissimo e operativo
p.s.: perdonami la mia ignoranza ma io di mestiere collaudo e testo
pezzi di aereoplani e di elicotteri (!!!), quindi non mi ci ritrovo
molto in questi aspetti (!!!)
[OT]
interessante... pezzi di aeroplani ed elicotteri... ti penserò ogni volta 
che prendo un aereo :-) ,... ma un dubbio sorge spontaneo.... perchè mai 
nelle aziende ad un collaudatore di pezzi di aerei o elicotteri viene dato 
da fare un lavoro che non c'entra niente con la sua professionalità?  è come 
farsi fare un vestito da un calzolaio o una pizza dal gelataio ..... boh non 
capisco...
[/OT]
questa è la procedura che uso copiata e incollata dal mio ADP Access 2003:
Private Sub btn_stampa_Click()
On Error GoTo Err_btn_stampa_Click
    Dim stDocName As String
    wherecond = ""
    If Not IsNull(Me.cmbAmm) Then
        wherecond = "([idAmministratore] = " & Me.cmbAmm & ")"
    End If
    stDocName = Me.OpenArgs
      Select Case Me.OpenArgs
        Case "rpt_FattureDaIncassare"
            If Len(wherecond) > 0 Then
                wherecond = wherecond & " AND ([DataFattura] Between '" & 
CDate(Nz(Me.txt_daData, "01/01/2000")) & "' AND  '" & CDate(Nz(Me.txt_aData, 
Date)) & "')"
            Else
                wherecond = "([DataFattura] Between '" & 
CDate(Nz(Me.txt_daData, "01/01/2000")) & "' AND  '" & CDate(Nz(Me.txt_aData, 
Date)) & "')"
            End If
            If Me.chk_daIncassare Then
                 wherecond = wherecond & " AND ([DataPagamento] is null)"
            End If
        Case Else
    End Select
         DoCmd.OpenReport stDocName, acPreview, , "(" & wherecond & ")", 
acWindowNormal
Exit_btn_stampa_Click:
    Exit Sub
Err_btn_stampa_Click:
    MsgBox Err.Description
    Resume Exit_btn_stampa_Click
End Sub
e il report in questione ha come origine record una vista su SQL Server 
2005.


 ha scritto nel messaggionews:1177579283.7...@o40g2000prh.googlegroups.com...

ok grazie,
adesso provo e vedo e poi ti faccio sapere
grazie
p.s.: si collaudo pezzi di elicotteri e aerei militari (quindi dubito
che ci salirai mai!)
ciao