Newsgroup: it.comp.appl.access
Titolo: per Alessandro Romeo

Scusa Alessandro se ti disturbo in prima persona
ma ho avuto un problema con il mio pc e non ho potuto seguire i tuoi
ultimi consigli......riprendo dal mio ultimo msg nella speranza che
continui ad aiutarmi....il mio problema čera che non riuscivo (e non
riesco ancora ) cliccando su un bottone a stampare una serie di report
generati da una maschera (che ha come fonte dati una qry) in modo
automatico......
allora....ho provato ad inserire invece della stringa (che genera la
select)direttamente la query che genera la maschera(che per
incisovisualizza tutti i dati)
Set rs = CurrentDb.openrecordset("QListaXricevute")
e mi chiede sempre i due parametri (che credo siano quelli della mia
query)
Poi ho sostituito in nome della query con la tua ultima stringa ma mi
dava errori di sintassi al formato della data
togliendolo non da problemi ma in esecuzione mi risponde un popup
NECESSARIO OGGETTO
eppure ho dimensionato tutto anche la stringa..
Provo a postarti la routine che scrive:
Private Sub stpricevute_Click()
On Error GoTo Err_stpricevute_Click
    Dim stDocName As String
    Dim strsql As String
    Dim rs As Recordset
    Dim db As Database
    strsql = strsql & "SELECT Contratto.Codcontratto, "
strsql = strsql & "Contratto.DataInizio, Contratto.DataFine,
Clienti.Nome,"
Clienti.Cognome , ""
strsql = strsql & "Contratto.IDappartamento, Contratto.Clientitour "
strsql = strsql & "FROM Appartamento "
strsql = strsql & "INNER JOIN (Clienti INNER JOIN Contratto ON
Clienti.ID = Contratto.ID_Cliente) "
strsql = strsql & "ON Appartamento.IDappartamento ="
Contratto.IDappartamento ""
strsql = strsql & "WHERE (((Contratto.DataInizio)>= #
format$([Forms]![SceltaPeriodoXRicevute]![DatainizioPeriodo])# And "
strsql = strsql & "(Contratto.DataInizio)<=#
format$([Forms]![SceltaPeriodoXRicevute]![DatafinePeriodo],]))) #;"
Set db = CurrentDb
Set rs = CurrentDb.openrecordset(strsql)
 
   ' Set rs = CurrentDb.openrecordset("QListaXricevute")
 
    rs.MoveFirst
    stDocName = "Ricevute"
    While Not rs.EOF
          DoCmd.OpenReport stDocName, acPreview
          rs.MoveNext
    Wend
 
Exit_stpricevute_Click:
    Exit Sub
Err_stpricevute_Click:
    MsgBox Err.Description
    Resume Exit_stpricevute_Click
 
End Sub 
Grazie 1000
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 format$([Forms]![SceltaPeriodoXRicevute]![DatafinePeriodo],]))) #;"
Ti riposto quello che ti avevo consigliato fammi sapere
...
Le rigne astreriscate hanno un piccolo errore, devono avere gli apici e la
concatenazione
*  strsql = strsql & "WHERE (((Contratto.DataInizio)>= # " &
format$([Forms]![SceltaPeriodoXRicevute]![DatainizioPeriodo]) & "# And "
        ---------
                                   --------
