[AccessD] Error Message: The field is to small to accept the amount of data you tried to add. Try inserting or pasting less data

Gustav Brock gustav at cactus.dk
Tue Jul 1 02:21:44 CDT 2003


Hi jeffrey

If updating/appending a recordset in code you can use something like
this:

  Set fld = rstA!TextA
  fld.Value = Left(rstB!SomeField & strString, fld.Size)

For a query I believe you'll have to create an external function to
obtain the size of the receiving text field.
Here's a quick one-liner for this purpose:

<code>

Public Function FieldSize( _
  ByVal strTable As String, _
  ByVal strField As String) As Byte

  On Error Resume Next
  FieldSize = DBEngine(0)(0).TableDefs(strTable).Fields(strField).Size
  
End Function

</code>

Now, put this in your query:

  UPDATE
    TableA
  SET
    Test = Left("longstring",FieldSize("TableA","Test"));

However, DAO SQL seems to do an automatic truncation as this
simplified code neither will fail:

  UPDATE
    TableA
  SET
    Test = "longstring";

Thus your problem may be a Unicode issue. Have you looked at the
StrConv() function and the vbUnicode/vbFromUnicode constants?

/gustav


> I understand what you are saying.  Now the question becomes, how can
> I determine how many ASCII characters are being returned?  When I
> try using LEN(<<Field Name>>) in A2K it returns 255.  I have not
> tried it using the Query Analyzer in SQL Server yet.

>         Subject:        RE: [AccessD] Error Message: The field is to
> small to accept the amount of data you tried to add. Try inserting
> or pasting less data 


> Well I count 258 characters in the data, so the error message is
> totally on the mark (odd for Access<g>).

> I suspect that SQL server is passing back all 258 ASCII characters,
> which is why A97 chokes. But A2K is Unicode character savvy, so I
> think it can handle 510 ASCII characters, or 255 Unicode ones.



More information about the AccessD mailing list