text box truncating on access group header

J

jeremyj54

I have an access report that I have placed a text box in one of the group
headers and it is only showing 255 charecters. If I place the same text box
in the detail section it shows all charecters. How do I get all to show in
the header, I have got can grow/shrink to yes and it is not in the
sorting/grouping under view.
 
K

Ken Snell \(MVP\)

I am guessing that the textbox's ControlSource field is in the Sorting &
Grouping list for the report? If yes, ACCESS will truncate the string to 255
characters because it must group on that field -- and grouping on a field
causes ACCESS to limit the string to 255 characters.
 
J

jeremyj54

The field is not in the sorting and grouping list for the report.

More information if this helps, this is a converted field from a linked
oracle table that originally is a long raw field converted to string. Like
I said it shows correctly in the detail section, just not in the group header.
 
K

Ken Snell \(MVP\)

I've just tested a report where I put a textbox bound to a memo field in a
report's Group Header section; no truncation noted.

What is the report's RecordSource query? Identify the data types of the
fields.
 
J

jeremyj54

Here is the query the Operation Bits is the one im having problems with.

SELECT SYSADM_WORK_ORDER.BASE_ID, SYSADM_WORK_ORDER.PART_ID,
SYSADM_PART.DESCRIPTION, SYSADM_WORK_ORDER.DESIRED_RLS_DATE,
SYSADM_WORK_ORDER.DESIRED_WANT_DATE, SYSADM_WORK_ORDER.SCHED_START_DATE,
SYSADM_WORK_ORDER.SCHED_FINISH_DATE, SYSADM_WORK_ORDER.DESIRED_QTY,
SYSADM_OPERATION.RESOURCE_ID, CDbl(SYSADM_OPERATION!SEQUENCE_NO) AS SEQUENCE,
SYSADM_OPERATION.CALC_END_QTY, SYSADM_OPERATION.CALC_START_QTY,
SYSADM_OPERATION.SETUP_HRS, SYSADM_OPERATION.RUN_HRS,
SYSADM_OPERATION_RESOURCE.RESOURCE_ID, CDbl([PIECE_NO]) AS PIECE,
SYSADM_REQUIREMENT.PART_ID, SYSADM_PART_1.DESCRIPTION,
SYSADM_REQUIREMENT.REQUIRED_DATE, SYSADM_PART_1.STOCK_UM,
SYSADM_REQUIREMENT.CALC_QTY, SYSADM_REQUIREMENT.ISSUED_QTY,
SYSADM_PART_1.BACKFLUSH_LOC_ID, SYSADM_OPERATION.SCHED_START_DATE,
SYSADM_OPERATION.SCHED_FINISH_DATE, RAW2STR(SYSADM_WORKORDER_BINARY!BITS) AS
[Workorder Bits], SYSADM_PART_1.BACKFLUSH_WHS_ID, SYSADM_REQUIREMENT.QTY_PER,
First(RAW2STR(SYSADM_OPERATION_BINARY!BITS)) AS [Operation Bits]
FROM ((((((SYSADM_WORK_ORDER INNER JOIN SYSADM_OPERATION ON
(SYSADM_WORK_ORDER.SUB_ID = SYSADM_OPERATION.WORKORDER_SUB_ID) AND
(SYSADM_WORK_ORDER.SPLIT_ID = SYSADM_OPERATION.WORKORDER_SPLIT_ID) AND
(SYSADM_WORK_ORDER.LOT_ID = SYSADM_OPERATION.WORKORDER_LOT_ID) AND
(SYSADM_WORK_ORDER.BASE_ID = SYSADM_OPERATION.WORKORDER_BASE_ID) AND
(SYSADM_WORK_ORDER.TYPE = SYSADM_OPERATION.WORKORDER_TYPE)) LEFT JOIN
SYSADM_REQUIREMENT ON (SYSADM_OPERATION.SEQUENCE_NO =
SYSADM_REQUIREMENT.OPERATION_SEQ_NO) AND (SYSADM_OPERATION.WORKORDER_SUB_ID =
SYSADM_REQUIREMENT.WORKORDER_SUB_ID) AND (SYSADM_OPERATION.WORKORDER_SPLIT_ID
= SYSADM_REQUIREMENT.WORKORDER_SPLIT_ID) AND
(SYSADM_OPERATION.WORKORDER_LOT_ID = SYSADM_REQUIREMENT.WORKORDER_LOT_ID) AND
(SYSADM_OPERATION.WORKORDER_BASE_ID = SYSADM_REQUIREMENT.WORKORDER_BASE_ID)
AND (SYSADM_OPERATION.WORKORDER_TYPE = SYSADM_REQUIREMENT.WORKORDER_TYPE))
LEFT JOIN SYSADM_PART AS SYSADM_PART_1 ON SYSADM_REQUIREMENT.PART_ID =
SYSADM_PART_1.ID) LEFT JOIN SYSADM_OPERATION_RESOURCE ON
(SYSADM_OPERATION.SEQUENCE_NO = SYSADM_OPERATION_RESOURCE.SEQUENCE_NO) AND
(SYSADM_OPERATION.WORKORDER_SUB_ID =
SYSADM_OPERATION_RESOURCE.WORKORDER_SUB_ID) AND
(SYSADM_OPERATION.WORKORDER_SPLIT_ID =
SYSADM_OPERATION_RESOURCE.WORKORDER_SPLIT_ID) AND
(SYSADM_OPERATION.WORKORDER_LOT_ID =
SYSADM_OPERATION_RESOURCE.WORKORDER_LOT_ID) AND
(SYSADM_OPERATION.WORKORDER_BASE_ID =
SYSADM_OPERATION_RESOURCE.WORKORDER_BASE_ID) AND
(SYSADM_OPERATION.WORKORDER_TYPE = SYSADM_OPERATION_RESOURCE.WORKORDER_TYPE))
LEFT JOIN SYSADM_PART ON SYSADM_WORK_ORDER.PART_ID = SYSADM_PART.ID) LEFT
JOIN SYSADM_WORKORDER_BINARY ON (SYSADM_WORK_ORDER.TYPE =
SYSADM_WORKORDER_BINARY.WORKORDER_TYPE) AND (SYSADM_WORK_ORDER.BASE_ID =
SYSADM_WORKORDER_BINARY.WORKORDER_BASE_ID) AND (SYSADM_WORK_ORDER.LOT_ID =
SYSADM_WORKORDER_BINARY.WORKORDER_LOT_ID) AND (SYSADM_WORK_ORDER.SPLIT_ID =
SYSADM_WORKORDER_BINARY.WORKORDER_SPLIT_ID) AND (SYSADM_WORK_ORDER.SUB_ID =
SYSADM_WORKORDER_BINARY.WORKORDER_SUB_ID)) LEFT JOIN SYSADM_OPERATION_BINARY
ON (SYSADM_OPERATION.SEQUENCE_NO = SYSADM_OPERATION_BINARY.SEQUENCE_NO) AND
(SYSADM_OPERATION.WORKORDER_SUB_ID =
SYSADM_OPERATION_BINARY.WORKORDER_SUB_ID) AND
(SYSADM_OPERATION.WORKORDER_SPLIT_ID =
SYSADM_OPERATION_BINARY.WORKORDER_SPLIT_ID) AND
(SYSADM_OPERATION.WORKORDER_LOT_ID =
SYSADM_OPERATION_BINARY.WORKORDER_LOT_ID) AND
(SYSADM_OPERATION.WORKORDER_BASE_ID =
SYSADM_OPERATION_BINARY.WORKORDER_BASE_ID) AND
(SYSADM_OPERATION.WORKORDER_TYPE = SYSADM_OPERATION_BINARY.WORKORDER_TYPE)
GROUP BY SYSADM_WORK_ORDER.BASE_ID, SYSADM_WORK_ORDER.PART_ID,
SYSADM_PART.DESCRIPTION, SYSADM_WORK_ORDER.DESIRED_RLS_DATE,
SYSADM_WORK_ORDER.DESIRED_WANT_DATE, SYSADM_WORK_ORDER.SCHED_START_DATE,
SYSADM_WORK_ORDER.SCHED_FINISH_DATE, SYSADM_WORK_ORDER.DESIRED_QTY,
SYSADM_OPERATION.RESOURCE_ID, CDbl(SYSADM_OPERATION!SEQUENCE_NO),
SYSADM_OPERATION.CALC_END_QTY, SYSADM_OPERATION.CALC_START_QTY,
SYSADM_OPERATION.SETUP_HRS, SYSADM_OPERATION.RUN_HRS,
SYSADM_OPERATION_RESOURCE.RESOURCE_ID, CDbl([PIECE_NO]),
SYSADM_REQUIREMENT.PART_ID, SYSADM_PART_1.DESCRIPTION,
SYSADM_REQUIREMENT.REQUIRED_DATE, SYSADM_PART_1.STOCK_UM,
SYSADM_REQUIREMENT.CALC_QTY, SYSADM_REQUIREMENT.ISSUED_QTY,
SYSADM_PART_1.BACKFLUSH_LOC_ID, SYSADM_OPERATION.SCHED_START_DATE,
SYSADM_OPERATION.SCHED_FINISH_DATE, RAW2STR(SYSADM_WORKORDER_BINARY!BITS),
SYSADM_PART_1.BACKFLUSH_WHS_ID, SYSADM_REQUIREMENT.QTY_PER
HAVING (((SYSADM_WORK_ORDER.BASE_ID)=[enter base ID]))
ORDER BY CDbl(SYSADM_OPERATION!SEQUENCE_NO), CDbl([PIECE_NO]);
 
