3

私は、保守する MS-Access アプリケーションを与えられ、Oracle を dbms としてよりよく知っているため、時々問題に遭遇します..

今日、列名にハイフンを使用すると、MS-Access で問題が発生するようです...

次の挿入ステートメントは、リストボックスに追加のエントリを追加するために NotInList イベントに結合されました。

INSERT INTO tblProductInfo (ProductInfo-Product) "SELECT """ & NewData & """ AS ProductInfo-Product;"

しかし、それは機能していません (もう? 問題が報告されたのは初めてで、元の開発者がテストしたかどうかはわかりません)。

単一レコードの追加クエリでテストしましたが、ハイフンが原因のようで、それをエスケープする方法が見つかりません..

INSERT INTO tblProductInfo (ProductInfo-Product) 値 ("myData")

表示されるエラーは「INSERT INTO ステートメントの構文エラー」です。

MS-Access のフィールド名を指定する他の方法はないようですね。(角括弧は SELECT ステートメントにのみ使用されます。

だから...私はStackoverflowの神々の知恵を求めており、誰かがこれを解決する方法を知っていることを望んでいます...

前もって感謝します !!

4

1 に答える 1

3

その上に角括弧が必要です:

"INSERT INTO tblProductInfo ([ProductInfo-Product]) Values (""" & NewData & """)"

または、フィールド名とテーブル名に奇妙な文字やスペースを使用しないでください。

フィールド名またはテーブル名に問題がある SQL ステートメントでは、角かっこが使用されます。

  • 予約語です
  • スペースが含まれています
  • 特殊文字が含まれています

DDL でそれらを使用することもできます。

Create Table  tblProductInfo ( [ProductInfo-Product]  Text(50))
于 2012-08-30T11:11:01.317 に答える