
いつもお世話になっております。
フォームでボタンをクリックすると、
計上年度と計上月をすべてのレコードに入力させようとしています。
下記のように、For~Nextで書いてみたのですが、
選択されているレコードが、一番最初のレコードではない場合、
エラーが返ってしまいます。
おそらく「レコードの数分繰り返す」という書き方のせいだと思います。
これを「最後のレコードに到達するまで」としたいのですが、
どのように書いたらよいでしょう??
ご存知の方がいらっしゃいましたら、教えてください。
Private Sub 計上年度月入力_Click()
Dim Max As Integer
Dim i As Integer
Max = DCount("[計上月]", "年次請求集計Q")
For i = 1 To Max
If 計上月 <> 0 Then
DoCmd.GoToRecord , , acNext
Else
計上年度2 = 計上年度1
計上月2 = 計上月1
DoCmd.GoToRecord , , acNext
End If
Next i
End Sub
No.3ベストアンサー
- 回答日時:
うんそれでしたら、
Private Sub 計上年度月入力_Click()
Dim RecSet As Recordset
Dim strSQL As String
strSQL = "SELECT * FROM 請求集計T"
strSQL = strSQL & " WHERE クエリの条件式"←ここを注意してください。
Set RecSet = CurrentDb.OpenRecordset(strSQL, dbOpenDynaset)
RecSet.MoveFirst
Do Until RecSet.eof
If 計上月 = 0 Then
RecSet.Edit
RecSet.Fields("計上年度2") = 計上年度1
RecSet.Fields("計上月2") = 計上月1
RecSet.Update
End If
RecSet.MoveNext
loop
RecSet.close
Set RecSet = Nothing
End Sub
ちなみに、計上年度2と計上月2はレコードフィールド、計上年度1と計上月1はフォームに配置されているテキストだと見なして作っています。
この回答への補足
あ、計上年度と計上月に入力させるのは、請求集計Tのすべてのレコードを対象としてOKです。
ので、その場合はクエリの条件式は必要ないということでしょうか?
その解釈でOKなら・・・
strSQL = strSQL & " WHERE クエリの条件式"←ここを注意してください。
の一文を削除して、実行してみたのですが、
RecSet.Edit
のところで「メソッドまたはデータメンバが見つかりません」とのエラーが出てしまいます。
すみません。どうしてエラーが出てしまうのかわかりません。
何度も申し訳ありませんが、教えてください!!
どうもありがとうございます!
おっしゃるとおり、計上年度2と計上月2はレコードフィールド、計上年度1と計上月1はフォームに配置されています。
これだけの説明でお分かりになるとは。。。すごいですね。
(って私の説明不足ですみません。。。)
で、おはずかしいですが。。。
"WHERE クエリの条件式"って何を入れたら良いのでしょう・・・?
すみません。。。教えてください!!
No.5
- 回答日時:
たぶん、「参照設定」でDAOが設定されてません。
VBAのエディター画面で「ツール」→「参照設定」で「Microsoft DAO 3.6 Object Library」にチェックを入れてください。なお、「3.6」の所はAccessのバージョンで違いますので、「Microsoft DAO X.X Object Library」で探されてください。
ちなみ私のバージョンはAccess2000です。
何度もご回答いただきまして、ありがごうございました。
残念ながら、DAOの設定をしても、同じエラーが出てしまいました。
ですが、教えていただいた構文からヒントを得て、最初に書いていたFor~Nestの前に、
「DoCmd.GoToRecord , , acFirst」 を追加してみたところ、うまく動くようになりました。
本当に丁寧にご回答いただきまして、ありがとうございました。
いろいろと勉強になりました。
また、どうぞよろしくお願いいたします。
No.4
- 回答日時:
う~ん、選択クエリで選択するための条件を設定されていると思うんです。
選択クエリで、設定されている条件を「WHERE」句に記述すれば良いんです。例えば、物品番号が1のものなら「物品番号=1」と書きます。さらに条件があるのなら「AND」(かつ)か「OR」(または)で繋いでいきます。
単純に日付が入っていない物であれば、「SELECT * FROM 請求集計T WHERE isnull 日付」なんて記述します。
単純に選択クエリに設定されているフィールドと条件がわかれば、一番いいんですが。
No.2
- 回答日時:
年次請求集計Qって、クエリテーブルですよね?
どんなクエリでしょうか?う~んそれだったらいきなりSQLに変えるのも一つの手かなぁ。
ちょっとクエリの内容がわからないので、よろしかったら教えて下さい。
えーっと。
「年次請求集計Q」クエリは、データを入力するフォームのために作成した選択クエリです。
って、こういう答えじゃないのカナ。。。
「年次請求集計Q」に入力したデータは「請求集計T」というテーブルに格納されます。
クエリだと問題でしたら、テーブルを見に行けば解決されるのでしょうか???
ごめんなさい。多分基本がわかってないんですね。。。
No.1
- 回答日時:
Private Sub 計上年度月入力_Click()
Dim RecSet As Recordset
Set RecSet = CurrentDb.OpenRecordset("年次請求集計Q", dbOpenDynaset)
RecSet.MoveFirst
Do Until RecSet.eof
If 計上月 = 0 Then
計上年度2 = 計上年度1
計上月2 = 計上月1
End If
RecSet.MoveNext
loop
End Sub
で出来ると思います。
ご回答、どうもありがとうございます!
早速、コピーして試してみたところ
Set RecSet = CurrentDb.OpenRecordset("年次請求集計Q", dbOpenDynaset)
のところで、エラーが出てしまいました。。。
うーむ。。どのようにしたらよいでしょう???
お手数ですが、お分かりになりましたら教えてください!!!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
Accessのテーブルデータを一気にVBAで追加したい・・
その他(データベース)
-
Access サブフォームでの選択行の取得
その他(データベース)
-
-
4
ACCESSでVBAから選択クエリの抽出条件を指定したい
Access(アクセス)
-
5
access の 最終レコードの判定はどう記述しますか
Access(アクセス)
-
6
テキストボックスにクエリ結果を表示させたい
その他(データベース)
-
7
Accessでテーブルの値をテキストボックスに代入するには?
Access(アクセス)
-
8
Accessでレコードを別テーブルへコピーするには
Access(アクセス)
-
9
Accessのマクロでモジュールを実行させたい。
Access(アクセス)
-
10
アクセスで#エラーを表示させない方法は?
Access(アクセス)
-
11
前のレコードの値を自動で入れたい
PowerPoint(パワーポイント)
-
12
Accessでフィールド名を変数(文字列)で・・・
Access(アクセス)
-
13
Access フォームのテキストボックスに半角英字のみで入力する設定は
Access(アクセス)
-
14
2つのテーブルに共通するレコードを削除したい
Access(アクセス)
-
15
Accessのフォームにて、詳細行のボタンを行の内容により、表示/非表
その他(Microsoft Office)
-
16
Access2010 「演算子がありません」エラー
その他(データベース)
-
17
Accessで別テーブルの値をフォームに表示したい
その他(データベース)
-
18
サブフォームに対してGoToRecordするには?
その他(Microsoft Office)
-
19
アクセスVBAで既に開いているエクセルを閉じたい
Yahoo!ショッピング
-
20
ACCESS──メインフォームでサブフォームのレコード件数をカウントしたい
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
稲作農業における年貢での地代...
-
パソコンのパーツの勘定科目に...
-
Access 最後のレコードに到達...
-
シャッターを交換した場合の経...
-
経理用語で「計上」と「「振替...
-
町内会の予算の作り方
-
タンクローリーの交換代
-
予算書
-
本年中の償却期間について お詳...
-
従業員への退職金
-
前期の経費算入もれを今期に修...
-
ブロック塀の改修は不動産所得...
-
確定申告 保証金の扱い
-
朝日新聞が、過去最大(441億円)...
-
経費計上時期について
-
飲食店移転費用の税金について
-
青色確定申告での固定資産税の...
-
パソコンの減価償却費の計算方法
-
松本さんのホテル代の勘定科目は
-
医療費控除の交通費、新幹線代...
おすすめ情報