K

Ken Snell \(MVP\)

Is there a reason for using a Totals query in this case? Other than the one
First aggregate function in the SELECT clause, I see no use of any aggregate
functions that would necessitate the Totals query design. It appears to me
that this query should work for you:


SELECT SYSADM_WORK_ORDER.BASE_ID, SYSADM_WORK_ORDER.PART_ID,
SYSADM_PART.DESCRIPTION, SYSADM_WORK_ORDER.DESIRED_RLS_DATE,
SYSADM_WORK_ORDER.DESIRED_WANT_DATE, SYSADM_WORK_ORDER.SCHED_START_DATE,
SYSADM_WORK_ORDER.SCHED_FINISH_DATE, SYSADM_WORK_ORDER.DESIRED_QTY,
SYSADM_OPERATION.RESOURCE_ID, CDbl(SYSADM_OPERATION!SEQUENCE_NO) AS
SEQUENCE,
SYSADM_OPERATION.CALC_END_QTY, SYSADM_OPERATION.CALC_START_QTY,
SYSADM_OPERATION.SETUP_HRS, SYSADM_OPERATION.RUN_HRS,
SYSADM_OPERATION_RESOURCE.RESOURCE_ID, CDbl([PIECE_NO]) AS PIECE,
SYSADM_REQUIREMENT.PART_ID, SYSADM_PART_1.DESCRIPTION,
SYSADM_REQUIREMENT.REQUIRED_DATE, SYSADM_PART_1.STOCK_UM,
SYSADM_REQUIREMENT.CALC_QTY, SYSADM_REQUIREMENT.ISSUED_QTY,
SYSADM_PART_1.BACKFLUSH_LOC_ID, SYSADM_OPERATION.SCHED_START_DATE,
SYSADM_OPERATION.SCHED_FINISH_DATE, RAW2STR(SYSADM_WORKORDER_BINARY!BITS) AS
[Workorder Bits], SYSADM_PART_1.BACKFLUSH_WHS_ID,
SYSADM_REQUIREMENT.QTY_PER,
(RAW2STR(SYSADM_OPERATION_BINARY!BITS)) AS [Operation Bits]
FROM ((((((SYSADM_WORK_ORDER INNER JOIN SYSADM_OPERATION ON
(SYSADM_WORK_ORDER.SUB_ID = SYSADM_OPERATION.WORKORDER_SUB_ID) AND
(SYSADM_WORK_ORDER.SPLIT_ID = SYSADM_OPERATION.WORKORDER_SPLIT_ID) AND
(SYSADM_WORK_ORDER.LOT_ID = SYSADM_OPERATION.WORKORDER_LOT_ID) AND
(SYSADM_WORK_ORDER.BASE_ID = SYSADM_OPERATION.WORKORDER_BASE_ID) AND
(SYSADM_WORK_ORDER.TYPE = SYSADM_OPERATION.WORKORDER_TYPE)) LEFT JOIN
SYSADM_REQUIREMENT ON (SYSADM_OPERATION.SEQUENCE_NO =
SYSADM_REQUIREMENT.OPERATION_SEQ_NO) AND (SYSADM_OPERATION.WORKORDER_SUB_ID
=
SYSADM_REQUIREMENT.WORKORDER_SUB_ID) AND
(SYSADM_OPERATION.WORKORDER_SPLIT_ID
= SYSADM_REQUIREMENT.WORKORDER_SPLIT_ID) AND
(SYSADM_OPERATION.WORKORDER_LOT_ID = SYSADM_REQUIREMENT.WORKORDER_LOT_ID)
AND
(SYSADM_OPERATION.WORKORDER_BASE_ID = SYSADM_REQUIREMENT.WORKORDER_BASE_ID)
AND (SYSADM_OPERATION.WORKORDER_TYPE = SYSADM_REQUIREMENT.WORKORDER_TYPE))
LEFT JOIN SYSADM_PART AS SYSADM_PART_1 ON SYSADM_REQUIREMENT.PART_ID =
SYSADM_PART_1.ID) LEFT JOIN SYSADM_OPERATION_RESOURCE ON
(SYSADM_OPERATION.SEQUENCE_NO = SYSADM_OPERATION_RESOURCE.SEQUENCE_NO) AND
(SYSADM_OPERATION.WORKORDER_SUB_ID =
SYSADM_OPERATION_RESOURCE.WORKORDER_SUB_ID) AND
(SYSADM_OPERATION.WORKORDER_SPLIT_ID =
SYSADM_OPERATION_RESOURCE.WORKORDER_SPLIT_ID) AND
(SYSADM_OPERATION.WORKORDER_LOT_ID =
SYSADM_OPERATION_RESOURCE.WORKORDER_LOT_ID) AND
(SYSADM_OPERATION.WORKORDER_BASE_ID =
SYSADM_OPERATION_RESOURCE.WORKORDER_BASE_ID) AND
(SYSADM_OPERATION.WORKORDER_TYPE =
SYSADM_OPERATION_RESOURCE.WORKORDER_TYPE))
LEFT JOIN SYSADM_PART ON SYSADM_WORK_ORDER.PART_ID = SYSADM_PART.ID) LEFT
JOIN SYSADM_WORKORDER_BINARY ON (SYSADM_WORK_ORDER.TYPE =
SYSADM_WORKORDER_BINARY.WORKORDER_TYPE) AND (SYSADM_WORK_ORDER.BASE_ID =
SYSADM_WORKORDER_BINARY.WORKORDER_BASE_ID) AND (SYSADM_WORK_ORDER.LOT_ID =
SYSADM_WORKORDER_BINARY.WORKORDER_LOT_ID) AND (SYSADM_WORK_ORDER.SPLIT_ID =
SYSADM_WORKORDER_BINARY.WORKORDER_SPLIT_ID) AND (SYSADM_WORK_ORDER.SUB_ID =
SYSADM_WORKORDER_BINARY.WORKORDER_SUB_ID)) LEFT JOIN SYSADM_OPERATION_BINARY
ON (SYSADM_OPERATION.SEQUENCE_NO = SYSADM_OPERATION_BINARY.SEQUENCE_NO) AND
(SYSADM_OPERATION.WORKORDER_SUB_ID =
SYSADM_OPERATION_BINARY.WORKORDER_SUB_ID) AND
(SYSADM_OPERATION.WORKORDER_SPLIT_ID =
SYSADM_OPERATION_BINARY.WORKORDER_SPLIT_ID) AND
(SYSADM_OPERATION.WORKORDER_LOT_ID =
SYSADM_OPERATION_BINARY.WORKORDER_LOT_ID) AND
(SYSADM_OPERATION.WORKORDER_BASE_ID =
SYSADM_OPERATION_BINARY.WORKORDER_BASE_ID) AND
(SYSADM_OPERATION.WORKORDER_TYPE = SYSADM_OPERATION_BINARY.WORKORDER_TYPE)
WHERE (((SYSADM_WORK_ORDER.BASE_ID)=[enter base ID]))
ORDER BY CDbl(SYSADM_OPERATION!SEQUENCE_NO), CDbl([PIECE_NO]);


