Access 2000 nome allegato mail

di il
1 risposte

Access 2000 nome allegato mail

Ciao a tutti!!!!
da access 2000 invio una mail dove come allegato c'è un report.
la domanda è la seguente: il nome dell'allegato è il nome del report, come faccio a cambiarlo (il nome dovrebbe essere variabile)???
Con il comando "outputTo" si può mettere il nome variabile, non c'è un modo per unire i due comandi?


Matteo

1 Risposte

  • Re: Access 2000 nome allegato mail

    Per quello che sono le mie conoscenze ti posso consigliare di creare il report da inviare tramite e-mail ogni qual volta è necessario



    un esempio per aiutarti a fare il tutto può essere il seguente:

    Sub CreaReport()
    On Error GoTo Err_CreaReport
    DoCmd.SetWarnings False
    Dim ctl As Control
    Dim rptName As String
    Dim rpt As Report
    Dim fld As DAO.Field
    Dim r As DAO.Recordset
    Dim i As Integer
    Dim pippo As String
    pippo = InputBox("Immetti il nome del report")

    ' Restituisce una variabile di tipo dati Report che punta
    ' al nuovo oggetto Report.
    Set rpt = CreateReport

    rptName = rpt.Name


    ' Imposta le proprietà per il nuovo report.
    With rpt
    .RecordSource = "Q_elencomensileCI" 'origine dei dati

    .Caption = pippo
    End With

    rpt.Section(acPageHeader).Height = 250

    Set r = CurrentDb.OpenRecordset(rpt.RecordSource)

    ' Crea intestazione report
    Set ctl = CreateReportControl(rptName, acLabel, acPageHeader, , , 700, 20, 10000, 300)

    ctl.Caption = pippo
    ctl.Width = 10000
    ctl.ForeColor = RGB(0, 0, 0)
    ctl.FontSize = 12
    ctl.FontBold = True

    i = 0
    For Each fld In r.Fields

    ' Crea etichette
    If i = 0 Then
    Set ctl = CreateReportControl(rptName, acLabel, acPageHeader, , fld.Name, i + 700, 300, 4000, 200)
    ctl.TextAlign = 1
    ctl.Caption = Left(fld.Name, 30)
    ctl.Width = 2000
    Else
    Set ctl = CreateReportControl(rptName, acLabel, acPageHeader, , fld.Name, i + 2700, 300, 500, 200)
    ctl.TextAlign = 3
    ctl.Caption = Left(fld.Name, 2)
    ctl.Width = 500
    End If
    ctl.FontBold = True
    If i <> 0 Then
    ctl.ForeColor = RGB(0, 0, 0)
    End If

    ' Crea campi testo
    If i = 0 Then
    Set ctl = CreateReportControl(rptName, acTextBox, , , fld.Name, i + 700, 20, 4000, 200) '700, 50, 500, 300)
    ctl.TextAlign = 1
    Else
    Set ctl = CreateReportControl(rptName, acTextBox, , , fld.Name, i + 2700, 20, 500, 200) '700, 50, 500, 300)
    End If
    ctl.ControlSource = fld.Name
    ctl.Format = "##0"
    If i = 0 Then
    ctl.FontBold = True
    End If
    ''''''''''''''''''''''''''''''''''''''''
    '' Crea totali
    'Set ctl = CreateReportControl(rptName, acTextBox, acPageFooter, , fld.Name, i + 700, 50, 500, 300)
    'If i <> 0 Then
    ' ctl.ControlSource = "=DSum('[" & fld.Name & "]', 'Q_elencomensileCI')"
    'Else
    ' ctl.ControlSource = "='Tot.'"
    'End If
    ''''''''''''''''''''''''''''''''''''
    ctl.Format = "##0"
    ctl.ForeColor = RGB(0, 0, 0)
    ctl.FontBold = True

    i = i + 550
    Next
    rpt.Section(acDetail).Height = 350
    Set ctl = CreateReportControl(rptName, acLine, acPageHeader, , , 700, 550, 12500, 20)
    Set ctl = CreateReportControl(rptName, acLine, acDetail, , , 700, 250, 12500, 20)
    Set ctl = CreateReportControl(rptName, acLine, acPageFooter, , , 700, 10, 12500, 20)
    Set ctl = CreateReportControl(rptName, acTextBox, acPageFooter, , , 700, 400, 1000, 300)
    ctl.ControlSource = "=Date()"
    ctl.Width = 5000
    ctl.FontBold = True
    ctl.TextAlign = 1

    ModificaOrient rpt
    DoCmd.Close acReport, "a", acSaveYes
    DoCmd.SetWarnings True
    DoCmd.OpenReport rptName, acViewPreview ', , "[mese]=" & Forms!s_sezione.[mese]

    'DoCmd.DeleteObject acReport, rptName

    Exit_CreaReport:
    Exit Sub

    Err_CreaReport:
    MsgBox Err.Description
    Resume Exit_CreaReport

    End Sub
    Sub ModificaOrient(rpt As Report)
    Const DM_PORTRAIT = 1
    Const DM_LANDSCAPE = 2
    Dim StringaPer As str_DEVMODE
    Dim DM As type_DEVMODE
    Dim strModalitàExtraPer As String

    If Not IsNull(rpt.PrtDevMode) Then
    strModalitàExtraPer = rpt.PrtDevMode
    StringaPer.RGB = strModalitàExtraPer
    LSet DM = StringaPer
    DM.lngCampi = DM.lngCampi Or _
    DM.intOrientamento ' Inizializza campi.
    DM.intOrientamento = DM_LANDSCAPE
    LSet StringaPer = DM ' Aggiorna la proprietà.
    Mid(strModalitàExtraPer, 1, 94) = StringaPer.RGB
    rpt.PrtDevMode = strModalitàExtraPer
    End If
    End Sub

    milaion
Devi accedere o registrarti per scrivere nel forum
1 risposte