moon-fondu回答ポイント 1000ptウォッチ

Do Loop文の処理やNz関数で何をしているのかがわかりません


仕事でAccessを使っていると以下のようなVBAコードに遭遇しました。

-------

Do Until animaltable.EOF
countanimal = countanimal + 1
With animal_data(countanimal)
.animal_number = Nz(animaltable.Fields("animalvariation").Value,0)
End With
countanimal.MoveNext

-------

animaltableというのは、

Dim animaltable as DAO.Recordset

で定義されている変数で、動物の数を取得するためのレコードセット?らしいです。
animal_dataというのは、別のモジュールで「Public animal_data() As ANIMAL_INFO '動物の情報」と定義されておりました。

animalvariationというのは、別にanimalSQLという変数がありまして、その変数にはSQL文が格納されています。
そのanimalSQL文の中に「アニマルテーブル.animalの種類 as animalvariation」という文が出てくるので、おそらくアニマルテーブル内にある列「animalの種類」の別名をanimalvariationに設定しているのかと。

Withステートメントは、「オブジェクト名を省略できる」「オブジェクトへの参照回数が減り、実行速度が向上します」とあるので、animal_dataオブジェクトに対し、animal_numberという処理を行っていることはわかります。

※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。
ログインして回答する

ベストアンサー

その他の回答

この質問へのコメント

この質問への反応(ブックマークコメント)

質問の情報

登録日時
2019-11-18 22:46:36
終了日時
2019-11-27 00:10:11
回答条件
1人10回まで

この質問のカテゴリ

この質問に含まれるキーワード

SQL1319VBA1347value13access973NZ35

人気の質問

メニュー

PC版