Otherwise, I don't see anything obvious in the query's SQL that would lead
to truncation in my experience. Are you sure that the field is being
truncated? perhaps it's just not growing because the textbox control's Can
Grow property isn't set to Yes and the Group Header section's Can Grow
property isn't set to Yes?
--

Ken Snell
<MS ACCESS MVP>
 
J

jeremyj54

There is no reason for it to be a totals query, I started with exactly what
you have below but then read somewhere to use the first aggregate to stop
trucation. It is actually truncating, I have can grow in both the field and
the group set to yes, I also made this field huge and put a border around it
to see how big it was and it still only showed the first 255 charecters.

Ken Snell (MVP) said:
Is there a reason for using a Totals query in this case? Other than the one
First aggregate function in the SELECT clause, I see no use of any aggregate
functions that would necessitate the Totals query design. It appears to me
that this query should work for you:


SELECT SYSADM_WORK_ORDER.BASE_ID, SYSADM_WORK_ORDER.PART_ID,
SYSADM_PART.DESCRIPTION, SYSADM_WORK_ORDER.DESIRED_RLS_DATE,
SYSADM_WORK_ORDER.DESIRED_WANT_DATE, SYSADM_WORK_ORDER.SCHED_START_DATE,
SYSADM_WORK_ORDER.SCHED_FINISH_DATE, SYSADM_WORK_ORDER.DESIRED_QTY,
SYSADM_OPERATION.RESOURCE_ID, CDbl(SYSADM_OPERATION!SEQUENCE_NO) AS
SEQUENCE,
SYSADM_OPERATION.CALC_END_QTY, SYSADM_OPERATION.CALC_START_QTY,
SYSADM_OPERATION.SETUP_HRS, SYSADM_OPERATION.RUN_HRS,
SYSADM_OPERATION_RESOURCE.RESOURCE_ID, CDbl([PIECE_NO]) AS PIECE,
SYSADM_REQUIREMENT.PART_ID, SYSADM_PART_1.DESCRIPTION,
SYSADM_REQUIREMENT.REQUIRED_DATE, SYSADM_PART_1.STOCK_UM,
SYSADM_REQUIREMENT.CALC_QTY, SYSADM_REQUIREMENT.ISSUED_QTY,
SYSADM_PART_1.BACKFLUSH_LOC_ID, SYSADM_OPERATION.SCHED_START_DATE,
SYSADM_OPERATION.SCHED_FINISH_DATE, RAW2STR(SYSADM_WORKORDER_BINARY!BITS) AS
[Workorder Bits], SYSADM_PART_1.BACKFLUSH_WHS_ID,
SYSADM_REQUIREMENT.QTY_PER,
(RAW2STR(SYSADM_OPERATION_BINARY!BITS)) AS [Operation Bits]
FROM ((((((SYSADM_WORK_ORDER INNER JOIN SYSADM_OPERATION ON
(SYSADM_WORK_ORDER.SUB_ID = SYSADM_OPERATION.WORKORDER_SUB_ID) AND
(SYSADM_WORK_ORDER.SPLIT_ID = SYSADM_OPERATION.WORKORDER_SPLIT_ID) AND
(SYSADM_WORK_ORDER.LOT_ID = SYSADM_OPERATION.WORKORDER_LOT_ID) AND
(SYSADM_WORK_ORDER.BASE_ID = SYSADM_OPERATION.WORKORDER_BASE_ID) AND
(SYSADM_WORK_ORDER.TYPE = SYSADM_OPERATION.WORKORDER_TYPE)) LEFT JOIN
SYSADM_REQUIREMENT ON (SYSADM_OPERATION.SEQUENCE_NO =
SYSADM_REQUIREMENT.OPERATION_SEQ_NO) AND (SYSADM_OPERATION.WORKORDER_SUB_ID
=
SYSADM_REQUIREMENT.WORKORDER_SUB_ID) AND
(SYSADM_OPERATION.WORKORDER_SPLIT_ID
= SYSADM_REQUIREMENT.WORKORDER_SPLIT_ID) AND
(SYSADM_OPERATION.WORKORDER_LOT_ID = SYSADM_REQUIREMENT.WORKORDER_LOT_ID)
AND
(SYSADM_OPERATION.WORKORDER_BASE_ID = SYSADM_REQUIREMENT.WORKORDER_BASE_ID)
AND (SYSADM_OPERATION.WORKORDER_TYPE = SYSADM_REQUIREMENT.WORKORDER_TYPE))
LEFT JOIN SYSADM_PART AS SYSADM_PART_1 ON SYSADM_REQUIREMENT.PART_ID =
SYSADM_PART_1.ID) LEFT JOIN SYSADM_OPERATION_RESOURCE ON
(SYSADM_OPERATION.SEQUENCE_NO = SYSADM_OPERATION_RESOURCE.SEQUENCE_NO) AND
(SYSADM_OPERATION.WORKORDER_SUB_ID =
SYSADM_OPERATION_RESOURCE.WORKORDER_SUB_ID) AND
(SYSADM_OPERATION.WORKORDER_SPLIT_ID =
SYSADM_OPERATION_RESOURCE.WORKORDER_SPLIT_ID) AND
(SYSADM_OPERATION.WORKORDER_LOT_ID =
SYSADM_OPERATION_RESOURCE.WORKORDER_LOT_ID) AND
(SYSADM_OPERATION.WORKORDER_BASE_ID =
SYSADM_OPERATION_RESOURCE.WORKORDER_BASE_ID) AND
(SYSADM_OPERATION.WORKORDER_TYPE =
SYSADM_OPERATION_RESOURCE.WORKORDER_TYPE))
LEFT JOIN SYSADM_PART ON SYSADM_WORK_ORDER.PART_ID = SYSADM_PART.ID) LEFT
JOIN SYSADM_WORKORDER_BINARY ON (SYSADM_WORK_ORDER.TYPE =
SYSADM_WORKORDER_BINARY.WORKORDER_TYPE) AND (SYSADM_WORK_ORDER.BASE_ID =
SYSADM_WORKORDER_BINARY.WORKORDER_BASE_ID) AND (SYSADM_WORK_ORDER.LOT_ID =
SYSADM_WORKORDER_BINARY.WORKORDER_LOT_ID) AND (SYSADM_WORK_ORDER.SPLIT_ID =
SYSADM_WORKORDER_BINARY.WORKORDER_SPLIT_ID) AND (SYSADM_WORK_ORDER.SUB_ID =
SYSADM_WORKORDER_BINARY.WORKORDER_SUB_ID)) LEFT JOIN SYSADM_OPERATION_BINARY
ON (SYSADM_OPERATION.SEQUENCE_NO = SYSADM_OPERATION_BINARY.SEQUENCE_NO) AND
(SYSADM_OPERATION.WORKORDER_SUB_ID =
SYSADM_OPERATION_BINARY.WORKORDER_SUB_ID) AND
(SYSADM_OPERATION.WORKORDER_SPLIT_ID =
SYSADM_OPERATION_BINARY.WORKORDER_SPLIT_ID) AND
(SYSADM_OPERATION.WORKORDER_LOT_ID =
SYSADM_OPERATION_BINARY.WORKORDER_LOT_ID) AND
(SYSADM_OPERATION.WORKORDER_BASE_ID =
SYSADM_OPERATION_BINARY.WORKORDER_BASE_ID) AND
(SYSADM_OPERATION.WORKORDER_TYPE = SYSADM_OPERATION_BINARY.WORKORDER_TYPE)
WHERE (((SYSADM_WORK_ORDER.BASE_ID)=[enter base ID]))
ORDER BY CDbl(SYSADM_OPERATION!SEQUENCE_NO), CDbl([PIECE_NO]);


Otherwise, I don't see anything obvious in the query's SQL that would lead
to truncation in my experience. Are you sure that the field is being
truncated? perhaps it's just not growing because the textbox control's Can
Grow property isn't set to Yes and the Group Header section's Can Grow
property isn't set to Yes?
--

Ken Snell
<MS ACCESS MVP>




jeremyj54 said:
Here is the query the Operation Bits is the one im having problems with.
 
K

Ken Snell \(MVP\)

Use of First aggregate function is recommended in order to avoid having to
put a memo field into the GROUP BY clause, so that does have its uses.
However, for your report's needs, you should be able to use a normal select
query, which will not truncate a memo field.

Now, there is one other item that can cause truncation when you export a
query, and that is the use of the RAW2STR function. When you have a
user-defined function in a query, memo fields (even if not involved in the
function) are truncated if you try to export that query. However, because
you're not exporting here, I don't see that as the problem.

I also assume, based on your initial post about truncation not occurring in
the detail section, that the RAW2STR function is not causing truncation of
the string itself.

I still am thinking there is something in the Group Header section's
properties that is causing this truncation, but I am at a loss to speculate
further. Would you be wiilling to email me a copy of the database that would
demonstrate the problem? I may be able to better spot the problem if I can
dive into it. If yes, you'll find an email for me at this website:
www.cadellsoftare.org

