Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Setting di Caselle di Testo in Report Access con VB

    Buongiorno a tutti, ho un problema con un report Access; sull'evento di apertura del Report, ho scritto uno spezzone di codice VB che esegue alcune operazione basandosi su dei valori recuperati da una Query SQL... Avrei bisogno di riempire una casella di testo del report con il valore calcolato dalla query...come posso fare?
    Ho provato in mille modi ma ottengo i più disparati errori!

  2. #2
    Ciao
    Puoi mostrare almeno uno di questi mille modi??
    Puoi indicare il tipo di errori che ricevi??

    Facci sapere....
    Ciao

  3. #3
    Mi vergogno un pò perchè non sapendo come farlo ho provato a scriverlo come fosse una normale casella di testo modificando quindi la proprietà Value della stessa ma non funzionava...

    Se scrivo Report.miocampo = rst(0).Value è una cavolata giusto?

  4. #4
    Hai scritto solo quella riga di codice? Dov'è il resto? Cos'è rst? Aiutaci ad aiutarti!
    CHE TIPO DI ERRORE RICEVI?
    Hai provato con:
    codice:
    miocampo.Text = rst(0).Value
    Facci sapere...
    Ciao

  5. #5
    Scusami, ti posto uno spezzone di codice che viene eseguito all'apertura del report:

    Private Sub Report_Open(Cancel As Integer)
    Dim db As DAO.Database
    Dim rst As DAO.Recordset
    Dim intestatario As Integer

    intestatario = Form_Emissione_Ricevuta.EmissioneRimborsoRicerca.V alue
    cri = "SELECT Sum(Rimborsi_Viaggio.KmPercorsi), Sum(Rimborsi_Viaggio.SpesaVitto), Sum(Rimborsi_Viaggio.SpesaAutostrada), Sum(Rimborsi_Viaggio.SpesaTelefono), Sum(Rimborsi_Viaggio.SpesaParcheggio), Sum(Rimborsi_Viaggio.Varie) FROM Rimborsi_Viaggio WHERE Rimborsi_Viaggio.Richiedente = " & intestatario & " AND Rimborsi_Viaggio.Pagato='Si' AND Rimborsi_Viaggio.DataViaggio >= #" & StartInterval & "# AND Rimborsi_Viaggio.DataViaggio <= #" & EndInterval & "# ;"

    Set db = CurrentDb()
    Set rst = db.OpenRecordset(cri, dbOpenSnapshot, dbReadOnly)
    totaleSpese = (rst(0).Value * 0.5) + rst(1).Value + rst(2).Value + rst(3).Value + rst(4).Value + rst(5).Value

    ReportTotaleKmPercorsi.Text = rst(0).Value
    'qui poi dovrei settare altri campi sempre nello stesso modo della riga precedente

    L'errore che ottengo è il seguente:
    "Impossibile fare riferimento ad una proprietà o ad un metodo per un controllo a meno che non abbia lo stato attivo"

  6. #6
    Ciao
    questo è l'errore causato dall'errata indicazione che ti ho dato io.
    Prima di questo che altro errore ricevevi?


    Facci sapere...
    Ciao

  7. #7
    ho provato a scrivere come ultima riga del codice precedente anche:

    Report_Prova_Report.totaleKmPercorsi = rst(0).Value

    Resituendomi il sequente errore: "Errore di runtime '-2147352567' Impossibile assegnare un valore all'oggetto.

    Ma, lasciando perdere i miei tentativi precedente, come si fa ad assegnare il valore di un recordset (nel mio caso rst(0).Value) ad una casella di testo all'apertura di un report? Grazie mille per la tua disponibilità!

  8. #8
    Il metodo per assegnare il valore è corretto .... probabilmente è sbagliato il tipo di oggetto che utilizzi.
    Sei sicuro che la casella di testo(se è questo il tipo) non sia associata già ad un origine dati?

    Prova ad usare una label e ad assegnargli il valore in questo modo:

    codice:
    label1.Caption=rst(0).Value
    oppure
    codice:
    label1=rst(0).Value
    Facci sapere...
    Ciao

  9. #9
    Ciao, ho risolto! Ho cambiato tipo di controllo, invece di una casella di testo ho cambiato la caption di un etichetta ed ora funziona!! Grazie mille!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.