Newsgroup: it.comp.lang.visual-basic
Titolo: [VB6] procedura di anteprima di stampa......help me

If Index = 0 Then
        Dim ac As Access.Application
        Set ac = CreateObject("Access.Application")
        ac.Visible = True ' se non lo metto, non fa l'anteprima
        ac.DoCmd.RunCommand acCmdAppMaximize ' espande Access
         ac.OpenCurrentDatabase (nome_db), False
        ac.DoCmd.OpenReport "scheda_report", acViewPreview, , "[codice]=" &
Chr(34) & id & Chr(34)
        ac.DoCmd.Maximize
        ac.Application.Visible = True
        ac.DoCmd.SelectObject acReport, , True
        ac.DoCmd.RunCommand acCmdWindowHide
            If Check1(0).value = vbChecked Then
                Reports!scheda_report!scheda_sottoreport0.Visible = True
            End If
            If Check1(1).value = vbChecked Then
                Reports!scheda_report!scheda_sottoreport1.Visible = True
            End If
    With Reports!scheda_report
       If .Filter = vbNullString Then
             .FilterOn = True
             .Filter = " "
             .Filter = vbNullString
       Else
             .Filter = .Filter
             .FilterOn = True
       End If
    End With
    Set ac = Nothing
        Unload Form6
    Else
        Unload Form6
    End If
End Sub
Ormai sto IMPAZZENDO  non riesco a trovare l'errore in questa mia procedura
e ormai e
da piu di una settimana che ci lavoro sopra
 la prima volta funziona tutto perfettamente la seconda volta mi da errore
Errore di automazione,
l'oggetto invocato si è disconnesso dai client corrispondenti
questo errore me lo da quando cerca di rendere visibile il sottoreport
ho inserito perfino questo filtro che ho trovato su google, ma senza alcun
successo
    With Reports!scheda_report
       If .Filter = vbNullString Then
             .FilterOn = True
             .Filter = " "
             .Filter = vbNullString
       Else
             .Filter = .Filter
             .FilterOn = True
       End If
    End With
Ho letto  tutti i post che ci sono su google o cercato aiuto presso altri
miei amici che ci lavorano da molto piu tempo di me o cercato perfino su
msdn ma senza alcun risultato
Ripeto la prima volta mi funziona benissimissimo
Cosi spero che mi possiate aiutare ancora una volta
UN GRAZIE MILLE A CHI MI DARA UN MINIMO D'AIUTO

 Ripeto la prima volta mi funziona benissimissimo
Puro qu|0, secondo me: visual basic cerca di darti un' aiuto
agganciandosi  alla *prima*  istanza di Access che trova, ma
che non trova piu` le volte successive.
-- 
ciao, hal

Allora non ho ignorato il tuo quello che mi ha detto su Reports non per
qualcosa ma l'ho visto in numerosi post inoltre non mi da errore di nessun
tipo inerente hai Reports questo mi fa capire che non sta li l'errore
(Almeno credo)  e se non lo metto mi da perfino errore,  mi dice necessario
oggetto
Tu cosa mi consigli allora per rendere visibile un sottoreport??
 Puro qu|0, secondo me: visual basic cerca di darti un' aiuto
agganciandosi  alla *prima*  istanza di Access che trova, ma
che non trova piu` le volte successive.
Allora sai come farsi che si riprenda l'sitanza
Perche access si apre e pure il report, ma il sottoreport non diventa
visibile e mi da quell'errore prima descritto
Grazie per l'aiuto

 mi dice necessario oggetto
UH!
Scusa ma stai programmando prendendo un pezzetto di qua un pezzetto di
là?????
Che cavolo vuol dire questa affermazione?
Sai cosa stai facendo oppure no??????????
Wodka perplesso!
-- 
------------------------------------------------
Il Wodkino Nazionale è a : 
www.martek.it
Pagina Vb/Bestiario/Lamer Experience :
http://www.martek.it/go.asp?portamia=2
 New Entry nel bestiario!
:-)

Non sto facendo un puzzle solo non riuscendo a capire come mai mi dava
questo strano errore ho incominciato a leggere alcuni post
e  in quasi tutti per rendere visibile un sottoreport usavano questa riga di
codice
Reports!nome_report!nome_sottoreport.visible
E infatti funziona bene almeno la prima volra dopodiche mi da errore e non
so perchč
- Ho provato perfino a chiudere il database
-Ho provato a liberare la risorsa "ac"
Ma niente uffaaaaaa
Quando riprovo una seconda volta ecco che dopo aver aperto access e il
report si blocca sulla riga di codice
Reports!nome_report!nome_sottoreport.visible
in questo modo non rendendomi visibile il sottoreport
Leggendo la mia procedura vedi qualche errore
perchč io ci sto sbattendo la testa ma non riesco a capire quale sia
Spero che qualcuno mi possa aiutare

OK grazie mille provo lě

Dirkpitt84 wrote:
chiedi al ng di Access...se no che ci stanno a fare?

 UN GRAZIE MILLE A CHI MI DARA UN MINIMO D'AIUTO
Riporto quì la risposta che ti ho dato nel NG Access.
Quella parte di Codice che applica il Filtro che dici di aver trovato
su Google se non ricordo male l'ho suggerita io sul NG di VB al fine
di consentire l'applicazione di Formattazioni Grafiche, ma
non ha nulla a che vedere con quanto devi fare tu.
Il motivo del probabile disguido è dovuto al fatto che potrebbe
essere stata chiusa male o addirittura non chiusa l'istanza di Access
generando un'errore che potrebbe essere Error.Number=429
Ovviamente stò facendo ipotesi.
In questo caso devi prevedere una corretta gestione ERRORI.
Prima di tutto vedi con il TASK MANAGER se Access è ancora attivo.
Io ipotizzo di si in quanto nonostante il codice in cui azzeri
la Variabile Oggetto(ac) non vedo la chiusura del Database Aperto.
Pertanto è molto facile che non vada a buon fine, ma non avendo inserito
nessuna gestione errori non ti accorgi di nulla.
In quel caso ti consiglio di chiudere correttamente il Database
per mezzo del Metodo CloseCurrentDatabase, 
quindi azzerare le variabili Oggetto.
Ti suggerisco inoltre di non usare l'associazione preventiva
che ti costringe ad inserire i Riferimenti ad Access nel progetto
ma di usare l'associazione Tardiva(LateBinding) come ti mostro sotto.
In più devi inserire una corretta gestione ERRORI:
Private Sub ApriReport()
   On Error GoTo gestErrori
   Dim ac As Object
   ' Se Access non è già APERTO viene generato un'errore
   ' che gestisco nella procedura ERRORI, se al contrario 
   ' era già Aperto evito di ISTANZIARLO nuovamente.  
   Set ac= GetObject(, "Access.Application")
   ' metti tutto il tuo codice originale
   ' escluso la gestione FILTRI che non serve
   ' Al termine prima di AZZERARE le variabili 
   ' usa il metodo CloseCurrentDatabase
 
 
   Exit Sub
gestErrori:
   If err.Number = 429 Then
       'se c'è stato un errore è perchè Access non era già aperto:
       'aprilo adesso
       Set ac = CreateObject("Access.Application")
       Resume Next
 
   Else
      MsgBox "CreaSchedaTaratura()" & vbCrLf & _
             "[" & err.Number & "] - " & err.Description
   End If
End Sub
Speriamo che vada tutto.
Ciao
@Alex
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG