473,549 Members | 2,583 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Dynamic Crosstab Report

Does anyone know if there is any documentation which relates to Access2k + ?
or can anyone help adjust the code?

I am having trouble converting the DAO references.
TITLE :INF: How to Create a Dynamic Crosstab Report
PRODUCT :Microsoft Access
PROD/VER:1.00 1.10
OPER/SYS:WINDOWS
KEYWORDS:kbusag e

---------------------------------------------------------------------
The information in this article applies to:

- Microsoft Access versions 1.0 and 1.1
---------------------------------------------------------------------

SUMMARY
=======

Using Microsoft Access version 1.x, you may want to create dynamic reports
based on parameter crosstab queries, or have reports to match a dynaset
returned by such a query. Dynamic reports allow your customized reports
to show only the most recently modified data and eliminate the need for
fixed column headings and empty columns.

The example below uses starting and ending dates entered on a form as
the parameters in a crosstab query. When a button on the form is
chosen, Access Basic functions run the crosstab query, which creates a
dynaset whose contents are displayed in a report.

In the following example, the report shows which employees had sales
for the current week, based on the dates entered on the form.

MORE INFORMATION
=============== =

The steps below show how to create a dynamic crosstab report based on
tables in the sample database NWIND.MDB.

The following new objects must be added to the database: one table,
one query, one form, one report and two functions. Each item is
explained in a separate section below.

TABLE: XTabResult
-----------------

This table must contain enough columns to hold the maximum number of
fields that the crosstab query can possibly generate. The table is
later filled with data by Access Basic functions.

For this example, the maximum number of fields generated by the
crosstab query is 10, with no primary key necessary. Create a new
table with 10 columns (columns 0-9) with the Text data type (for
example, Column0, Column1, and so forth).

QUERY: CrossQry
---------------

Create a new crosstab query based on the Employees, Orders, Order
Details, and Products tables. (These tables are already joined, based
on previously created relationships in the NWIND database.) To do
this, use the following steps:

1. Choose the Query button in the Database window, then choose the New
button.

2. Add the Employees, Orders, Order Details, and Products tables.

3. Drag the following fields to the query grid and add the values
shown below:

NOTE: To display the crosstab field, choose Crosstab from the Query
menu.

Field: Order Amount
Table: Orders
Total: Sum
Crosstab: Value
Field: Product Name
Table: Products
Total: Group By
Crosstab: Row Heading
Field: RowTotal:Order Amount
Table: Orders
Total: Sum
Crosstab: Row Heading
Field: Last Name
Table: Employees
Total: Group By
Crosstab: Column Heading
Field: Order Date
Table: Orders
Total: Where
Crosstab:
Criteria: Between [Start Date] and [End Date]

If you choose SQL from the View menu, the SQL statement should look
like the following:

PARAMETERS [Start Date] DateTime, [End Date] DateTime;
TRANSFORM Sum(Orders.[Order Amount]) AS [SumOfOrder Amount]
SELECT Products.[Product Name], Sum(Orders.[Order Amount])
AS RowTotal
FROM Employees, Orders, [Order Details], Products, Orders
INNER JOIN [Order Details]
ON Orders.[Order ID] = [Order Details].[Order ID], Employees
INNER JOIN Orders
ON Employees.[Employee ID] = Orders.[Employee ID], Products
INNER JOIN [Order Details]
ON Products.[Product ID] = [Order Details].[Product ID]
WHERE ((Orders.[Order Date] Between [Start Date] And [End Date]))
GROUP BY Products.[Product Name]
PIVOT Employees.[Last Name]
WITH OWNERACCESS OPTION;

4. In the Query Parameters box, add two parameters with the same data
type, as follows:

Parameter DataType
------------------------
[Start Date] Date/Time
[End Date] Date/Time

FORM: XTabSample
----------------

1. Create an unbound form. Add two unbound text box controls with the
following properties:

(Text_Box_1) ControlName: Start Date
(Text_Box_2) ControlName: End Date

2. Add a button to the form with the following properties:

Caption: "Print Report"
OnPush: =XTabPrint()

REPORT: CrossReport
-------------------

1. Create a bound report with Page Header and Detail sections and the
following RecordSource property:

RecordSource: XTabResult

