• ベストアンサー

型のチェック

CSVデータをテーブルに追加していくのですが、 そのCSVデータが信用できるものではないので、 チェックをしていかなければなりません。 その値をテーブルに追加したときにエラーでないか一発でわかるようなものはないでしょうか? ISNumericはその値を数値として評価できるかどうかを調べてくれますよね、 それみたいにmoney型 int型 smallint型 … として評価できるかどうかを調べてくれるようなものはありませんか?

質問者が選んだベストアンサー

  • ベストアンサー
  • STICKY2006
  • ベストアンサー率29% (1536/5269)
回答No.1

考え方が間違っていたら失礼。 とりあえず書き込んでみます。。。 >>チェックをしていかなければなりません。 ん~。何のチェック。。。ですかね?? CSVって、結局ただのテキストファイルにタブだとかカンマが入って区切り文字がくっついただけのようなもんですよね。 CSV⇒VB取り込み⇒処理を行って⇒テーブル吐き出し。 って流れだった場合、CSVをVBに取り込んだ時点では、全部、文字型と考えていいのでは。。? でもって、「money型」「int型」「smallint型」は。。。テーブルの方のフィールドの型ですかね? CSVから取り込んだ文字型を、テーブルに突っ込む際に型をそろえてやる。。。 ので、「型チェック」というよりは「型変換」な気がするのですがどうでしょうか?? >>その値をテーブルに追加したときにエラーでないか一発でわかるようなものはないでしょうか? ここらへんは、どうしたいか次第。。。? とりあえず、VBの方でinsertなどでテーブル追加を行う際に使えるレコードになってなかったらエラーにしちゃう。。。ぐらいですかねぇ。。。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • NYOI
  • ベストアンサー率58% (56/96)
回答No.2

VBのバージョンが解からないので.NETの場合として答えます。 VB自体にはmoney型とかsmallint型とかはありませんので、自分で関数つくるのが手っ取り早いと思います。 例えば   Function IsSmallInt(ByVal value As String) As Boolean     If Not IsNumeric(value) Then Return False     '数値に変換できない     If CDbl(value) Mod 1 <> 0 Then Return False     '1で割ってあまりが0ではない=小数を含む     If CDbl(value) > 32767 OrElse CDbl(value) < -32768 Then Return False     '数値に変換した時の値が、SmallIntの範囲を超えている     Return True   End Function みたいな感じで。 Intに関しては、TryParseというワードで調べてみてください。

すると、全ての回答が全文表示されます。

関連するQ&A