-PR-
NTTPCのレンタルサーバー
基本情報技術者講座 28,000円から ★ぶっちぎり宅建ライブ開講★

「実行時エラー ‘3131’: FROM句の構文エラーです。」
ExcelVBAにてCSVファイルをテーブルとして接続する際、エラーが発生してしまう場合があります。下記にご注意!
①ファイル名に禁則文字が使われている場合[-ハイフンやスペース等]
②ファイル名のトータルが拡張子を含み59文字を超える場合。(XP、OFFICE2003のみで実験)

①はテーブル名を[]で囲えば解決します。お気をつけを・・・
 ⇒SELECT * FROM [悪い テーブル - 名.csv]


Function openSql()
Dim strSQL
Set CN = CreateObject("ADODB.Connection")
Set RS = CreateObject("ADODB.Recordset")
If Len(FileName) > 59 Then Err.Raise 1, , "ファイル名が長すぎます。" & vbCrLf _
& "ファイル名は拡張子を除き55文字以内に収めて下さい"

strSQL = “SELECT * FROM [” & FileName & “]”
CN.Open “Driver={Microsoft Text Driver (*.txt; *.csv)};” & _
“DBQ=” & FilePath & “;” & _
“ReadOnly=0;”

RS.CursorLocation = 3 ‘adUseClient
RS.Open strSQL, CN, 1

End Function

予約語と使用できない文字

データベース名・テーブル名・フィールド名に,予約語,および使用できない記号を使うとエラーが発生します。例として,Microsoft AccessとODBC環境下で使用できない文字と予約語を列挙してみました。

◎使えない記号・文字

「.(ピリオド)」「/(スラッシュ)」 「*(アスタリスク)」「:(コロン)」「!(感嘆符)」「#(シャープ)」「&(アンバサンド)」「-(ハイフン)」「?(疑問符)」 およびスペース

(参考:http://image.gihyo.co.jp/assets/files/book/2001/4-7741-1289-5/uldev/uldev_tips.htm#tips14)

SELECT * FROM [My Table]

http://msdn.microsoft.com/ja-jp/library/ms176027(v=SQL.105).aspx

関連記事:

  1. 「ExcelVBA」を始めたい人へ
  2. 【エクセルVBA】グループ化した行、列のコントロール
  3. 【excel VBA】スピードアップの簡単な7つの手法!
  4. メモ帳の限界に挑戦中
  5. 【ACCESS VBA】パラメータが少なすぎます。6 を指定してください。

関連記事はYARPP関連記事プラグインによって表示されています。

Leave a Reply

You must be logged in to post a comment.