2. In the page header, create 10 tabular text box controls, without
labels, and change the ControlSource property of each to one of the
matching functions below:

=GetPageHdr(0) =GetPageHdr(1) =GetPageHdr(2) =GetPageHdr(3)
=GetPageHdr(4) =GetPageHdr(5) =GetPageHdr(6) =GetPageHdr(7)
=GetPageHdr(8) =GetPageHdr(9)

For example, the ControlSource property of the first text box should
be set to =GetPageHdr(0), the second to =GetPageHdr(1), and so
forth.

3. In the Detail section, create 10 tabular text box controls without
labels. Bind each of these controls to one of each of the fields in
the XTabResult table:

[Column0] [Column1] [Column2] [Column3] [Column4] [Column5]
[Column6] [Column7] [Column8] [Column9]

MODULE: <Any Name>
------------------

Create a new module with the following Access Basic code and call it
any name you choose:

NOTE: In the following sample code, an underscore (_) is used as a line-
continuation character. Remove the underscore when re-creating this code in
Access Basic.

Option Compare Database 'Use database order for string comparisons.
Option Explicit

'============== ====
' Global variables
'============== ====

Dim MyFields() ' For holding field names.
Dim nColumns As Integer ' For holding the number of columns.

'============== =======
' GetPageHdr Function
'============== =======

Function GetPageHdr (col)
If (col < nColumns) Then
GetPageHdr = MyFields(col)
Else
GetPageHdr = ""
End If
End Function

'============== ======
' XTabPrint Function
'============== ======

Function XTabPrint ()
Dim MyDB As Database, MyTable As Table
Dim MyDyna As Dynaset, MyQueryDef As QueryDef
Dim MySnap As Snapshot, i As Integer

' Create a dynaset from the query.
Set MyDB = CurrentDB()
Set MyQueryDef = MyDB.OpenQueryD ef("CrossQry")
MyQueryDef![Start Date] = Forms![XTabSample]![Start Date]
MyQueryDef![End Date] = Forms![XTabSample]![End Date]
Set MyDyna = MyQueryDef.Crea teDynaset()
MyQueryDef.Clos e

' Get field information and store the field names.
Set MySnap = MyDyna.ListFiel ds()
MySnap.MoveLast
MySnap.MoveFirs t
nColumns = MySnap.RecordCo unt
ReDim MyFields(nColum ns)
i = 0
While Not MySnap.EOF
MyFields(i) = MySnap!Name
i = i + 1
MySnap.MoveNext
Wend
MySnap.Close

' Delete the contents of the XTabResult table.
Set MyTable = MyDB.OpenTable( "XTabResult ")
While Not MyTable.EOF
MyTable.Delete
MyTable.MoveNex t
Wend

' Dump the dynaset into the XTabResult table.
' Table should have a column called COLUMN# for each column in
' the crosstab dynaset.
While Not MyDyna.EOF
MyTable.AddNew
For i = 0 To nColumns - 1
MyTable("Column " & i) = MyDyna(MyFields (i))
Next
MyTable.Update
MyDyna.MoveNext
Wend
MyTable.Close
MyDyna.Close

' Print the report.
DoCmd OpenReport "CrossRepor t", A_PREVIEW
End Function

Choosing a Date Range
---------------------

After you create the new database objects specified above, you will be
able to open the XTabSample form and enter starting and ending dates
on the form. A recommended data range is 1/1/91 through 12/21/92.
However, if you alternate short date ranges with long date ranges, you
will see how the report dynamically changes to fit the data.

After entering the date range, choose the Print Report button on the
form to display your dynamic report.

REFERENCES
==========

Microsoft Access "User's Guide," version 1.0, pages 154-159

Additional reference words: 1.00 1.10
KBCategory: kbusage
KBSubcategory: RptOthr

=============== =============== =============== =============== =============== ==

THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS
PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS
ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO
EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR
ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL,
CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF
MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION
OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES
SO THE FOREGOING LIMITATION MAY NOT APPLY.

Copyright Microsoft Corporation 1994..
Nov 12 '05 #1
1 17646
Found it... Access 2k version:

HOW TO: Create a Dynamic Crosstab Report in Access 2002
Applies To
This article was previously published under Q328320
Moderate: Requires basic macro, coding, and interoperabilit y skills.

