※ ChatGPTを利用し、要約された質問です(原文:半角のカッコを使ってテーブル名を名付けてしまったの)
ADOで半角カッコを使用する方法についての質問
このQ&Aのポイント
質問者は半角のカッコを使ってテーブル名を名付けてしまったが、ADOでエラーが発生する。
質問者は全角と半角のカッコを使ったテーブルを作成し、ADOを使用して操作しようとした結果、全角のカッコでは問題なく動作したが、半角のカッコではエラーが発生した。
質問者は多くのテーブル名やクエリ名に半角カッコを使用してしまい、修正するのが手間がかかるため、ADOで半角カッコを使える方法を知りたい。
半角のカッコを使ってテーブル名を名付けてしまったの
半角のカッコを使ってテーブル名を名付けてしまったのですがADOでエラーになります。
試しに、
半角()
全角()
と言うテーブルを作成して、
Sub test()
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
cn.Open "Provider = Microsoft.ACE.OLEDB.12.0;" & "Data Source= " & CurrentProject.FullName
rs.Open "全角()", cn, adOpenKeyset, adLockOptimistic
rs.Close: Set rs = Nothing
cn.Close: Set cn = Nothing
End Sub
としたら、全角()の場合は問題なく動きました。
しかし、
rs.Open "半角()", cn, adOpenKeyset, adLockOptimistic
にした場合は
---------------------------------------------------------------------
実行時エラー'-2147217900(80040e14)':
SQLステートマントが正しくありません。'DELET','INSERT','PROCEDURE','SELECT',
または'UPDATE'を使用してください。
---------------------------------------------------------------------
となります。
実はたくさんのテーブル名とクエリ名に半角カッコを使ってしまって、
治す方が手間がかかるので、ADOで半角カッコを使えるのなら使いたいのです。
オブジェクト名でも使用できる方法・読み取れる方法が知りたいのですが、ご存知でしょうか?
お礼
リンク先のサポート、確認しました。 これをみるとカギカッコを付けるのも怖くなってきました。 メニューのツール→オプション→全般タブの 「名前の自動修正」は、 ・名前の自動修正情報をトラックする ・名前の自動修正を行う にチェックがはいってました。 テーブル名やフィールド名の修正をすると、クエリも自動で修正されるのですか。 便利ですね。 予約語の方は見てもよくわからなかったのですが、幸せになりたいのでわかるように努力します。 ありがとうございました。大変参考になりました。