--

Ken Snell
<MS ACCESS MVP>




jeremyj54 said:
There is no reason for it to be a totals query, I started with exactly
what
you have below but then read somewhere to use the first aggregate to stop
trucation. It is actually truncating, I have can grow in both the field
and
the group set to yes, I also made this field huge and put a border around
it
to see how big it was and it still only showed the first 255 charecters.

Ken Snell (MVP) said:
Is there a reason for using a Totals query in this case? Other than the
one
First aggregate function in the SELECT clause, I see no use of any
aggregate
functions that would necessitate the Totals query design. It appears to
me
that this query should work for you:


SELECT SYSADM_WORK_ORDER.BASE_ID, SYSADM_WORK_ORDER.PART_ID,
SYSADM_PART.DESCRIPTION, SYSADM_WORK_ORDER.DESIRED_RLS_DATE,
SYSADM_WORK_ORDER.DESIRED_WANT_DATE, SYSADM_WORK_ORDER.SCHED_START_DATE,
SYSADM_WORK_ORDER.SCHED_FINISH_DATE, SYSADM_WORK_ORDER.DESIRED_QTY,
SYSADM_OPERATION.RESOURCE_ID, CDbl(SYSADM_OPERATION!SEQUENCE_NO) AS
SEQUENCE,
SYSADM_OPERATION.CALC_END_QTY, SYSADM_OPERATION.CALC_START_QTY,
SYSADM_OPERATION.SETUP_HRS, SYSADM_OPERATION.RUN_HRS,
SYSADM_OPERATION_RESOURCE.RESOURCE_ID, CDbl([PIECE_NO]) AS PIECE,
SYSADM_REQUIREMENT.PART_ID, SYSADM_PART_1.DESCRIPTION,
SYSADM_REQUIREMENT.REQUIRED_DATE, SYSADM_PART_1.STOCK_UM,
SYSADM_REQUIREMENT.CALC_QTY, SYSADM_REQUIREMENT.ISSUED_QTY,
SYSADM_PART_1.BACKFLUSH_LOC_ID, SYSADM_OPERATION.SCHED_START_DATE,
SYSADM_OPERATION.SCHED_FINISH_DATE, RAW2STR(SYSADM_WORKORDER_BINARY!BITS)
AS
[Workorder Bits], SYSADM_PART_1.BACKFLUSH_WHS_ID,
SYSADM_REQUIREMENT.QTY_PER,
(RAW2STR(SYSADM_OPERATION_BINARY!BITS)) AS [Operation Bits]
FROM ((((((SYSADM_WORK_ORDER INNER JOIN SYSADM_OPERATION ON
(SYSADM_WORK_ORDER.SUB_ID = SYSADM_OPERATION.WORKORDER_SUB_ID) AND
(SYSADM_WORK_ORDER.SPLIT_ID = SYSADM_OPERATION.WORKORDER_SPLIT_ID) AND
(SYSADM_WORK_ORDER.LOT_ID = SYSADM_OPERATION.WORKORDER_LOT_ID) AND
(SYSADM_WORK_ORDER.BASE_ID = SYSADM_OPERATION.WORKORDER_BASE_ID) AND
(SYSADM_WORK_ORDER.TYPE = SYSADM_OPERATION.WORKORDER_TYPE)) LEFT JOIN
SYSADM_REQUIREMENT ON (SYSADM_OPERATION.SEQUENCE_NO =
SYSADM_REQUIREMENT.OPERATION_SEQ_NO) AND
(SYSADM_OPERATION.WORKORDER_SUB_ID
=
SYSADM_REQUIREMENT.WORKORDER_SUB_ID) AND
(SYSADM_OPERATION.WORKORDER_SPLIT_ID
= SYSADM_REQUIREMENT.WORKORDER_SPLIT_ID) AND
(SYSADM_OPERATION.WORKORDER_LOT_ID = SYSADM_REQUIREMENT.WORKORDER_LOT_ID)
AND
(SYSADM_OPERATION.WORKORDER_BASE_ID =
SYSADM_REQUIREMENT.WORKORDER_BASE_ID)
AND (SYSADM_OPERATION.WORKORDER_TYPE =
SYSADM_REQUIREMENT.WORKORDER_TYPE))
LEFT JOIN SYSADM_PART AS SYSADM_PART_1 ON SYSADM_REQUIREMENT.PART_ID =
SYSADM_PART_1.ID) LEFT JOIN SYSADM_OPERATION_RESOURCE ON
(SYSADM_OPERATION.SEQUENCE_NO = SYSADM_OPERATION_RESOURCE.SEQUENCE_NO)
AND
(SYSADM_OPERATION.WORKORDER_SUB_ID =
SYSADM_OPERATION_RESOURCE.WORKORDER_SUB_ID) AND
(SYSADM_OPERATION.WORKORDER_SPLIT_ID =
SYSADM_OPERATION_RESOURCE.WORKORDER_SPLIT_ID) AND
(SYSADM_OPERATION.WORKORDER_LOT_ID =
SYSADM_OPERATION_RESOURCE.WORKORDER_LOT_ID) AND
(SYSADM_OPERATION.WORKORDER_BASE_ID =
SYSADM_OPERATION_RESOURCE.WORKORDER_BASE_ID) AND
(SYSADM_OPERATION.WORKORDER_TYPE =
SYSADM_OPERATION_RESOURCE.WORKORDER_TYPE))
LEFT JOIN SYSADM_PART ON SYSADM_WORK_ORDER.PART_ID = SYSADM_PART.ID) LEFT
JOIN SYSADM_WORKORDER_BINARY ON (SYSADM_WORK_ORDER.TYPE =
SYSADM_WORKORDER_BINARY.WORKORDER_TYPE) AND (SYSADM_WORK_ORDER.BASE_ID =
SYSADM_WORKORDER_BINARY.WORKORDER_BASE_ID) AND (SYSADM_WORK_ORDER.LOT_ID
=
SYSADM_WORKORDER_BINARY.WORKORDER_LOT_ID) AND (SYSADM_WORK_ORDER.SPLIT_ID
=
SYSADM_WORKORDER_BINARY.WORKORDER_SPLIT_ID) AND (SYSADM_WORK_ORDER.SUB_ID
=
SYSADM_WORKORDER_BINARY.WORKORDER_SUB_ID)) LEFT JOIN
SYSADM_OPERATION_BINARY
ON (SYSADM_OPERATION.SEQUENCE_NO = SYSADM_OPERATION_BINARY.SEQUENCE_NO)
AND
(SYSADM_OPERATION.WORKORDER_SUB_ID =
SYSADM_OPERATION_BINARY.WORKORDER_SUB_ID) AND
(SYSADM_OPERATION.WORKORDER_SPLIT_ID =
SYSADM_OPERATION_BINARY.WORKORDER_SPLIT_ID) AND
(SYSADM_OPERATION.WORKORDER_LOT_ID =
SYSADM_OPERATION_BINARY.WORKORDER_LOT_ID) AND
(SYSADM_OPERATION.WORKORDER_BASE_ID =
SYSADM_OPERATION_BINARY.WORKORDER_BASE_ID) AND
(SYSADM_OPERATION.WORKORDER_TYPE =
SYSADM_OPERATION_BINARY.WORKORDER_TYPE)
WHERE (((SYSADM_WORK_ORDER.BASE_ID)=[enter base ID]))
ORDER BY CDbl(SYSADM_OPERATION!SEQUENCE_NO), CDbl([PIECE_NO]);


