This article contains three different approaches to creating dynamic reports. - Dynamic report from user defined SQL SELECT statement (Author: mmccarthy)
- Dynamic report designed to be used with Crosstab Queries (Author: Nico5038)
- Dynamic report creation via AutoReport command (Author: FishVal)
Dynamic report from user defined SQL SELECT statement
You will sometimes find yourself in a position where you need to allow the users to create dynamic reports based on a user defined query. The following function will create such a report when passed any appropriate SQL SELECT statement. -
Function CreateDynamicReport(strSQL As String)
-
Dim db As DAO.database ' database object
-
Dim rs As DAO.Recordset ' recordset object
-
Dim fld As DAO.Field ' recordset field
-
Dim txtNew As Access.TextBox ' textbox control
-
Dim lblNew As Access.Label ' label control
-
Dim rpt As Report ' hold report object
-
Dim lngTop As Long ' holds top value of control position
-
Dim lngLeft As Long ' holds left value of controls position
-
Dim title As String 'holds title of report
-
-
'set the title
-
title = "Title for the Report"
-
-
' initialise position variables
-
lngLeft = 0
-
lngTop = 0
-
-
'Create the report
-
Set rpt = CreateReport
-
-
' set properties of the Report
-
With rpt
-
.Width = 8500
-
.RecordSource = strSQL
-
.Caption = title
-
End With
-
-
' Open SQL query as a recordset
-
Set db = CurrentDb
-
Set rs = db.OpenRecordset(strSQL)
-
-
' Create Label Title
-
Set lblNew = CreateReportControl(rpt.Name, acLabel, _
-
acPageHeader, , "Title", 0, 0)
-
lblNew.FontBold = True
-
lblNew.FontSize = 12
-
lblNew.SizeToFit
-
-
' Create corresponding label and text box controls for each field.
-
For Each fld In rs.Fields
-
-
' Create new text box control and size to fit data.
-
Set txtNew = CreateReportControl(rpt.Name, acTextBox, _
-
acDetail, , fld.Name, lngLeft + 1500, lngTop)
-
txtNew.SizeToFit
-
-
' Create new label control and size to fit data.
-
Set lblNew = CreateReportControl(rpt.Name, acLabel, acDetail, _
-
txtNew.Name, fld.Name, lngLeft, lngTop, 1400, txtNew.Height)
-
lblNew.SizeToFit
-
-
' Increment top value for next control
-
lngTop = lngTop + txtNew.Height + 25
-
Next
-
-
' Create datestamp in Footer
-
Set lblNew = CreateReportControl(rpt.Name, acLabel, _
-
acPageFooter, , Now(), 0, 0)
-
-
' Create page numbering on footer
-
Set txtNew = CreateReportControl(rpt.Name, acTextBox, _
-
acPageFooter, , "='Page ' & [Page] & ' of ' & [Pages]", rpt.Width - 1000, 0)
-
txtNew.SizeToFit
-
-
' Open new report.
-
DoCmd.OpenReport rpt.Name, acViewPreview
-
-
'reset all objects
-
rs.Close
-
Set rs = Nothing
-
Set rpt = Nothing
-
Set db = Nothing
-
-
End Function
-
This report will not be saved until the user saves it or tries to close it. At which point they will be prompted to save it. You can play around with the layout of the report using the lngTop and lngLeft variables.
To call this function you simply need to pass a String parameter of a SQL statement to it as per the following.
CreateDynamicReport "SELECT * FROM TableName"
To create that SQL SELECT statement you can set up a form to allow the user to select options to build the query. There is no facility in this code to validate the SQL query as it is assumed this is done elsewhere. But thats another article.
Dynamic report designed to be used with Crosstab Queries
This code is especially "tuned" for crosstab queries. As I like to have control over the layout, thus I have the lay-out designed first with "coded" controls. Then the dynamic filling becomes very easy. The raw text I use to help with this is:
Making the columnheader and detaildata flexible is possible, but needs some VBA code in the OpenReport event.
To start, doing this you need to place the fields "coded" in the report.
The column headings should be called "lblCol1", "lblCol2", "lblCol3", etc.
The "detail" fields should be called "Col1", "Col2", "Col3", etc.
The report query has two rowheader columns and a Total column, therefore the first field is effectively column 4 (count starts at 0 so I used intI=3) but this could differ for you.
Make sure that the number of Columns is not bigger than the number placed. The program code has no protection against that.
The code needed for the open report event is: -
Private Sub Report_Open(Cancel As Integer)
-
Dim intI As Integer
-
Dim rs As Recordset
-
-
Set rs = CurrentDb.OpenRecordset(Me.RecordSource)
-
-
'Place headers
-
For intI = 3 To rs.Fields.Count - 1
-
Me("lblCol" & intI - 1).Caption = rs.Fields(intI).Name
-
Next intI
-
-
'Place correct controlsource
-
For intI = 3 To rs.Fields.Count - 1
-
Me("Col" & intI - 1).ControlSource = rs.Fields(intI).Name
-
Next intI
-
-
'Place Total field
-
Me.ColTotal.ControlSource = "=SUM([" & rs.Fields(2).Name & "])"
-
-
End Sub
-
The report query has two rowheader columns and a Total column, therefor the first field is effectively column 4 (count starts at 0 so I used intI=3) but it could differ for you. Dynamic report creation via AutoReport command
This code is used for dynamic report creation using the AutoReport command. You will first need to create a query and call it "qryDummy". This query is used by the code but the resulting report will not be based on the query as this would invalidate the report when the query was next changed. -
Public Sub CreateAutoReport(strSQL As String)
-
Dim rptReport As Access.Report
-
Dim strCaption As String
-
-
CurrentDb.QueryDefs("qryDummy").SQL = strSQL
-
-
' Open dummy query to invoke NewObjectAutoReport command on it
-
' Put the report created to design view to make properties editable
-
With DoCmd
-
.OpenQuery "qryDummy", acViewNormal
-
.RunCommand acCmdNewObjectAutoReport
-
.Close acQuery, "qryDummy"
-
.RunCommand acCmdDesignView
-
End With
-
-
' Get reference to just created report
-
For Each rpt In Reports
-
If rpt.Caption = "qryDummy" Then Set rptReport = rpt
-
Next
-
-
With rptReport
-
-
' Create title control
-
With CreateReportControl(.Name, acLabel, _
-
acPageHeader, , "Title", 0, 0)
-
.FontBold = True
-
.FontSize = 12
-
.SizeToFit
-
End With
-
-
' Create timestamp on footer
-
CreateReportControl .Name, acLabel, _
-
acPageFooter, , Now(), 0, 0
-
-
' Create page numbering on footer
-
With CreateReportControl(.Name, acTextBox, _
-
acPageFooter, , "='Page ' & [Page] & ' of ' & [Pages]", _
-
.Width - 1000, 0)
-
.SizeToFit
-
End With
-
-
' Detach the report from dummy query
-
.RecordSource = strSQL
-
-
' Set the report caption to autogenerated unique string
-
strCaption = GetUniqueReportName
-
If strCaption <> "" Then .Caption = strCaption
-
-
End With
-
-
DoCmd.RunCommand acCmdPrintPreview
-
-
Set rptReport = Nothing
-
-
End Sub
-
-
-
Public Function GetUniqueReportName() As String
-
Dim intCounter As Integer
-
Dim blnIsUnique As Boolean
-
-
For intCounter = 1 To 256
-
GetUniqueReportName = "rptAutoReport_" & Format(intCounter, "0000")
-
blnIsUnique = True
-
For Each rpt In CurrentProject.AllReports
-
If rpt.Name = GetUniqueReportName Then blnIsUnique = False
-
Next
-
If blnIsUnique Then Exit Function
-
Next
-
-
GetUniqueReportName = ""
-
-
End Function
-
37 142712
I was wondering how one would dynamically change the sizing of the columns in the field. Creating an auto report is nice but its messy. Here is the code I have now -
Public Function StaticReportGen(SQLStr As String, Title As String, layout As String) As Boolean
-
Dim strReportName As String
-
Dim rpt As Report
-
Dim FieldName As Field
-
Dim RS As Recordset
-
Dim intI As Integer
-
Dim ctrl As Control
-
Dim ColWidth As Integer
-
Dim FirstCol As Boolean
-
Dim TextWidth As Integer
-
Dim TextCol As Boolean
-
Dim TextBoxes As Collection
-
Dim Labels As Collection
-
Dim rsLengthCheck As ADODB.Recordset
-
Dim objConn As ADODB.Connection
-
-
On Error GoTo rptErrHandler
-
-
ColWidth = 0
-
TextWidth = 0
-
TextCol = True
-
FirstCol = True
-
-
Set rpt = CreateReport()
-
strReportName = rpt.Name
-
rpt.Caption = Title
-
-
DoCmd.RunCommand acCmdDesignView
-
DoCmd.Save acReport, strReportName
-
DoCmd.Close acReport, strReportName, acSaveNo
-
DoCmd.Rename Title, acReport, strReportName
-
DoCmd.OpenReport Title, acViewDesign
-
Set rpt = Reports(Title)
-
-
'set printer stuff
-
rpt.Printer.BottomMargin = 360
-
rpt.Printer.LeftMargin = 360
-
rpt.Printer.RightMargin = 360
-
rpt.Printer.TopMargin = 360
-
-
If layout = "Landscape" Then
-
rpt.Printer.Orientation = acPRORLandscape
-
Else
-
rpt.Printer.Orientation = acPRORPortrait
-
End If
-
-
Set RS = CurrentDb.OpenRecordset(SQLStr)
-
rpt.RecordSource = SQLStr
-
-
'create label on pageheader
-
For Each FieldName In RS.Fields
-
CreateReportControl Title, acLabel, acPageHeader, , FieldName.Name, 0, 0
-
CreateReportControl Title, acTextBox, acDetail, , FieldName.Name, 0, 0
-
'
-
Next FieldName
-
-
'arrange fields
-
For Each ctrl In rpt.Controls
-
-
Select Case ctrl.ControlType
-
Case acTextBox
-
If TextCol Then
-
ctrl.Name = ctrl.ControlSource
-
ctrl.Move TextWidth, 0, ctrl.WIDTH, ctrl.Height
-
TextWidth = TextWidth + ctrl.WIDTH
-
Else
-
ctrl.Name = ctrl.ControlSource
-
ctrl.Move TextWidth, 0, ctrl.WIDTH, ctrl.Height
-
TextWidth = TextWidth + ctrl.WIDTH
-
End If
-
TextCol = False
-
Case acLabel
-
If FirstCol Then
-
ctrl.Name = "lbl" & ctrl.Caption
-
ctrl.Move ColWidth, 0, ctrl.WIDTH, ctrl.Height
-
Else
-
ctrl.Name = "lbl" & ctrl.Caption
-
ctrl.Move TextWidth, 0, ctrl.WIDTH, ctrl.Height
-
End If
-
ctrl.FontSize = 10
-
ctrl.FontWeight = 700
-
FirstCol = False
-
Case Else
-
-
End Select
-
-
Next ctrl
-
'create line
-
CreateReportControl Title, acLine, acPageHeader, , , 0, 300, rpt.WIDTH
-
-
'create title
-
CreateReportControl Title, acLabel, acHeader, , Title, 0, 0
-
CreateReportControl Title, acTextBox, acHeader, , Chr(61) & Chr(34) & "Printed on: " & Chr(34) & "& Date() ", 0, 300
-
-
For Each ctrl In rpt.Controls
-
-
Select Case ctrl.ControlType
-
Case acTextBox
-
If ctrl.Section = 1 Then
-
ctrl.FontWeight = 700
-
ctrl.FontSize = 14
-
ctrl.Height = 350
-
ctrl.WIDTH = 3500
-
ctrl.Top = 400
-
End If
-
-
Case acLabel
-
If ctrl.Section = 1 Then
-
ctrl.FontSize = 16
-
ctrl.FontWeight = 700
-
ctrl.Height = 350
-
ctrl.WIDTH = 3500
-
End If
-
End Select
-
-
Next ctrl
-
-
'size fields correctly
-
For Each ctrl In rpt.Controls
-
-
Select Case ctrl.ControlType
-
-
Case acTextBox
-
For Each FieldName In RS.Fields
-
If ctrl.Name = FieldName Then
-
-
End If
-
Next FieldName
-
-
Case acLabel
-
-
End Select
-
-
Next ctrl
-
-
DoCmd.Save acReport, Title
-
DoCmd.OpenReport Title, acViewPreview
-
StaticReportGen = True
-
Exit Function
-
-
rptErrHandler:
-
Select Case Err.Number
-
End Select
-
StaticReportGen = False
-
Debug.Print Err.Number
-
Debug.Print Err.Description
-
Exit Function
-
End Function
-
I want to use the textwidth property just having a block.
Can you set a dynamic report to be tabular automatically?
Also, could somebody show what the code would look like to add groupings to a dynamic report?
I try
with rpt
.GroupLevel(0).controlsource = me.combo1.value
but keep getting "Error, no grouping or sorting command given"
Thanks.
Dim vargrplevel As Variant 'holds grouping level of report
vargrplevel = CreateGroupLevel(rpt.Name, "[INSERT FIELD NAME]", True, True)
rpt.Section(acGroupLevel1Header).Height = 400
rpt.Section(acGroupLevel1Footer).Height = 400
This will also create headers/footers for the grouping level.
Hi msquared
AutoReport Code has some Errors and problems
Can we correct them together?
Best regards
AliNagoo
The code does not exactly does what it's suppose to. Each record is displayed on a separate page. In the "for each field" section, the "Increment top value for next control" code does not do the job.
Any idea what is wrong with this?
Thanks
acheo
Hello
I think It's more better to show every record in a page for me!
because the report's fields are numerous and the length of them is variable from zero to 255 character so i wont try to show records in another style like tabular.
Good Luck
I don't understand what you're saying. Clearly, the author wanted to display several records in a single page. I'm telling you that this does not work at run time. It merely displays the first record and then displays the second one on the followoing page. That defeats the purpose of having a report don't you think? So again, my question is: what should we change to have the records sequentially displayed?
thanks
where can I get "Report", "CreateReportControl" "CreateReport" etc functions used in this
These functions are standard in the default Access libraries in VBA. You shouldn't need to add any extra libraries to use them.
For the case of Dynamic report designed to be used with Crosstab Queries (Author: Nico5038).
1. Is it possible to vary the number of column headings with this?
2. Where is the recordsourse of this Code?
Hi Moah Scout,
For answering your questions:
1. The number of headings is "fixed", as you need to place the controls holding the results in the report design. The maximum number of columns thus needs to be known. When there are less columns as the max, there's no problem, as these won't be filled.
When there are more, the extra columns are ignored. With a little effort you could add a warning that there are more columns by using the .field.count property of the recordset.
2. The recordsource of the report holding the code is used in line 5:
Set rs = CurrentDb.OpenRecordset(Me.RecordSource)
Thus this code is "universal", for every report using this code.
Regards,
Nico
Ok!
What if the ColumnHeadings of Crosstab-Query changes and RowHeadings remain constant?
I mean, CrossTabQuery will be created from user selections on the combobox and thus the RowHeadings has to remain constant and the number ColumnHeadings Changes from 10 to 27.
Is it still possible to use this code?
Then you'll need to "fix" column headers and not use:
>"The column headings should be called "lblCol1", "lblCol2", "lblCol3", etc."
As these will hold the desired values.
Also remove the code lines : -
-
'Place headers
-
For intI = 3 To rs.Fields.Count - 1
-
Me("lblCol" & intI - 1).Caption = rs.Fields(intI).Name
-
Next intI
-
When the fields selected aren't in a "fixed" sequence, then you can fill the column value by building a loop and check when the fieldname is equal to the column heading to fill the column.
Another option is to "Fix" the query and make sure all fields are always in the same order and put "Dummy" (read Null) values in the not used columns.
Getting the idea ?
Nico
1.Can you set a dynamic report to be tabular automatically?
2.I have also tried to group some data using this code, but it doesn't seem to do anything: -
varGroupLevel = CreateGroupLevel(report.Name, "data_curs", _
-
True, True)
-
report.Section(acGroupLevel1Header).Height = 400
-
report.Section(acGroupLevel1Footer).Height = 400
-
Can any of this be done without using the acCmdDesignView command? This is a problem for accde files.
accde files are specifically for the purposes of preventing changes to the design of the objects. There is no reason to have an accde otherwise. Wanting to change the design is counter to the purpose of having an accde.
Yes exactly! I rephrase, how do I accomplish this (dynamic report) without the use of design view to publish as an accde?
You can't. Because a dynamic report in essence changes the design of a report. Otherwise, it's not dynamic.
Rabbit, your statements are correct. However, based on the title of this thread (Dynamic report from user defined SQL SELECT statement), this code dynamically and programatically updates the forms/reports based on user selections. I want to prevent USER changes to the forms and reports, but want to make programatic changes based on user input.
Yes, and to do so, it changes the design of the report. Which you can't do in an accde. To make programmatic changes to the design, you must also allow the user to make changes to the design. You can't have both worlds.
You can either allow programmatic changes to the design and user changes to the design by not using an accde or you can prevent programmatic changes to the design and prevent user changes to the design by using an accde. You can't mix the two.
See the 2nd example above "Dynamic report designed to be used with Crosstab Queries". This example does not open the report in design view, and should therefore be compatible with .accde files. You can adapt it for general use with any type of select query.
What if I have products on the market that create Column headings of different Size, say from 15 to 40 depending on sales of that particular day.
If you first design the Col1,Col2...Col40; When it comes the number of column resulted from Crosstab is lessthan 40, it gives error.
As Nico stipulated on Post no. 14 above, but I cant fix it. It still gives error.
Sorry, but the CreateAutoReport function does not work. I get an error message of "Object Variable or with block variable not set."
Additionally, it appears as if the author is using two different sets of variables for the report; both rpt and rptReport.
Can someone advise on how to fix this?
lonerjohn,
At which line are you getting this error? did you do a direct copy and paste? Did you make necessary changes to the code to account for your actual situation?
And you probably have the line Option Explicit at the top of your module, which is a good thing. However, the author did not explicitly declare all the necessary variables (rst being one of them).
Let us know what you got.
The error highlights the line "With CreateReportControl(.Name, acLabel, acpageheader, , "Title", 0, 0)
But the line above it, with rptReport is equal to nothing. 5 or 6 lines above that, where it says "For each rpt in reports", rpt is also equal to nothing.
Yes, I copied all the code and didn't change anything. I created a query named qryDummy.
I also do not have option explicit turned on. I just noticed he's referencing two different variables with similar names. Unless rpt is a keyword, as a variable, it's not being set to anything anywhere.
Alllllllllllllllllllllll righty, then.................
Please refer to the following. It should work. All the kinks and weird stuff have been hammered out. Some things in the original were pointing to wrong things and would never have worked. - Option Compare Database
-
Option Explicit
-
-
Private appAccess As New Access.Application
-
-
Public Sub CreateAutoReport(strSQL As String)
-
Dim rpt As Access.Report
-
Dim rptReport As Access.Report
-
Dim strCaption As String
-
Dim lblReport As Access.Label
-
Dim txtReport As Access.TextBox
-
-
CurrentDb.QueryDefs("qryDummy").SQL = strSQL
-
appAccess.OpenCurrentDatabase (CurrentDb.Name)
-
-
' Open dummy query to invoke NewObjectAutoReport command on it
-
' Put the report created to design view to make properties editable
-
With DoCmd
-
.OpenQuery "qryDummy", acViewNormal
-
.RunCommand acCmdNewObjectAutoReport
-
.Close acQuery, "qryDummy"
-
.RunCommand acCmdDesignView
-
End With
-
-
' Get reference to just created report
-
For Each rpt In Reports
-
If rpt.RecordSource = "qryDummy" Then Set rptReport = rpt
-
Next
-
-
With rptReport
-
-
' Create title control
-
With CreateReportControl(.Name, acLabel, _
-
acPageHeader, , "Title", 0, 0)
-
.FontBold = True
-
.FontSize = 12
-
.SizeToFit
-
End With
-
-
' Create timestamp on footer
-
CreateReportControl .Name, acLabel, _
-
acPageFooter, , Now(), 0, 0
-
-
' Create page numbering on footer
-
With CreateReportControl(.Name, acTextBox, _
-
acPageFooter, , "='Page ' & [Page] & ' of ' & [Pages]", _
-
.Width - 1000, 0)
-
.SizeToFit
-
End With
-
-
' Detach the report from dummy query
-
.RecordSource = strSQL
-
-
' Set the report caption to autogenerated unique string
-
strCaption = GetUniqueReportName
-
If strCaption <> "" Then .Caption = strCaption
-
-
End With
-
-
DoCmd.RunCommand acCmdPrintPreview
-
-
Set rptReport = Nothing
-
-
End Sub
-
-
Public Function GetUniqueReportName() As String
-
Dim rpt As Report
-
Dim intCounter As Integer
-
Dim blnIsUnique As Boolean
-
-
For intCounter = 1 To 256
-
GetUniqueReportName = "rptAutoReport_" & Format(intCounter, "0000")
-
blnIsUnique = True
-
For Each rpt In appAccess.Reports
-
If rpt.Name = GetUniqueReportName Then blnIsUnique = False
-
Next
-
If blnIsUnique Then Exit Function
-
Next
-
-
GetUniqueReportName = ""
-
-
End Function
hope this hepps!
That does work, but it opens up a whole new instance of my database
I commented out the line: - set appAccess = createobject("Access.Application")
And now it works the way it should.
Very strange. It works fine for me without a new instance....
I have no current explanation.
No worries, I'm just happy it works. Now I just have to figure out the calculated control and my week will be set lol
Perfect! I will remove from the code above so others don't experience the same.
Thanks!
Lines 45-47 above give one such example. However, I presume your issue is a wee bit more complicated....
Feel free to begin a new thread with such a question. That will be more helpful for others viewing this site.
Yeah, it's a lot more complicated, I'll explain it here, and if it's meant for another thread, I can post it again.
Let me preface this by saying I completely understand and acknowledge that the way this database was built is not efficient. However, my office wants to keep this setup.
I have a reports form (frmReports2) to generate reports based on information selected by the user. One of the command buttons contains the code you provided above. frmReports2 also contains a multi-value field list box to choose among specific fields to add to the report. All this works fine. My problem, however, is that 9 of the fields contain financial values. If the user selects one or more of these fields (FY1415, FY1516, FY1617, FY1718, FY1819, FY1920, FY2021, FY2122, FY2223) for the report, I need to have a calculated control on the report for each record that will sum up the values of the fields the user chose to populate on the report. So if the user chose to show values of FY1415, FY1516, FY1617 and FY1718, I would need to add those to the report (which is already done) but also add an additional field to calculate the sum of those (in this instance, 4) fields that the user chose.
I am going to specifically ask you to begin a new thread, as I welcome the challenge.
However, I think the answer is as simple as creating a field that simply sums the desired field and placing it in the Report Footer--all of which, I believe, can be done using CreatReportControl. Then, it's just an issue of adjusting its location.
I encourage you to take a stab at it and post your results: success here; problems in a new thread.
My problem is I'm not really advanced with Access. I've taught myself what I know so far. I'm inheriting this project in my new office from someone else. I wouldn't even really know where to begin. I'll post it in a new thread, just in case you do accept the challenge.
NeoPa 32,556
Expert Mod 16PB
I've moved a bunch of posts about a new question into a separate thread ( Dynamic Report).
It is never acceptable to post questions within existing threads. If ever you see one - please report it and avoid responding until after it's either been reposted or moved. If it's important the member will repost properly.
Sign in to post your reply or Sign up for a free account.
Similar topics
by: Climber |
last post by:
Hello,
I want to now how to do a dynamic report with Crystal
Report (C# .Net), the number of colum and row are
different each time because they depend of my data base.
Thanks
Climber
|
by: Benny |
last post by:
Hello Experts,
Currently Im working on a web application using asp.net with C#.
I need to create a report depends on user's selection of the database
fields, i.e. the user may want to display...
|
by: fieldja |
last post by:
I have a form called OwnerForm. It contains a combo box called
Owner. The combo box looks up names from a table called OwnerName.
It contains fields called OwnerID and Owner. I also have a main...
|
by: Peter Herath |
last post by:
I want to create a dynamic report using a crosstab query...... pls someone look into my attached example database and help me out to do the report generation....
example is like dis...:
there...
|
by: PerumalSamy |
last post by:
Hi all, i am new to asp.net platform. I am using vb.net coding in asp.net. could you tell me how to generate crystal report in asp.net and to access in webpage and converting into pdf
|
by: seep |
last post by:
hi..
i wanted report that will display any record of database on any search criteria and from any date. suppose reports to view all emloyess of hospital that are male from 6th september o 20th...
|
by: creative1 |
last post by:
Here is how you create a complex data report that involves parent and child commands and you can update information at runtime. Its pretty straight forward to work with simple queries; however,...
|
by: Sundhas |
last post by:
Hey! I am working on jrxml to create dynamic re0ports. I have parameterized the columns i.e. the jrxml for that report can be used to generate other reports as well.
However, i have not managed...
|
by: Mr Key |
last post by:
Hi, I hope someone could help me on this, I have a query of several fields from which I want to create report of few fields selected by user. Say total fields be 30 as Field1...Field30, The first...
|
by: CJ Jarvis |
last post by:
Hello -
I am trying to summarize two tables with different setups in a report.
I am entering payments by periods.
Field names are as follows:
PaymentNumber = Payment 1, Payment 2, Payment...
|
by: ryjfgjl |
last post by:
ExcelToDatabase: batch import excel into database automatically...
|
by: isladogs |
last post by:
The next Access Europe meeting will be on Wednesday 6 Mar 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM).
In this month's session, we are pleased to welcome back...
|
by: isladogs |
last post by:
The next Access Europe meeting will be on Wednesday 6 Mar 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM).
In this month's session, we are pleased to welcome back...
|
by: Vimpel783 |
last post by:
Hello!
Guys, I found this code on the Internet, but I need to modify it a little. It works well, the problem is this: Data is sent from only one cell, in this case B5, but it is necessary that data...
|
by: jfyes |
last post by:
As a hardware engineer, after seeing that CEIWEI recently released a new tool for Modbus RTU Over TCP/UDP filtering and monitoring, I actively went to its official website to take a look. It turned...
|
by: ArrayDB |
last post by:
The error message I've encountered is; ERROR:root:Error generating model response: exception: access violation writing 0x0000000000005140, which seems to be indicative of an access violation...
|
by: PapaRatzi |
last post by:
Hello,
I am teaching myself MS Access forms design and Visual Basic. I've created a table to capture a list of Top 30 singles and forms to capture new entries. The final step is a form (unbound)...
|
by: Faith0G |
last post by:
I am starting a new it consulting business and it's been a while since I setup a new website. Is wordpress still the best web based software for hosting a 5 page website? The webpages will be...
|
by: isladogs |
last post by:
The next Access Europe User Group meeting will be on Wednesday 3 Apr 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM).
In this session, we are pleased to welcome former...
| |