Link to home
Create AccountLog in
Avatar of David Bernstein
David BernsteinFlag for United States of America

asked on

Run-Time error 458 Variable uses an Automation type not supported in Visual Basic

I added 2 brand new computers to the network running Windows 10 pro and Office 365 latest versions
I am getting this error only on these 2 computers in one specific piece of code.
The function is used throughout the system to test that a variable is valued. I have used this code for 25 years. After the error appears the database crashes. It only occurs when printing a particular report.
Even getting the same error using a backup program database from 2016.
Function valid(x As Variant)
   If IsNull(x) Then
      valid = False: Exit Function
   End If

   If IsEmpty(x) Then
      valid = False
      Exit Function
      Else
      valid = Not (x = String$(Len(x), 0) Or x = String$(Len(x), 32))
      Exit Function
   End If
   
End Function

Avatar of Gustav Brock
Gustav Brock
Flag of Denmark image

Try to replace it with this single line of code:

Public Function Valid(ByVal Value As Variant) As Boolean

    Valid = Trim(Replace(Nz(Value), vbNullChar, "")) <> ""

End Function

Open in new window

It's probably related to the datetime2 data type in SQL, which was implemented for ODBC, but is not available in VBA.

Jim.


actually I may be getting my types mixed up....it may have been BigInt that was the problem with VBA.

Jim.
ASKER CERTIFIED SOLUTION
Avatar of David Bernstein
David Bernstein
Flag of United States of America image

Link to home
membership
Create a free account to see this answer
Signing up is free and takes 30 seconds. No credit card required.
See answer
No comment has been added to this question in more than 21 days, so it is now classified as abandoned.

I have recommended this question be closed as follows:

Accept: 'David Bernstein' (https:#a43286793)

If you feel this question should be closed differently, post an objection and the moderators will review all objections and close it as they feel fit. If no one objects, this question will be closed automatically the way described above.

seth2740
Experts-Exchange Cleanup Volunteer