Otherwise, I don't see anything obvious in the query's SQL that would
lead
to truncation in my experience. Are you sure that the field is being
truncated? perhaps it's just not growing because the textbox control's
Can
Grow property isn't set to Yes and the Group Header section's Can Grow
property isn't set to Yes?
--

Ken Snell
<MS ACCESS MVP>




jeremyj54 said:
Here is the query the Operation Bits is the one im having problems
with.

:

I've just tested a report where I put a textbox bound to a memo field
in
a
report's Group Header section; no truncation noted.

What is the report's RecordSource query? Identify the data types of
the
fields.

--

Ken Snell
<MS ACCESS MVP>


The field is not in the sorting and grouping list for the report.

More information if this helps, this is a converted field from a
linked
oracle table that originally is a long raw field converted to
string.
Like
I said it shows correctly in the detail section, just not in the
group
header.

:

I am guessing that the textbox's ControlSource field is in the
Sorting
&
Grouping list for the report? If yes, ACCESS will truncate the
string
to
255
characters because it must group on that field -- and grouping on a
field
causes ACCESS to limit the string to 255 characters.

--

Ken Snell
<MS ACCESS MVP>


I have an access report that I have placed a text box in one of
the
group
headers and it is only showing 255 charecters. If I place the
same
text
box
in the detail section it shows all charecters. How do I get all
to
show
in
the header, I have got can grow/shrink to yes and it is not in
the
sorting/grouping under view.
 