*  strsql = strsql & "(Contratto.DataInizio)<=#" &
format$([Forms]![SceltaPeriodoXRicevute]![DatafinePeriodo] &"#))) ;"
                                                                 ---------
             ---------
Ciao Alessandro

 
OK ho modificato la mia subroutine che ti riposto in seguito
ma mi dice sempre NECESSARIO OGGETTO eppure mi sembra di aver
dimensionato tutto...
Private Sub stpricevute_Click()
On Error GoTo Err_stpricevute_Click
    Dim stDocName As String
    Dim strsql As String
    Dim rs As Recordset
    Dim db As Database
 
    strsql = strsql & "SELECT Contratto.Codcontratto, "
strsql = strsql & "Contratto.DataInizio, Contratto.DataFine,Clienti.Nome
,Clienti.Cognome , "
strsql = strsql & "Contratto.IDappartamento, Contratto.Clientitour "
strsql = strsql & "FROM Appartamento "
strsql = strsql & "INNER JOIN (Clienti INNER JOIN Contratto ON
Clienti.ID = Contratto.ID_Cliente) "
strsql = strsql & "ON Appartamento.IDappartamento ="
Contratto.IDappartamento ""
strsql = strsql & "WHERE (((Contratto.DataInizio)>= #" &
Format$([Forms]![SceltaPeriodoXRicevute]![datainizioPeriodo]) & "# And "
strsql = strsql & "(Contratto.DataInizio)<= #" &
Format$([Forms]![SceltaPeriodoXRicevute]![DatafinePeriodo]) & "#));"
Set db = CurrentDb
Set rs = CurrentDb.openrecordset(strsql)
 
   ' Set rs = CurrentDb.openrecordset("QListaXricevute")
 
    rs.MoveFirst
    stDocName = "Ricevute"
    While Not rs.EOF
          DoCmd.OpenReport stDocName, acPreview
          rs.MoveNext
    Wend
 
Exit_stpricevute_Click:
    Exit Sub
Err_stpricevute_Click:
    MsgBox Err.Description
    Resume Exit_stpricevute_Click
 
End Sub
Grazie
-- 


 dimensionato tutto...
Ciao,
In un modulo prova ad andare in Strumenti --> Riferimenti e verifica la
presenza di :Microsoft DAO 3.51 object library...
Ciao Alessandro

 Ciao Alessandro
Ciao ho controllato è presente Microsoft DAO 3.6 object library che avevo
già aggiunto
su un tuo precedente consiglio
P.S. ho aggiunto il 3.6 perchè il 3.51 non c'è proprio
che cosa può essere????
ciao

OKKAPPA Alessandro
ho controllato un pò la sintassi e sono riuscito a risolvere il problema...
...ma... non avendo la stampante collegata ho cercato di far aprire i report
in anteprima
ma mi apre solo il primo.......why???????????
ciao e grazie mille del tuo aiuto.............

 ciao
Ciao,
prova ad impostare un punto di interruzione(f9) dopo la costruzione della
query e nella finestra immediata(ctrl + g) verifica il contenuto della
query(?strsql) per verificare se il problema e' nella stringa o nella
gestione del database.Posta il contenuto della stringa se non sei sicuro che
poi vediamo.
Ciao Alessandro


Ciao Alessandro.....non ne potrai piů.......
...ma abbi pazienza sono un neofita del codice e ho un pň di problemi....
ho inserito il punto di interruzione aperto la finestra immediata ma non
capisco
come posso verificare la stringa....ho provato ad andare nella finestra
immediata e scrivetre
?nomestringa...dato invio ma nulla......
Come ti ho detto sono riuscito a risolvere il problema del NECESSARIO
OGGETTO
ma mi si visualizza solo il primo record della query......eppure la maschera
con la stessa query mi visualizza tutti i record.....
provo di seguito a postarti il ciclo che effettuo dopo il recordset
Set db = CurrentDb
Set rs = CurrentDb.openrecordset(strsql)
    rs.MoveFirst
    stDocName = "Ricevute"
    While Not rs.EOF
          DoCmd.OpenReport stDocName, acPreview
          rs.MoveNext
    Wend
ciao

 ciao
Ciao,
purtroppo non ci avevo pensato prima ma una volta che hai aperto il report,
risultano aperto non viene aperto nuovamente, quindi all'interno del ciclo
se vuoi aprirli tutti contemporaneamente in preview, devi creare un report
per ogni record che hai nella query.
Ti basta aggiungere dentro il while l'istruzione
DoCmd.CopyObject [databasedestinazione][, nuovonome][, tipooggettoorigine][,
nomeoggettoorigine](guarda sull'help per maggiori informazioni)
dove nuovonome deve essere una stringa composta da ricevute ed un numero
incrementale
mentre se vuoi mandare tutto in stampa devi in realta' stamparne "uno per
volta " inserendo alla fine del ciclo:
DoCmd.Close [tipooggetto, nomeoggetto], [salva] sempre l'help per saperne di
piu'
Spero di essere sato chiaro e che sia giusto cio' che ti ho scritto nel caso
non lo sia e qualcuno stia seguendo il threa spero mi corregga...
Ciao Ale