アプリ版:「スタンプのみでお礼する」機能のリリースについて

お世話になります。
下記のようにベタ書きで、データを取得していますが、
コード行数を少なくしたいと思っており、
FOR NEXTで対応出来ないかと考えてやって見ましたが
うまく行きません。アクセステーブルのフィールドは順番に並んで
います。コードの書き方をご教示頂きたくお願い致します。

    記
myrng.Cells(n, 1) = rs!住所
myrng.Cells(n, 2) = rs!氏名
myrng.Cells(n, 3) = rs!年齢
myrng.Cells(n, 4) = rs!性別
myrng.Cells(n, 5) = rs!職業

↓↓(下記の書き方で、「実行時エラー3265
     このコレクションには項目がありません」と
     出てしまいす。)

For h = 1 To 5
 myrng.Cells(n, h) = rs!Fields(h).Value
Next h

A 回答 (3件)

DebugPrintではなく Debug.Print ですよ

    • good
    • 0
この回答へのお礼

何度もありがとうございました。
うまくいきました。

お礼日時:2009/01/13 00:02

どちらがエラーになっているのかをチェックしましょう



for h=1 to 5
debug.print "Rng:" & myRng.Cells(n,h).Address,
debug.print "rs(" & h & "):" & rs.Fields(h-1).value
next
などとして確認してみましょう
    • good
    • 0
この回答へのお礼

何度もすみません。
今度は debugprint のところが青く塗られ、
「コンパイルエラー Sub または Functionが定義
されてません」と出てしまいます。
ホントに初心者ですみません。

お礼日時:2009/01/11 13:49

Fieldsって 0ベースのインデックスでは


プロパティの参照には『.』を使ったほうがいいでしょう

for h = 1 to 5
  myrng.Cells(n,h).Value = rs.FIelds(h-1).value
next
といった具合でしょう
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます。
今度は、「実行時エラー424 オブジェクトが必要です。」
と出てしまうのですが、まだ何か不足なのでしょうか。

お礼日時:2009/01/11 00:44

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