こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Access2010のVBAにて(変数の宣言)

Access2010にて複数のフォーム内で、「sql」という変数を宣言しています。

宣言例)
Dim sql As String
(sql は小文字)

それが、あるときを境に、全て「SQL」となってしまいました。
一括置換でプロジェクト内の全ての「SQL」の宣言箇所を
小文字の「sql」に変換してみたのですが、置換作業が終わった直後に
やはり大文字の「SQL」に戻ります。

特にこれといって動きに支障があるわけではないのですが、
他の変数の宣言を小文字で統一している事もあり、気になります。。。

なお、Accessでオブジェクト名を間違えて半角カナなどで
一度宣言してしまうと、その後オブジェクト名を修正しても、
VBAコード内では半角のオブジェクト名が自動補完されてしまいますよね。
これと同じような現象でしょうか。

これはAccessのバグになるのでしょうか。
それとも修正方法があるのでしょうか。
修正方法や対策をご存じの方は教えて頂けませんでしょうか。
宜しくお願い致します。

投稿日時 - 2013-02-25 19:25:52

QNo.7964275

困ってます

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

Sub sql() でエンターを押すと
End Sub がくっつくでしょ?

それでSub~End Subを削除したら直るかも。

投稿日時 - 2013-02-25 20:48:00

お礼

直りました!
なるほど、ちょっと反則技だけど関数として再定義してやれば
改めて小文字で認識されるわけですね。

本件に限らず、これは目から鱗でした。
ただ、他の方の回答にもあるように「sql」はAccessの予約語のようですので
別の語句で定義し直す事も検討したいと思います!
有り難うございましたm(_ _)m

投稿日時 - 2013-02-25 23:01:48

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.4

QueryDefオブジェクトを使いませんでしたか?
これにSQLプロパティがあるので、小文字は
使えなくなります。

投稿日時 - 2013-02-25 22:26:58

ANo.3

SQL はAccessの予約語なのでオブジェクト名や変数などに使用しない事です。
最初は問題なくても、ある日突然・・・てのが有りました。
http://office.microsoft.com/ja-jp/access-help/HA010341461.aspx
No や Name などとつい使いたくなるのがアブナイ。
なお、大文字・小文字関係ありません。
sSql とか MySQL とか適当なのにリネームしておいた方が吉。

投稿日時 - 2013-02-25 20:53:19

お礼

「sql」は予約語なんですね。
言われてみれば確かに予約されていてもおかしくない語句です(汗

別の語句で定義し直す事を検討したいと思います。
有り難うございましたm(_ _)m

投稿日時 - 2013-02-25 23:03:00

スーパーコードを入力すればダイジョウブ!

投稿日時 - 2013-02-25 19:39:34

あなたにオススメの質問