This article applies to a Microsoft Access database (.mdb) and to a
Microsoft Access project (.adp).
IN THIS TASK
SUMMARY

Create a Query That Is Named OrderDetailsExt ended
Create a Query That Is Named EmployeeSales
Create a Form That Is Named EmployeeSalesDi alogBox
Create a Report That Is Named EmployeeSales
REFERENCES
SUMMARY
You can use Microsoft Access 2002 to create dynamic reports that are
based on parameter crosstab queries. You can also create reports to
match a dynaset that is returned by such a query. Dynamic reports allow
your customized reports to show only the most recently modified data.
This gets rid of the need for fixed column headings and empty columns.

The following example uses starting dates and ending dates that are
entered on a form as the parameters in a crosstab query. When a button
on the form is chosen, Microsoft Visual Basic for Applications (VBA)
functions run the crosstab query that creates a dynaset. The contents of
the dynaset are then presented in a report.

In the following example, the report shows the employees that have sales
for a certain period of time. The employees that appear in the report
are based on the dates that are entered on the form. The steps below
show how to create a dynamic crosstab report based on tables in the
sample database Northwind.mdb.

The following new objects must be added to the database:
two queries
one form
one report
two functions
Each item is explained in a separate section that follows.

back to the top
Create a Query That Is Named OrderDetailsExt ended
You can create a new select query that is based on the Order Details
table and the Products table. These tables are already joined based on
previously created relationships in the Northwind database. To create a
new select query, follow these steps:
In the Database window, click Queries under Objects and then
double-click Create query in Design view.
Add the Order Details table and the Products table.
Drag the following fields to the query grid and then add the following
values: Field: OrderID
Table: Order Details
Field: ProductName
Table: Products
Field: ProductID
Table: Order Details
Field: UnitPrice
Table: Order Details
Field: Quantity
Table: Order Details
Field: Discount
Table: Order Details
Field: ExtendedPrice: CCur(CLng([Order
Details].[UnitPrice]*[Quantity]*(1-[Discount])*100)/100)

Save the query as OrderDetailsExt ended and then close the query.
back to the top
Create a Query That Is Named EmployeeSales
You can create a new crosstab query that is based on the Employees
table, the Orders table, the OrderDetailsExt ended Query, and the
Products table. These tables are already joined based on previously
created relationships in the Northwind database. To create a new
crosstab query, follow these steps:
In the Database window, click Queries under Objects and then
double-click Create query in Design view.
Add the Employees table, the Orders table, the OrderDetailsExt ended
Query, and the Products table.
On the Query menu, click Crosstab Query.
Drag the following fields to the query grid and then add the following
values: Field: LastName
Table: Employees
Total: Group By
Crosstab: Column Heading
Field: ProductName
Table: Products
Total: Group By
Crosstab: Row Heading
Field: Order Amount: ExtendedPrice
Table: OrderDetailsExt ended
Total: Sum
Crosstab: Value
Field: ShippedDate
Table: Orders
Total: Where
Crosstab:
Criteria: Between
[Forms]![EmployeeSalesDi alogBox]![BeginningDate] And
[Forms]![EmployeeSalesDi alogBox]![EndingDate]
From the Query menu, click Parameters.
In the Parameters dialog box, add the following entries: Parameter:
[Forms]![EmployeeSalesDi alogBox]![BeginningDate]
Data Type: Date/Time

Parameter: [Forms]![EmployeeSalesDi alogBox]![EndingDate]
Data Type: Date/Time

Close the Parameters dialog box.
Save the query as EmployeeSales and then close the query.
back to the top
Create a Form That Is Named EmployeeSalesDi alogBox
In the Database window, click Forms, and then click New.
In the New Form dialog box, click Design View, and then click OK.
Add two unbound text box controls with the following properties: Text
Box 1: ControlName: BeginningDate
Text Box 2: ControlName: EndingDate

Add a command button to the form with the following properties. If the
Command Button Wizard starts, click Cancel. Name: Command4
Caption: "Employee Sales Crosstab"

Set the OnClick property of the command button to the following event
procedure:Priva te Sub Command4_Click( )
Dim stDocName As String
Dim accobj As AccessObject

On Error GoTo Err_Command4_Cl ick

