Condividi tramite

[Access] Comando Open report selezionare data

Anonimo
2010-01-15T14:59:51+00:00

ciao ragazzi sono nuovo e penso si il posto giusto x esporvi il mio problema

Io ho una maschera dove inserisco degli ordini

poi ho creato un bottone dove attraverso un codice voglio che mi crei un report che successivamente verra inviato via mail .

Il problema è che con il codice

[code]Option Compare Database

Private Sub Comando141_Click()

On Error GoTo Err_Comando141_Click

    Dim stDocName As String

    stDocName = "Ordini Query"

DoCmd.OpenReport "Ordini Query", acViewPreview, , "Id =" & Me!ID

   ' DoCmd.SendObject acReport, "Ordini Query", acFormatRTF, "email non mostrato", , , "oggetto della email", "corpo della mail"

   ' DoCmd.SendObject acReport, stDocName

Exit_Comando141_Click:

    Exit Sub

Err_Comando141_Click:

    MsgBox Err.Description

    Resume Exit_Comando141_Click

End Sub

[/code]

Mi crea il report del record che ho aperto nel form; ma io volevo che lui mi selezionasse il report e anzichè tramite il parametro ID attraverso il parametro " Data Ordine"

Ho provato a sostituire ID con Data ordine ma non funziona mi da errore sintassi

[code]Option Compare Database

Private Sub Comando141_Click()

On Error GoTo Err_Comando141_Click

    Dim stDocName As String

    stDocName = "Ordini Query"

DoCmd.OpenReport "Ordini Query", acViewPreview, , "Data Ordine =" & "10/10/2009"

   ' DoCmd.SendObject acReport, "Ordini Query", acFormatRTF, "email non mostrato", , , "oggetto della email", "corpo della mail"

   ' DoCmd.SendObject acReport, stDocName

Exit_Comando141_Click:

    Exit Sub

Err_Comando141_Click:

    MsgBox Err.Description

    Resume Exit_Comando141_Click

End Sub

[/code]

come posso fare ?

vi ringrazio

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2010-01-19T10:18:43+00:00

Ciao Ale,

sì, basta cambiare la caption del report prima della SendObject.

esempio:

Private Sub Comando141_Click()

On Error GoTo Err_Comando141_Click Dim stDocName As String Dim Data AS String stDocName = "Ordini Query" Data = InputBox("inserire DATa", , Me!DataOrdine) DoCmd.OpenReport stDocName, acViewPreview, , "[Data Ordine] = " & Format(Data, "#mm/dd/yyyy#"), acHidden Reports(stDocName).Caption = Format(Data, "dd-mm-yyyy") DoCmd.SendObject acReport, stDocName, acFormatRTF, Me!DataOrdine, , , "oggetto della email", "corpo della mail" DoCmd.Close acReport, "Ordini Query"

Exit_Comando141_Click: Exit Sub

Exit Sub Err_Comando141_Click: MsgBox Err.Description Resume Exit_Comando141_Click End Sub

Per la caption del report ho utlizzato il trattino perchè la / non è un carattere valido per i nomi dei files.

Ciao

Giorgio

La risposta è stata utile?

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2010-01-16T14:48:15+00:00

Ciao Ale,

puoi aprire il report in visualizzazione anteprima ma nascosto, passando nel parametro WindowMode la costante acHidden, poi dopo DoCmd.SendObject lo chiudi subito

Esempio sintetico:

Private Sub Comando0_Click()

On Error GoTo Comando0\_Err
DoCmd.OpenReport "Ordini Query", acViewPreview, , CondizioneWhere , acHidden

On Error Resume Next
DoCmd.SendObject acSendReport, "Ordini Query", acFormatRTF, ecc ecc
Err.Clear

On Error GoTo Comando0\_Err
DoCmd.Close acReport, "Ordini Query"

Comando0_Exit: Exit Sub

Comando0_Err: MsgBox Err.Number & " " & Err.Description Resume Comando0_Exit

End Sub

cambia CondizioneWhere con il filtro sulla data e completa gli ecc ecc con i parametri da te usati.

Ciao

Giorgio Rancati

La risposta è stata utile?

0 commenti Nessun commento

16 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2010-01-15T15:48:35+00:00

    ho trovato x quanto riguarda l'input box bastava inserire

    DoCmd.OpenReport "Ordini Query", acViewPreview, , "[Data Ordine] = " &"#"& Data &"#"

    rimane il problema di non fare apparerire l'openrecord come posso fare ?

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2010-01-15T15:34:25+00:00

    grazie x la tempestività

    ora avrei un'altra curiosità

    vorrei mettere una input box prima dell'openreport ma mi sa che ho sbagliato qualcosa xkè mi elabora un report senza dati

    Private Sub Comando141_Click()

    On Error GoTo Err_Comando141_Click

    Dim stDocName As String

    Data = InputBox("inserire data")

    stDocName = "Ordini Query"

    DoCmd.OpenReport "Ordini Query", acViewPreview, , "[Data Ordine] = " & Data

    MsgBox "DataOrdine = " & Data, vbCritical

    ' DoCmd.SendObject acReport, "Ordini Query", acFormatRTF, Me!DataOrdine, , , "oggetto della email", "corpo della mail"

    ' DoCmd.SendObject acReport, stDocName

    Exit_Comando141_Click:

    Exit Sub

    Err_Comando141_Click:

    MsgBox Err.Description

    Resume Exit_Comando141_Click

    End Sub

    inoltre vorrei anche sapere se è possibile rendere invisibile il report nella funzionalità OpenReport in modo che invii solo il report via mail senza farlo apparire .

    Grazie per la disponibilità

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2010-01-15T15:22:50+00:00

    Ciao GiacoXp,

    L'errore di sintassi deriva dal fatto che il campo Data Ordine contiene uno spazio quindi viene visto come due campi, per risolvere racchiudilo tra parentesi quadre.

    Poi le date in Access devono essere passate nel formato mm/gg/aaaa e racchiuse dal #

    Quindi il filtro per la data 10 Dicembre 2009  sarà:


    "[Data Ordine] = " & "#12/10/2009#"


    Se voui filtrare in base alla data odierna:


    "[Data Ordine] = " & Format(Date(),"#mm/dd/yyyy#")


    Ciao

    Giorgio Rancati

    La risposta è stata utile?

    0 commenti Nessun commento