OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

アクセスのセルの数え方。

  • 困ってます
  • 質問No.143510
  • 閲覧数254
  • ありがとう数6
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 68% (11/16)

 こんにちは。いつもお世話になっています。今、VBを勉強中なのですが、Datagridを使ったAccessの使い方について質問があります。DatagridをつかってAccessを表示したとき、横(column)の列の数え方としては、
'Adodc1.Recordset.fields.item(index)' になりますよね?しかし、縦(Raw)の列の数え方がどうしても知ることができません。誰か、知っている人がいましたら、教えてください。お願いします。
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.2
レベル8

ベストアンサー率 45% (18/40)

このような解釈でよろしいでしょうか?
「データ内の横の座標は項目名(FieldName)で指定することができるが、
データの縦の座標はどのように指定したらよいか?」

違っていたら以下の文は読み飛ばしてください・・・^^;

取得したデータは2次元ですから、横の座標だけでは当然、個々のデータを指定できません。
エクセルのシートが一番わかりやすいと思いますが、エクセルも”A1”とか”R1C1”と言う形で、縦横の座標でセルが特定されますよね。
それで、ご質問の件ですが、横の座標の指定はOKですね。
(FieldNameを指定する事)
では、縦の座標はどうすればよいのか?
残念ながら、エクセルのシートのように4行目とかいった指定はできません。
じゃあどうするかと言うと、
RecordSetにある「Move」系のメソッドを使用します。
MoveFirst・MoveLast・MoveNext・MovePrevious・Move nn
とあります。詳しい使用法はヘルプを見てください。
また、現在縦の座標の焦点がある行をカレントレコードと言います。

注意が必要なのは、このMove系のメソッドはカレントレコードからの移動になると言うことです。
例えば、最初は、カレントレコードは1行目にあるのですが、
そこで、MoveNextすると移動後のカレントレコードは2行目に移ります。
その次に、Move 10 とやると、移動前のカレントレコードから10行進んだ行になりますので、移動後のカレントレコードは11行目になります。

このような形で、横の座標は項目名で設定し、縦の座標はカレントレコードの位置を目的の行に合わせることで設定し、目的のデータセルを特定します。

こんなかんじで、縦の設定はカレントレコードからの相対位置になるので、なれないと頭こんがらがってしまいますが・・・^^;
まあ、頭やわらかくしてやりましょう。

ちなみに私が仕事でやるときは、DataGridとかDataコントロールは使いません。
だって、頭こんがらがるから・・・(-△-;)
お礼コメント
akumakozou

お礼率 68% (11/16)

なるほど。これは、わかりやすい。今の時点での私の疑問は、まったく取れました。ありがとうございます。しかし、余談になりますが、VBは面白い反面難しいときはほんと難しいですね。ま、おそらくプログラムすべてに言えることでしょうけど。とにかく、ほんとにありがとうございました。
投稿日時 - 2001-10-04 16:21:03
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.1
レベル13

ベストアンサー率 26% (267/1014)

Adodc1.Recordset にどのようなレコードセットをセットしているのでしょうか? できれば、プログラムを抜粋して聞いたほうがいいと思います。 あと、「数え方」というのは、ある値を参照する方法を知りたいのでしょうか?レコード数を知りたいということでしょうか? >'Adodc1.Recordset.fields.item(index)' になりますよね? う~ん、これ ...続きを読む
Adodc1.Recordset にどのようなレコードセットをセットしているのでしょうか?
できれば、プログラムを抜粋して聞いたほうがいいと思います。

あと、「数え方」というのは、ある値を参照する方法を知りたいのでしょうか?レコード数を知りたいということでしょうか?
>'Adodc1.Recordset.fields.item(index)' になりますよね?
う~ん、これが「columnの数え方」なのですか?

データベースのレコード(やフィールド)のアクセス方法は、わかっているのでしょうか?VB(Access)での方法だけがわからないのでしょうか?

VBに付属しているサンプルを見てもわからないということでしょうか?
補足コメント
akumakozou

お礼率 68% (11/16)

返事ありがとうございます。確かにこれだけじゃわからないかもしれません。最初は、すべてのコード記入しようとしたんですが、なにしろ800字制限なので、できるだけ小さくしようとしてあれだけになってしまいました。ところで、数え方というより示し方かもしれませんが、とにかく、adoc1.recordset.fields.item(index)もしくは、adoc1.recordset.fields(fieldname)をすることによって、横のフィールドの名前を指定してコードを書くことができるのは確かだとおもうのですが(例えば、Nameというフィールドに何かを記入したいときadoc1.recordset.Addnew のあとにadoc1.recordset.fields(Name) = txtName などとすると、txtName の中の文字がNameというフィールドに記入される。)はたして、ひとつのセルを対象にそういった記入とか削除とかできるのかという疑問です。ひとつのセルを対象にするには、field名だけでなく縦を示す名前が必要だとおもうのです。
投稿日時 - 2001-10-01 15:49:56


このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