stDocName = "EmployeeSa les"
'This function closes the report if the report is open and then
re-opens the report.
Set accobj = Application.Cur rentProject.All Reports.Item(st DocName)
If accobj.IsLoaded Then
If accobj.CurrentV iew = acCurViewPrevie w Then
DoCmd.Close acReport, stDocName
DoCmd.OpenRepor t stDocName, acPreview
End If
Else
DoCmd.OpenRepor t stDocName, acPreview
End If
Exit_Command4_C lick:
Exit Sub

Err_Command4_Cl ick:
MsgBox Err.Description
Resume Exit_Command4_C lick

End Sub
Close the Microsoft Visual Basic Editor.
Save the form as EmployeeSalesDi alogBox and then close the form.
back to the top
Create a Report That Is Named EmployeeSales
Note When you put the text boxes on the report for steps 4, 5, and 6,
put them horizontally.
In the Database window, click Reports, and then click New.
In the New Report dialog box, click Design View, click to select the
EmployeesSales query in the Choose the table or query where the object's
data comes from check box, and then click OK.

Note When you receive an Enter Parameter Value dialog box, click Cancel.
To add a report footer section, click Report Header/Footer on the View
menu.
Assume that there are nine records in the Employees table. Then, in the
page header, create 11 unbounded text box controls without labels. Set
the Name property of the left text box to "Head1" and the Name property
of the next text box to "Head2". Continue until you complete "Head11".
In the "Detail" section, create 11 unbounded text box controls without
labels (one text box for the row heading, nine text boxes for the
maximum number of employees in the Northwind database Employees table,
and one text box for the row total). Set the Name property of the left
text box to "Col1" and the Name property of the next text box to "Col2".
Continue until you complete "Col11". Set the Format property of the text
boxes "Col2" through "Col11" to Standard.
In the report footer, create 11 unbounded text box controls without
labels. Set the Name property of the left text box to "Tot1". In the
Control Source property of Tot1, type ="Totals:". Set the Name property
of the remaining text boxes that display the column totals to "Tot2"
through "Tot11". Set the Format property of text boxes "Tot2" through
"Tot11" to Standard.
On the View menu, click Code.

You see the VBA code window for the report.

Type or paste the following code to the code window:NOTE: The sample
code in this article uses Microsoft Data Access Objects. For this code
to run properly, you must reference the Microsoft DAO 3.6 Object
Library. To do so, click References on the Tools menu in the Visual
Basic Editor, and make sure that the Microsoft DAO 3.6 Object Library
check box is selected.

' Constant for maximum number of columns EmployeeSales query would
' create plus 1 for a Totals column. Here, you have 9 employees.
Const conTotalColumns = 11

' Variables for Database object and Recordset.
Dim dbsReport As DAO.Database
Dim rstReport As DAO.Recordset

' Variables for number of columns and row and report totals.
Dim intColumnCount As Integer
Dim lngRgColumnTota l(1 To conTotalColumns ) As Long
Dim lngReportTotal As Long

Private Sub InitVars()

Dim intX As Integer

' Initialize lngReportTotal variable.
lngReportTotal = 0

' Initialize array that stores column totals.
For intX = 1 To conTotalColumns
lngRgColumnTota l(intX) = 0
Next intX

End Sub
Private Function xtabCnulls(varX As Variant)

' Test if a value is null.
If IsNull(varX) Then
' If varX is null, set varX to 0.
xtabCnulls = 0
Else
' Otherwise, return varX.
xtabCnulls = varX
End If

End Function
Private Sub Detail_Format(C ancel As Integer, FormatCount As Integer)
' Put values in text boxes and hide unused text boxes.

Dim intX As Integer
' Verify that you are not at end of recordset.
If Not rstReport.EOF Then
' If FormatCount is 1, put values from recordset into text boxes
' in "Detail" section.
If Me.FormatCount = 1 Then
For intX = 1 To intColumnCount
' Convert Null values to 0.
Me("Col" + Format(intX)) = xtabCnulls(rstR eport(intX - 1))
Next intX

' Hide unused text boxes in the "Detail" section.
For intX = intColumnCount + 2 To conTotalColumns
Me("Col" + Format(intX)).V isible = False
Next intX

' Move to next record in recordset.
rstReport.MoveN ext
End If
End If

