Export Record to PDF

Ok, this is driving me nuts....

Utilizing Access 2007 I have a report that I want to export as a PDF. The report is based on a query that calls for the specific ID number from a form (ID = [Forms]![frmPeerValid]![ID]). Query works fine, and if you open the report it works fine, but when I export the report via a command button on the form, all the records are exported. How do I export to PDF just the record that the individual is on? Code is as follows:

	Private Sub cmdEmail_Click()
'On Error GoTo ErrorHandle

Dim strAttachPath As String
Dim strAttachPath2 As String

'Timestamp the completed validation
If IsNull(Me.ValCompDt) Then
    Me.ValCompDt = Now()
End If

'Save the record
DoCmd.RunCommand acCmdSaveRecord

'Export the report to Word RTF
strAttachPath = "C:temp"
strAttachPath2 = "PeerValidation" & format(Date, "yyyymmdd") & ".pdf"

If Dir(strAttachPath & strAttachPath2)  "" Then
        Kill strAttachPath & strAttachPath2
End If

DoCmd.OutputTo acOutputForm, "frmPeerValid", acFormatPDF, strAttachPath & strAttachPath2, False, , , acExportQualityScreen

Post your answer or comment

comments powered by Disqus

I am trying to Export a single record from my customer table and using below codes -

Private Sub lblPDF_Click()
Dim myPath As String
Dim stDocName As String
Dim theFileName As String
stDocName = "rptCustomerMaster" (is my Report File name)
>>>DoCmd.OpenReport stDocName, acPreview, , "CustId = " & Nz(Me.CustID, 0)
myPath = "C:..."
theFileName = "CustID " & CustID & ".pdf"
DoCmd.OutputTo acOutputReport, stDocName, acFormatPDF, theFileName, True
End Sub

Having errors on the highlighted code, could somebody guide me how to resolve it, or is there any support available to export record into PDF file?

Hi All,

I've search hi and low and can't find answer. Is there a way to link a record to pdf bookmark, then open the pdf to that bookmark?



Has anyone ever experienced characters being converted to weird symbols when exporting to pdf?

Using Access 2010, I use a make-table query to generate a table. One of the fields "Notes" occasionally has hard-returns within the records. I run an update query to replace the hard return with a space:
UPDATE Tablename SET FIELD_NAME = replace([FIELD_NAME], chr(10), chr(32));

and another to shorten "Notes" to 255 characters and add an ellipsis at the end:
UPDATE Tablename SET FIELD_NAME = left([FIELD_NAME],255)&"...";

I use a set of queries to generate several reports based on this table, and a macro to export them all to pdf. When I open the files in acrobat, the "space" I created in the first update query is converted to this bizarre ?-in-a-box character. I have tried replacing the chr(32) with "..." and got the same result. I can't publish the report with these unknown characters, but don't know where they come from or how to get rid of them.

Thanks in advance for any support.

I have been reading through all the threads concerning exporting reports from Access 97 to Word and it clearly seems impossible to export graphics such as boxes. However I have reports where boxes are drawn in particular places depending on the underlying data and I would like to e-mail them. A few people mentioned the solution of exporting to PDF but in order to do so I would have to buy the Adobe writer. Before I do so, has anybody actually done this, and does it work OK? At the other end the recipients would only need to view and print so they could use the free reader.


Im new here and have been using Access for a number of years but not to its full capabilities and am very willing to learn.

basically im wondering first of if theres a way to export reports to PDF format and to include images (letter heads) which i have include with the access report?

also is there a site where i can download useful add-ons etc for access to make life a lot easier?

I would be very grateful of any help


Hi fellows

I have a special problem. I need to export reports to pdf format (which I am doing with either Acrobat 6 prof or the - very good - Freeware "Freepdf XP"). The report contains hyperlink fields.

originally - and most comfortably - I thought of file server addresses of the type "file://xxx/yyy/123.pdf". (My files are located on this file server) For some reason, I never found a working syntax for creating a link, that works with Acrobat reader (7.0.7).

So I thought I have to cope with "http://" type adresses. Now, there is some strange phenomenon. I combine the link from several parts into a working link. This is working perfectly on table level. Converted into an Access report, the link is dead. Converting the access report into pdf, links are working again - but not always. Somehow lately, they get corrupted - i.e. during the conversion, some letters or numbers are added to the original link address - I have no idea, where they come from.