J

jeremyj54

Im not sure if sending the database to you would do any good because it is
just reporting on linked tables from an oracle database you wouldn't have any
of the data. I have tryed a couple of things that are kind of interesting to
me, I made a column in my query and just made it an expression
"aaaaaaaaaaaaaaaabbbbbbbcccccccc etc." and put it in the report and it
truncated at 255 then I put an unbound textbox on the report and made the
controlsource ="zzzzzzzzzzzzzzzzzzzzzzzwwwwwwwwwwwwwwwxxxxxx etc." and it did
not truncate. Any thoughts I am losing my mind with this one.

Ken Snell (MVP) said:
Use of First aggregate function is recommended in order to avoid having to
put a memo field into the GROUP BY clause, so that does have its uses.
However, for your report's needs, you should be able to use a normal select
query, which will not truncate a memo field.

Now, there is one other item that can cause truncation when you export a
query, and that is the use of the RAW2STR function. When you have a
user-defined function in a query, memo fields (even if not involved in the
function) are truncated if you try to export that query. However, because
you're not exporting here, I don't see that as the problem.

I also assume, based on your initial post about truncation not occurring in
the detail section, that the RAW2STR function is not causing truncation of
the string itself.

I still am thinking there is something in the Group Header section's
properties that is causing this truncation, but I am at a loss to speculate
further. Would you be wiilling to email me a copy of the database that would
demonstrate the problem? I may be able to better spot the problem if I can
dive into it. If yes, you'll find an email for me at this website:
www.cadellsoftare.org

--

Ken Snell
<MS ACCESS MVP>




jeremyj54 said:
There is no reason for it to be a totals query, I started with exactly
what
you have below but then read somewhere to use the first aggregate to stop
trucation. It is actually truncating, I have can grow in both the field
and
the group set to yes, I also made this field huge and put a border around
it
to see how big it was and it still only showed the first 255 charecters.

Ken Snell (MVP) said:
Is there a reason for using a Totals query in this case? Other than the
one
First aggregate function in the SELECT clause, I see no use of any
aggregate
functions that would necessitate the Totals query design. It appears to
me
that this query should work for you:


SELECT SYSADM_WORK_ORDER.BASE_ID, SYSADM_WORK_ORDER.PART_ID,
SYSADM_PART.DESCRIPTION, SYSADM_WORK_ORDER.DESIRED_RLS_DATE,
SYSADM_WORK_ORDER.DESIRED_WANT_DATE, SYSADM_WORK_ORDER.SCHED_START_DATE,
SYSADM_WORK_ORDER.SCHED_FINISH_DATE, SYSADM_WORK_ORDER.DESIRED_QTY,
SYSADM_OPERATION.RESOURCE_ID, CDbl(SYSADM_OPERATION!SEQUENCE_NO) AS
SEQUENCE,
SYSADM_OPERATION.CALC_END_QTY, SYSADM_OPERATION.CALC_START_QTY,
SYSADM_OPERATION.SETUP_HRS, SYSADM_OPERATION.RUN_HRS,
SYSADM_OPERATION_RESOURCE.RESOURCE_ID, CDbl([PIECE_NO]) AS PIECE,
SYSADM_REQUIREMENT.PART_ID, SYSADM_PART_1.DESCRIPTION,
SYSADM_REQUIREMENT.REQUIRED_DATE, SYSADM_PART_1.STOCK_UM,
SYSADM_REQUIREMENT.CALC_QTY, SYSADM_REQUIREMENT.ISSUED_QTY,
SYSADM_PART_1.BACKFLUSH_LOC_ID, SYSADM_OPERATION.SCHED_START_DATE,
SYSADM_OPERATION.SCHED_FINISH_DATE, RAW2STR(SYSADM_WORKORDER_BINARY!BITS)
AS
[Workorder Bits], SYSADM_PART_1.BACKFLUSH_WHS_ID,
SYSADM_REQUIREMENT.QTY_PER,
(RAW2STR(SYSADM_OPERATION_BINARY!BITS)) AS [Operation Bits]
FROM ((((((SYSADM_WORK_ORDER INNER JOIN SYSADM_OPERATION ON
(SYSADM_WORK_ORDER.SUB_ID = SYSADM_OPERATION.WORKORDER_SUB_ID) AND
(SYSADM_WORK_ORDER.SPLIT_ID = SYSADM_OPERATION.WORKORDER_SPLIT_ID) AND
(SYSADM_WORK_ORDER.LOT_ID = SYSADM_OPERATION.WORKORDER_LOT_ID) AND
(SYSADM_WORK_ORDER.BASE_ID = SYSADM_OPERATION.WORKORDER_BASE_ID) AND
(SYSADM_WORK_ORDER.TYPE = SYSADM_OPERATION.WORKORDER_TYPE)) LEFT JOIN
SYSADM_REQUIREMENT ON (SYSADM_OPERATION.SEQUENCE_NO =
SYSADM_REQUIREMENT.OPERATION_SEQ_NO) AND
(SYSADM_OPERATION.WORKORDER_SUB_ID
=
SYSADM_REQUIREMENT.WORKORDER_SUB_ID) AND
(SYSADM_OPERATION.WORKORDER_SPLIT_ID
= SYSADM_REQUIREMENT.WORKORDER_SPLIT_ID) AND
(SYSADM_OPERATION.WORKORDER_LOT_ID = SYSADM_REQUIREMENT.WORKORDER_LOT_ID)
AND
(SYSADM_OPERATION.WORKORDER_BASE_ID =
SYSADM_REQUIREMENT.WORKORDER_BASE_ID)
AND (SYSADM_OPERATION.WORKORDER_TYPE =
SYSADM_REQUIREMENT.WORKORDER_TYPE))
LEFT JOIN SYSADM_PART AS SYSADM_PART_1 ON SYSADM_REQUIREMENT.PART_ID =
SYSADM_PART_1.ID) LEFT JOIN SYSADM_OPERATION_RESOURCE ON
(SYSADM_OPERATION.SEQUENCE_NO = SYSADM_OPERATION_RESOURCE.SEQUENCE_NO)
AND
(SYSADM_OPERATION.WORKORDER_SUB_ID =
SYSADM_OPERATION_RESOURCE.WORKORDER_SUB_ID) AND
(SYSADM_OPERATION.WORKORDER_SPLIT_ID =
SYSADM_OPERATION_RESOURCE.WORKORDER_SPLIT_ID) AND
(SYSADM_OPERATION.WORKORDER_LOT_ID =
SYSADM_OPERATION_RESOURCE.WORKORDER_LOT_ID) AND
(SYSADM_OPERATION.WORKORDER_BASE_ID =
SYSADM_OPERATION_RESOURCE.WORKORDER_BASE_ID) AND
(SYSADM_OPERATION.WORKORDER_TYPE =
SYSADM_OPERATION_RESOURCE.WORKORDER_TYPE))
LEFT JOIN SYSADM_PART ON SYSADM_WORK_ORDER.PART_ID = SYSADM_PART.ID) LEFT
JOIN SYSADM_WORKORDER_BINARY ON (SYSADM_WORK_ORDER.TYPE =
SYSADM_WORKORDER_BINARY.WORKORDER_TYPE) AND (SYSADM_WORK_ORDER.BASE_ID =
SYSADM_WORKORDER_BINARY.WORKORDER_BASE_ID) AND (SYSADM_WORK_ORDER.LOT_ID
=
SYSADM_WORKORDER_BINARY.WORKORDER_LOT_ID) AND (SYSADM_WORK_ORDER.SPLIT_ID
=
SYSADM_WORKORDER_BINARY.WORKORDER_SPLIT_ID) AND (SYSADM_WORK_ORDER.SUB_ID
=
SYSADM_WORKORDER_BINARY.WORKORDER_SUB_ID)) LEFT JOIN
SYSADM_OPERATION_BINARY
ON (SYSADM_OPERATION.SEQUENCE_NO = SYSADM_OPERATION_BINARY.SEQUENCE_NO)
AND
(SYSADM_OPERATION.WORKORDER_SUB_ID =
SYSADM_OPERATION_BINARY.WORKORDER_SUB_ID) AND
(SYSADM_OPERATION.WORKORDER_SPLIT_ID =
SYSADM_OPERATION_BINARY.WORKORDER_SPLIT_ID) AND
(SYSADM_OPERATION.WORKORDER_LOT_ID =
SYSADM_OPERATION_BINARY.WORKORDER_LOT_ID) AND
(SYSADM_OPERATION.WORKORDER_BASE_ID =
SYSADM_OPERATION_BINARY.WORKORDER_BASE_ID) AND
(SYSADM_OPERATION.WORKORDER_TYPE =
SYSADM_OPERATION_BINARY.WORKORDER_TYPE)
WHERE (((SYSADM_WORK_ORDER.BASE_ID)=[enter base ID]))
ORDER BY CDbl(SYSADM_OPERATION!SEQUENCE_NO), CDbl([PIECE_NO]);