End Sub
Private Sub Detail_Print(Ca ncel As Integer, PrintCount As Integer)

Dim intX As Integer
Dim lngRowTotal As Long

' If PrintCount is 1, initialize rowTotal variable.
' Add to column totals.
If Me.PrintCount = 1 Then
lngRowTotal = 0

For intX = 2 To intColumnCount
' Starting at column 2 (first text box with crosstab value),
' compute total for current row in the "Detail" section.
lngRowTotal = lngRowTotal + Me("Col" + Format(intX))

' Add crosstab value to total for current column.
lngRgColumnTota l(intX) = lngRgColumnTota l(intX) + Me("Col" +
Format(intX))
Next intX

' Put row total in text box in the "Detail" section.
Me("Col" + Format(intColum nCount + 1)) = lngRowTotal
' Add row total for current row to grand total.
lngReportTotal = lngReportTotal + lngRowTotal
End If
End Sub
Private Sub Detail_Retreat( )

' Always back up to previous record when "Detail" section retreats.
rstReport.MoveP revious

End Sub
Private Sub PageHeaderSecti on_Format(Cance l As Integer, FormatCount As
Integer)

Dim intX As Integer

' Put column headings into text boxes in page header.
For intX = 1 To intColumnCount
Me("Head" + Format(intX)) = rstReport(intX - 1).Name
Next intX

' Make next available text box Totals heading.
Me("Head" + Format(intColum nCount + 1)) = "Totals"

' Hide unused text boxes in page header.
For intX = (intColumnCount + 2) To conTotalColumns
Me("Head" + Format(intX)).V isible = False
Next intX

End Sub
Private Sub Report_Close()

On Error Resume Next

' Close recordset.
rstReport.Close

End Sub
Private Sub Report_NoData(C ancel As Integer)

MsgBox "No records match the criteria you entered.", vbExclamation,
"No Records Found"
rstReport.Close
Cancel = True

End Sub
Private Sub Report_Open(Can cel As Integer)

' Create underlying recordset for report using criteria entered in
' EmployeeSalesDi alogBox form.

Dim intX As Integer
Dim qdf As QueryDef
Dim frm As Form

' Set database variable to current database.
Set dbsReport = CurrentDb
Set frm = Forms!EmployeeS alesDialogBox
' Open QueryDef object.
Set qdf = dbsReport.Query Defs("EmployeeS ales")
' Set parameters for query based on values entered
' in EmployeeSalesDi alogBox form.
qdf.Parameters( "Forms!Employee SalesDialogBox! BeginningDate") _
= frm!BeginningDa te
qdf.Parameters( "Forms!Employee SalesDialogBox! EndingDate") _
= frm!EndingDate

' Open Recordset object.
Set rstReport = qdf.OpenRecords et()

' Set a variable to hold number of columns in crosstab query.
intColumnCount = rstReport.Field s.Count

End Sub
Private Sub ReportFooter_Pr int(Cancel As Integer, PrintCount As Integer)

Dim intX As Integer

' Put column totals in text boxes in report footer.
' Start at column 2 (first text box with crosstab value).
For intX = 2 To intColumnCount
Me("Tot" + Format(intX)) = lngRgColumnTota l(intX)
Next intX

' Put grand total in text box in report footer.
Me("Tot" + Format(intColum nCount + 1)) = lngReportTotal

' Hide unused text boxes in report footer.
For intX = intColumnCount + 2 To conTotalColumns
Me("Tot" + Format(intX)).V isible = False
Next intX

End Sub
Private Sub ReportHeader_Fo rmat(Cancel As Integer, FormatCount As
Integer)

' Move to first record in recordset at the beginning of the report
' or when the report is restarted. (A report is restarted when
' you print a report from Print Preview window, or when you return
' to a previous page while previewing.)
rstReport.MoveF irst

'Initialize variables.
InitVars

End Sub

The following event procedures are set for the report. Report/Section
Property Setting
------------------------------------------------------------
Report OnOpen [Event Procedure]
OnClose [Event Procedure]
OnNoData [Event Procedure]
Report Header OnFormat [Event Procedure]
Page Header OnFormat [Event Procedure]
Detail Section OnFormat [Event Procedure]
OnPrint [Event Procedure]
OnRetreat [Event Procedure]
Report footer OnPrint [Event procedure]