So finally - I try to play with "xml" export possibilities. Ì have a report based on a filled field in a form. That means, that the report looks for the contents of that field in this form. I tried to create a makro for export to xml, but there is a devil`s circle in this:

If I open the report and want to export it to xml, I get a message, that I have to close the report before exporting it.

If I try to select the report and right click for "export", it asks me for the contents of the form field.

If I write a makro,which I open from this form - with the basic commands (1) "select the report xxx" and then (2) use "export" command, it renders the form useless (i.e. opens the "export to" window) and I get the request for the form field again.

I do not want to loose my flexible report - form relationsship.

So finally my questions

1) Is there a possibility for pdf export with working links (file server addresses preferred because of system speed)

2) how may I export reports in this configuration to xml - and is it worth it ?? (My reports have a lot of subreports with special layout - therefore the pdf export on the first hand ...)

Sorry for this long message

Thank you


I have a macro which exports my records to excel and to My documents.

But I would like to put the excel file allways in different places, depending on the user account.

How can I tell to macro that I want my records for instance to "MyServerSharedFolder%username%"


Hi all,

I've seen a lot of repeated questions from newbies about exporting to text, but so far I haven't come across a scenario like mine. Apologies if I've overlooked something.

I'm using Access 2003 and I have a database that contains a record for each article that appeared in a certain newspaper over the last 30 years (~70,000 records). Each record has a field for year, month, issue, page, title, and text. The text field contains multiple lines of HTML as well as the text of the article itself -- the program designed for viewing these articles calls on this field to create an html document that resembles the original newspaper page in the GUI.

What I would like to generate is a separate .TXT file for each article containing just the text of that article and a filename system that identifies each file by year, month, page, and possibly title (i.e., about 70,000 separate text files). I'm not sure if I want the title within the document or just in the filename, but I'm assuming that wouldn't be difficult to change.

In other words, I'm trying to work backwards, reconstructing the text files that the person who made the database probably has sitting on a disk somewhere (but I don't have access to).

I've read about using the TransferText method, setting up an export spec and looping it in VBA, etc., but the closest solution appears to be Microsoft's page on exporting records to separate HTML files, which mentions: "You can create a Microsoft Visual Basic for Applications (VBA) program that enumerates through the record set and uses the PRINT statement to output each record as a separate HTML file." After doing this I guess I would batch convert from HTML to TXT. Unfortunately I am new to Access and don't know VBA.

Can anyone provide any suggestions?


I am an Access rookie. I am creating a database to catalog some of my magazines. I have been scanning my magazines to PDFs and would like to have a database to quickly and easily search the articles. What I am stuck on is how to attach or link the PDF file to the record. I would prefer a dynamic link where you can open the PDF from within access. Thanks in advance for your help.


I've got a button on my form to write the current record to a PDF - only trouble is it writes all the records not just the current one...

Can anyone help?

I have a report that, due to the amount of data and layout requirements, is much larger than a legal sheet of paper. However, I have found if I export the report to PDF it works just fine. My problem is this...It appears the export method I am using relies on the default printer installed on the machine. This causes a problem because some of my users have a printer that does not play well with the large report size, and thus splices the report into two pages. Any idea on how I could force a page size on export? OR is there another way to down-size a report to a printable fashion on a 8x11 sheet of paper? Like I said, on my machine it exports to PDF fine and prints on an 8x11 sheet. Thanks in advance for your help.

Code: DoCmd.OutputTo acOutputReport, "rptDivBreakdown", acFormatPDF, strExportPath & "rptDivBreakdown.pdf"

Hey guys,

Right now I have a main table in my database where I am trying to export a group of 50 or so records containing about 100 fields each to excel.

The problem is, my current export code creates a whole new excel sheet with new formatting. I would like to instead add my records to a given worksheet and to have the records start populating at a given row.

An example would be for the data to populate the data sheet "Worksheet 1" at row 11, column A. Any ideas of formatting I should use to approach this? Or if it is even possible?

Thanks guys.

Exporting report to PDF works sort of easy. But how does one design the layout of the report, to make it look good on "exported excel files"?


I am having trouble exporting single records from a form to pdf.
I have the following code so far. but it gives:

Run time error 3464
Data type mismatch in criteria expression.

Debug highlights:
Me.RecordSource = "Select * From Propertyextract Where [propref] = " & _

Any help appreciated.

	Private Sub cmdExportPDF_Click()
 Dim MyDB As DAO.Database
    Dim MyRS As DAO.Recordset
    Dim strSQL As String
    strSQL = "Select Propertyextract.[propref] From Propertyextract;"
    Set MyDB = CurrentDb
    Set MyRS = MyDB.OpenRecordset(strSQL, dbOpenForwardOnly)
    With MyRS
      Do While Not MyRS.EOF
        Me.RecordSource = "Select * From Propertyextract Where [propref] = " & _
        DoCmd.OutputTo acOutputForm, "FrmPropertyAttributes", acFormatPDF, "" & ![propref] & ".pdf"
    End With
    Set MyRS = Nothing
End Sub


I am having trouble exporting single records from a form to pdf.
I have the following code so far. but it gives:

Run time error 3464
Data type mismatch in criteria expression.

Debug highlights:
Me.RecordSource = "Select * From Propertyextract Where [propref] = " & _

Any help appreciated.

Code: Private Sub cmdExportPDF_Click() Dim MyDB As DAO.Database Dim MyRS As DAO.Recordset Dim strSQL As String strSQL = "Select Propertyextract.[propref] From Propertyextract;" Set MyDB = CurrentDb Set MyRS = MyDB.OpenRecordset(strSQL, dbOpenForwardOnly) With MyRS Do While Not MyRS.EOF Me.RecordSource = "Select * From Propertyextract Where [propref] = " & _ ![propref] DoCmd.OutputTo acOutputForm, "FrmPropertyAttributes", acFormatPDF, "" & ![propref] & ".pdf" .MoveNext Loop End With MyRS.Close Set MyRS = Nothing End Sub


I'm very new to Access and I've been tryin whole day to get one page PDFs from my report which contains 531 records. Idea is to make info cards out of each one row record. I can easily export pdf which contains all records but I can't manage to get one record to one page pdf.

I think I need some sort of VBA code, but I couldn't get any of those that I found from googling to work.

My database has one table which contains all the records and than I have also made on report from it where one row is roughly one A4 page.

I'm very happy if somebody can help me

I have pasted a link below to a database I am working on that tracks contract documents. I am having some trouble trying to export a report that is emedded in a form using the BrowseTo method (I believe this feature is new in Access 2010 so it may not work in earlier versions).

Click the "Report Center" tab, then click the "Active Agreements" link on the left side of the page. Select the first option on the pop-up window ("Select a Category"), click OK, then on the next window select "Category 1" in the drop-down menu and click OK.

The "rptActiveContractsByLocation" report will load using the BrowseTo method. On the bottom of the report I added a link to export to PDF. This link uses the DoCmd.OutputTo method and saves a PDF of the report on the user's desktop.

Here is the problem: the PDF report that is generated shows all records; it is not the filtered report that is displayed on the screen. I would like to have a link or button the user can click if they want to export the exact report displayed on screen with the filters applied.

Any help would be greatly appreciated.

Here is the sample database: http://dl.dropbox.com/u/65832352/Exa...Database.accdb

I have a monthly report that I export to PDF. Once exported, I distribute them to my partners. My parntners then review the graphs on the report, and forward their comments to be inserted into the final meeting reports.

Is it possible to have Access create the report with user input boxes that will be available when opened by my partners in Adobe Reader?

I would like the partners to be able to input their own notes directly into the provided PDFs without the need for everyone to have Adobe Acrobat.

Hi I am trying to save a report to pdf for the current record but cant seem to manage this.

I remove the "POID = " & Me.POID, it will save to the correct place but it is not the information on the report for the correct record

Does anyone know what is wroing with the following code

Private Sub Command29_Click()
On Error GoTo Err_Command29_Click
Dim stDocName As String
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70

stDocName = "Purchase Order Print"

DoCmd.OutputTo acOutputReport, stDocName, "POID = " & Me.POID, "PDF Format (*.pdf)", "ServercmmAdminPurchase OrdersNew P0 2010" & PurchaseOrderNo & "--" & POID & ".pdf", False

Exit Sub
MsgBox Err.Description
Resume Exit_Command29_Click
End Sub


p.s the error i receive when i run the code is " an expression you entered is the wrong data type for one of the arguments"

I'm using MS Access 2003.

I have code that exports the results of a query to CSV file using DoCmd.TransferText. However, since this export file will be used in an EDI transmission, I also need to prepend header records and append trailer records to the extract.

Can/should this be done within Access? What's the best approach?

Thanks for any help you can give.



This will have a simple solution (hopefully).

I have a word document with bookmarks and VBA code to export records and place them within the bookmarks:

	Private Sub Labels_Click()

Dim MyWord As Word.Application
Dim PathDocu As String

Set MyWord = New Word.Application
PathDocu = "L:Factory Database"

With MyWord
    .Documents.Open (PathDocu & "L4731.doc")
    .ActiveDocument.Bookmarks("Description").Range.Text = Me.Description
    .ActiveDocument.Bookmarks("Part_No").Range.Text = Me.Part_No
    .ActiveDocument.Bookmarks("Qty").Range.Text = Me.Part_Qty
.Visible = True
End With
Set MyWord = Nothing

End Sub

The only problem is only the first record is placed in the document.

1) How do I place all records in the document?

2) How do I place all records in the document until page is full. ie if I have 10 records and 80 places how do I repeat the documents until the places are full.

To put it in context I am printing address labels but would like pages of them rather than 10 address labels and lots of blank stickers!

I have a challenging Access to Excel export problem: I would like to export the results of a query to excel such that each record is exported to it's own excel workbook, and within each workbook, I would like certain data fields to appear on different worksheets. I was able to export to unique workbooks with the following code:

	Option Compare Database
Option Explicit

'Declare the record selector criteria
Dim strCriteria As String

Function funGetCriteria()

'set up the alias for query to use
funGetCriteria = strCriteria

End Function

Sub ExportToXL_test()
'test sub for debugging
'Declare variables
Dim qdf As DAO.QueryDef
Dim rs As DAO.Recordset
Dim strSql As String
Dim strPath As String

'Set path to where files will be output
strPath = "C:"
'SQL to select distinct record
strSql = "SELECT DISTINCT tblSherriesExport.AgreementID FROM tblSherriesExport"
'Set-up Loop function to select each record in sequence
Set qdf = CurrentDb.CreateQueryDef("", strSql)
Set rs = qdf.OpenRecordset

Do While Not rs.EOF
strCriteria = rs!AgreementID
'Debug.Print funGetCriteria

'Export files to Excel 
DoCmd.OutputTo acOutputQuery, "qrySherries", acFormatXLS, strPath & strCriteria & ".xls"
'Loop to next record

Set rs = Nothing
Set qdf = Nothing

End Sub

My problem is that all of the output from this goes onto one worksheet within each workbook. How could I get certain data fields to go into separate worksheets within each workbook?

Please help.

I am trying to export a record from an Access form to the workbook in Excel. There is no problem when the workbook is not open, but I would like to keep on exporting to the workbook when it is open. I can not figure out to do this without Excel opening a new workbook. Thanks in advance. Here is my code so far:

	Private Sub ExportToExcel_Click()
On Error GoTo Err_ExportToExcel_Click
Dim objXL As Object
Dim xlWB As Object
Dim xlWS As Object
Dim i As Integer
On Error Resume Next
'Open the workbook if not open.
If Err.Number  0 Then
  MsgBox "Not Open"
  Set objXL = CreateObject("Excel.Application")
  objXL.Visible = True
  Set xlWB = objXL.Workbooks.Open("C:Ordrebekreftelseroppsettordre.xls")
  SetAttr "C:Ordrebekreftelseroppsettordre.xls", vbNormal
  Set xlWS = xlWB.Worksheets(1)
  i = xlWS.UsedRange.Rows.Count + 1
    MsgBox "Open"
    i = xlWS.UsedRange.Rows.Count + 1
    'If the workbook is already open, then export the current record to the open workbook.
    'How do I do this???
End If
On Error GoTo 0
'MsgBox xlWS.UsedRange.Rows.Count
' assign records to specific cells
  xlWS.Range("A" & i).Value = Me.OrgNr
  xlWS.Range("B" & i).Value = Me.Firmanavn
  xlWS.Range("C" & i).Value = Me.KontaktPerson
  xlWS.Range("D" & i).Value = Me.Pris
  xlWS.Range("E" & i).Value = Me.Dato
  xlWS.Range("F" & i).Value = ""
  xlWS.Range("G" & i).Value = "Jørn Madsen"
  xlWS.Range("H" & i).Value = Me.Epostadresse
  xlWS.Range("I" & i).Value = Me.Postadresse
  xlWS.Range("J" & i).Value = Me.Postnummer
  xlWS.Range("K" & i).Value = Me.Poststed
  xlWS.Range("L" & i).Value = Me.Kommentarer
  xlWS.Range("M" & i).Value = ""
'xlWB.SaveAs "C:Ordrebekreftelseroppsettordre.xls" 'Save the Excel file
'xlWB.Close 'Close the Excel file.
Set objXL = Nothing 'Destroy the Excel object created by the program to free up memory space.
Set xlWB = Nothing
Set xlWS = Nothing
    Exit Sub
    MsgBox Err.Description
    Resume Exit_ExportToExcel_Click
End Sub

hi all,

i want to export records from an sql query to an excel file. i used DoCmd.OutputTo acOutputQuery .
the code is
DoCmd.OutputTo acOutputQuery, "Q_3_Monthly_LC", acFormatXLS, txt, False. it is working only for records less than 17000.if i want to fetch more than 17000 this query fails.

i tried to use this query,'DoCmd.TransferSpreadsheet acExport, , "Q_3_Monthly_LC", txt,True but it fails to execute . i am using excel 2003. i am trying to solve this past 4 days . its a burden one for me. pls help me on this.

thanks ,

Not finding an answer? Try a Google search.