プロが教えるわが家の防犯対策術!

ACCESSのVBAでプログラム構築をしています。
大変初歩的な質問で申し訳ありません。
rs![フィールド名]でデータを取得する場合に
フィールド名に-(ハイフン)がついているとコンパイルエラーに
なってしまいます。
なにかよい方法はありませんでしょうか?

A 回答 (2件)

手元にAccessがないので未検証なのですが…


rs.Fields("フィールド名")だとどうでしょうか?
これならできたような気がします。
これでだめなら、rs.Fields(フィールドの番号)で取得するしかないかもしれません。
※「フィールドの番号」は、テーブルの定義順に0,1,2…とint型で指定します。
該当するフィールドが3番目なら、rs.Fields(2)となります。
    • good
    • 0
この回答へのお礼

ありがとうございます。
そのとおりでした。助かりました。

お礼日時:2008/01/16 00:26

tab1:



ID__fld-1__fld-2
1___AAA____111
2___BBB____222

Private Sub コマンド0_Click()
   Dim N
   Dim strSQL As String
   Dim rst  As ADODB.Recordset

   Set rst = New ADODB.Recordset
   With rst
     .Open "SELECT * FROM tab1 WHERE ID=1", _
        CurrentProject.Connection, _
        adOpenStatic, _
        adLockReadOnly
     If Not .BOF Then
       .MoveFirst
       Debug.Print .Fields(0).Name
       Debug.Print .Fields(1).Name
       Debug.Print .Fields(2).Name
       Debug.Print "------------------------"
       Debug.Print .Fields("ID")
       Debug.Print .Fields("fld-1")
       Debug.Print .Fields("fld-2")
       Debug.Print "------------------------"
       Debug.Print !ID
       Debug.Print ![fld-1]
       Debug.Print ![fld-2]
     End If
   End With
End Sub

[イミディエイト]
ID
fld-1
fld-2
------------------------
1
AAA
111
------------------------
1
AAA
111

このテストで判るように![XXX-X]と括弧([])を付けるとエラーは回避されます。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す


このQ&Aを見た人がよく見るQ&A