Save the Report as EmployeeSales. When you are prompted to enter the
parameter values, click Cancel and then close the report.
After you create the new database objects that are specified earlier,
you can open the EmployeeSalesDi alogBox form. You can enter starting
dates and ending dates on the form. Use a date range from 7/10/1996
through 05/06/1998.

After you enter the date range, click Employee Sales Crosstab on the
form to preview your dynamic report.

back to the top

REFERENCES
For additional information about downloading a working copy of a sample
database, click the following article number to view the article in the
Microsoft Knowledge Base:
248674 ACC2000: Orders and Developer Solutions Sample Databases
Available on the Microsoft Developer Network (MSDN)

Follow these steps to find the sample:
Open the sample database Solutions9.mdb.
In the Select a Category of Examples list, click Create advanced
reports.
In the Select an Example list, click Create a crosstab report with
dynamic column headings, and then click OK.
back to the top
The information in this article applies to:
Microsoft Access 2002
Last Reviewed: 10/23/2003 (3.0)
Keywords: kbhowto kbHOWTOmaster kbusage KB328320
*** Sent via Developersdex http://www.developersdex.com ***
Don't just participate in USENET...get rewarded for it!
Nov 12 '05 #2

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

1
3323
by: Richard Hollenbeck | last post by:
Hello Newsgroup. You have all been very helpful in the past and I thank you. I try to ask relevant questions so that they don't just benefit me, but also benefit the group. I'm currently overwhelmed by useless examples across the web on how to make "dynamic crosstab reports" without myself having a basic understanding about how to retrieve...
15
4388
by: Richard Hollenbeck | last post by:
I tried to ask this question before on the 14th of January but I never got a reply. I'm still struggling with the problem. I'll try to rephrase the question: I have a crosstab query with rows of students and columns of activities and the data are the students' scores in each activity. No problem, almost. The problem is that there are...
3
3587
by: deejayquai | last post by:
Hi I've created a crosstab query and displayed it as a sub-report in my main report. This is fine until the data changes and the column names become incorrect. I know I have to create a 'dynamic crosstab query' but I don't know how to!! I've read the "How to..." on the Microsoft site but it mainly gives an example rather than explain the...
2
2924
by: deejayquai | last post by:
Hi I'm trying to produce a report based on a dynamic crosstab. Ultimately i'd like the report to actually become a sub report within a student end of year record of achievement. The dynamic sub-report will capture what grades the student has achieved in a list of different subjects and the reason I need it to be dynamic is that students...
4
2449
by: deejayquai | last post by:
I've worked through the MS KB example and it doesn't really help me as I missing the basics of what the code is doing. I've posted a couple of times here in thsi group but with no success. Could anyone recommend a book or a website that goes through the basics of how to build dynamic crosstab queries in order to create reports that allows...
1
5154
by: Brad | last post by:
Thanks for taking the time to read my question. I have a table of data that has Date, Data and Category. I need to show, in a report, each Categories Data by Date. The Date has to be it's own column across the top and Category down the left side. As data is entered, the number of unique dates increases. As a result the
13
17118
by: salad | last post by:
Operating in A97. I didn't receive much of a response conserning Pivot tables in Access. Pivot tables are nice, but a CrossTab will work for me too. Using a Pivot table, one is actually launching Excel for data viewing. I'd prefer the user stay in Access. Creating dynamic crosstab queries is pretty simple. The problem is that the column...
3
3482
by: Niranjan | last post by:
I want create a report based on the crosstab query which normally returns about 50 - 60 columns. The columns have names of the counties and they keep changing for every session. Is there a way to program a dynamic multi-page crosstab report?
14
7831
ollyb303
by: ollyb303 | last post by:
Hi, I am trying to create a dynamic crosstab report which will display number of calls handled (I work for a call centre) per day grouped by supervisor. I have one crosstab query (Query1) which has the following fields: SPID (supervisor ID), total:group by, as row heading Date, total:group by, as column heading Calls handled, total:sum,...
0
7527
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main...
0
7726
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. ...
0
7967
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that...
0
7819
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the...
0
6052
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then...
0
5097
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert...
0
3505
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in...
0
3488
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
0
772
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.