2016-03-31 84 views
0

この構文を使用しようとしましたが、エラーが発生しました。私はいくつかのバリエーションを試しました。 CONVERT 構文エラー(演算子がありません)クエリ式で」:私は、エラーメッセージが表示されます整数に文字列を変換し、それがゼロより大きいクエリ式に構文エラー(演算子がありません)が表示されるCONVERTおよびCAST

SELECT CAST(Columnx AS UNSIGNED) FROM HOLD2 where columnx > 0  

または

SELECT CONVERT(SUBSTRING_INDEX(COLUMNX,'-',-1),UNSIGNED INTEGER) AS CX FROM HOLD2 where cx > 0 

であることを確認したいです......または'キャスト....
ご協力いただきまして誠にありがとうございます。

+0

'SELECT CLNG(COLUMNX)を回避したい場合は、VBAを使用する必要があるので、短絡ロジックを持っていませんCAST機能。 CLNGを使用してLong型、CINT型からInteger型、CSTRからString型に変換します。 https://msdn.microsoft.com/en-us/library/ck4c5842(v=vs.84).aspx –

+0

また、値を変換せず、値を表示し、テキストではなく長い値として扱います。テーブルには、フィールドタイプに必要なテキスト値が保持されます。 –

答えて

0

アクセスはこの構文を使用しません。ほとんどの場合、暗黙の変換で逃げることができます。あなたはキャストがC functions使用を指定する必要がある場合:あなたが望むものにCInt()CLng()CDblCDec()CCur()

最も近いものをCByteであるが、これはわずかで0から255まで行きます。

このようなことを試して、クエリで使用できます。 JETのSQLを持っていません - アクセスはあなたがCLNGは(COLUMNX)> 0 'HOLD2からのエラー

Public Function ConverToPositiveInteger(str As String) As Variant 
    On Error Resume Next 
    Dim lng As Long 
    lng = CLng(str) 
    If CStr(lng) = str Then 
     If lng >= 0 Then 
      ConverToPositiveInteger = lng 
      Exit Function 
     End If 
    End If 
    ConverToPositiveInteger = Null 

End Function 
関連する問題