Otherwise, I don't see anything obvious in the query's SQL that would
lead
to truncation in my experience. Are you sure that the field is being
truncated? perhaps it's just not growing because the textbox control's
Can
Grow property isn't set to Yes and the Group Header section's Can Grow
property isn't set to Yes?
--

Ken Snell
<MS ACCESS MVP>




Here is the query the Operation Bits is the one im having problems
with.


< snipped query >

:

I've just tested a report where I put a textbox bound to a memo field
in
a
report's Group Header section; no truncation noted.

What is the report's RecordSource query? Identify the data types of
the
fields.

--

Ken Snell
<MS ACCESS MVP>


The field is not in the sorting and grouping list for the report.

More information if this helps, this is a converted field from a
linked
oracle table that originally is a long raw field converted to
string.
Like
I said it shows correctly in the detail section, just not in the
group
header.

:

I am guessing that the textbox's ControlSource field is in the
Sorting
&
Grouping list for the report? If yes, ACCESS will truncate the
string
to
255
characters because it must group on that field -- and grouping on a
field
causes ACCESS to limit the string to 255 characters.

--

Ken Snell
<MS ACCESS MVP>


I have an access report that I have placed a text box in one of
the
group
headers and it is only showing 255 charecters. If I place the
same
text
box
in the detail section it shows all charecters. How do I get all
to
show
in
the header, I have got can grow/shrink to yes and it is not in
the
sorting/grouping under view.
 
K

Ken Snell \(MVP\)

I don't have any other ideas at this time. I cannot reproduce the problem
with an example setup here, so the only alternative is to see firsthand what
is happening in your database. I've checked with another MVP who has
experience with Oracle tables, and he doesn't believe that they would be the
problem.

Can you extract some examples of the data to a table in the database file,
change the queries to use the local tables with the example data, and
provide that database for my "look-see"?

--

Ken Snell
<MS ACCESS MVP>



jeremyj54 said:
Im not sure if sending the database to you would do any good because it is
just reporting on linked tables from an oracle database you wouldn't have
any
of the data. I have tryed a couple of things that are kind of interesting
to
me, I made a column in my query and just made it an expression
"aaaaaaaaaaaaaaaabbbbbbbcccccccc etc." and put it in the report and it
truncated at 255 then I put an unbound textbox on the report and made the
controlsource ="zzzzzzzzzzzzzzzzzzzzzzzwwwwwwwwwwwwwwwxxxxxx etc." and it
did
not truncate. Any thoughts I am losing my mind with this one.


< snipped >
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top