Hi,
Thanks for the reply. Actually this is not my actual design. As what I have
mentioned that this table is based on a "make table query". I do this for
some first.
First I cannot get the crosstab query to work with crystal reports as shown
below:
TRANSFORM First([FirstName] & " " & [LastName] & " - " & [Status]) AS Name
SELECT qry_DateTemp.Date
FROM Customers RIGHT JOIN qry_DateTemp ON Customers.CustomerID =
qry_DateTemp.CustomerID
GROUP BY qry_DateTemp.Date
PIVOT qry_DateTemp.RoomNumber In
(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20);
As you can see the RoomNumber is hard coded in the PIVOT section. The
problem is the room number may change according to the hotel needs. What if
they use 201, 202, 203, etc in their room numbering? So this crosstab query
will be useless.
Instead I create a make table query based on the crosstab query above to
output the record in a temporary table. I do this because I can create a
code in visual basic that will pull out the Room Number from Rooms table
like the code below:
With rsRooms
.Open "SELECT RoomNumber FROM Rooms", CN, adOpenStatic,
adLockOptimistic
lvList.ColumnHeaders.Add , , "Date"
If .RecordCount > 0 Then
Do While Not .EOF
lvList.ColumnHeaders.Add , , .Fields("RoomNumber")
strRooms = strRooms & .Fields("RoomNumber")
.MoveNext
If Not .EOF Then strRooms = strRooms & ", "
Loop
End If
End With
The crosstab query will look like this:
TRANSFORM First([FirstName] & " " & [LastName] & " - " & [Status]) AS Name
SELECT qry_DateTemp.Date
FROM Customers RIGHT JOIN qry_DateTemp ON Customers.CustomerID =
qry_DateTemp.CustomerID
GROUP BY qry_DateTemp.Date
PIVOT qry_DateTemp.RoomNumber In (" & strRooms & ");
From there I can create a query named "qry_Inventory_View" and a make table
query like:
SELECT qry_Inventory_View.* INTO [Room Availability]
FROM qry_Inventory_View;
This will then insert all the records, that the qry_Inventory_View query
generated into "Room Availability" table.
If I can only create a crosstab query on crystal report I will not bother to
create this complicated process.
I hope I explained it well.
Thank you
Post by MikeDPost by JayI have a table created using a make table query in ms access that is run
by my vb 6 application. The column generated in this table is not
constant and it changes depending on the room number setup by a hotel
encoder.
Date | 201 | 202 | 203 |
204
4/1/10 john matthew
4/2/10 peter
.
.
.
4/30/10 andrew
The most important here is on how I can setup the column in crystal
reports. Since the column is not constant.
A couple of things are a little unclear, to me at least. Are you saying
the actual number of columns in the table and even the column names can
vary? If so, that's a tremendously bad design. Without more information,
I don't know what would be best to suggest, but I know it's not that. I
suppose something with 2 or more tables and creating a relationship
between them. Afterall, that's why Access and SQL Server and Oracle (and
others) are called relational database management systems.
I don't think there's anything you can as far as Crystal goes with your
current design as Crystal "read" the columns when you're creating the
report. If you were using SQL Server or an RDMS that provided views and
stored procedures, I'd say *maybe* you could use either or both of those.
But I think the best answer is to redesign your database and not have its
architecture vary based on user input.
OTOH...if what I mentioned is not your database design (columns and names
*are* consistent), then I don't have any idea what your question/problem is.
--
Mike