
いつもお世話になっております。
フォームでボタンをクリックすると、
計上年度と計上月をすべてのレコードに入力させようとしています。
下記のように、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(アクセス)
-
Access サブフォームでの選択行の取得
その他(データベース)
-
-
4
テキストボックスにクエリ結果を表示させたい
その他(データベース)
-
5
Accessでテーブルの値をテキストボックスに代入するには?
Access(アクセス)
-
6
アクセスVBAで既に開いているエクセルを閉じたい
Yahoo!ショッピング
-
7
access の 最終レコードの判定はどう記述しますか
Access(アクセス)
-
8
Access2010 「演算子がありません」エラー
その他(データベース)
-
9
Accessのテーブルデータを一気にVBAで追加したい・・
その他(データベース)
-
10
サブフォームに対してGoToRecordするには?
その他(Microsoft Office)
-
11
アクセスで#エラーを表示させない方法は?
Access(アクセス)
-
12
Accessのフォームにて、詳細行のボタンを行の内容により、表示/非表
その他(Microsoft Office)
-
13
ACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ
Access(アクセス)
-
14
クエリのループ処理がしたいです
Access(アクセス)
-
15
ACCESSテーブルを RecordSet以外で1レコードづつ読む方法
Visual Basic(VBA)
-
16
アクセスの初心者の質問です(空白の場合に他のフィールドを表示させたい。)
Access(アクセス)
-
17
2つ目のレコードの値を取得するには?
Access(アクセス)
-
18
アクセスのエラー「クエリには出力フィールドが1つ以上必要です。」
その他(Microsoft Office)
-
19
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
20
Accessで別テーブルの値をフォームに表示したい
その他(データベース)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Access 最後のレコードに到達...
-
パソコンのパーツの勘定科目に...
-
飲食店移転費用の税金について
-
シャッターを交換した場合の経...
-
リース会社とは何か免許や役所...
-
受講証紙代の処理について
-
建退共の証紙。 購入のときの...
-
一般に言う「生産高」とは? ...
-
刈払機の燃料は光熱費でいいの...
-
10万円以下の物を複数買い10万...
-
イベントで提供したお茶菓子の...
-
減価償却は自動的に年数経てば...
-
車の整備費(6ヶ月点検、車検な...
-
機械装置の据付費に含まれるもの
-
(税務)仮払税金認定損とはど...
-
出荷金額と売上高の違いについて
-
修繕費と消耗品の仕訳の境い目
-
エレベーター補修工事の資産計...
-
リース契約期間終了時に買取し...
-
機器類の校正の費用について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access 最後のレコードに到達...
-
稲作農業における年貢での地代...
-
シャッターを交換した場合の経...
-
経理用語で「計上」と「「振替...
-
パソコンのパーツの勘定科目に...
-
従業員への退職金
-
タンクローリーの交換代
-
保証料の計上
-
勘定科目の立て方教えてください!
-
町内会の予算の作り方
-
科目について
-
確定申告、収支の計上について
-
不要品売却で20万以上利益出た...
-
「うち貸借対照表」って何ですか。
-
課税か?非課税か?教えてくだ...
-
松本さんのホテル代の勘定科目は
-
本年中の償却期間について お詳...
-
朝日新聞が、過去最大(441億円)...
-
確定申告の「開業費」について...
-
日銀の負債に計上される項目つ...
おすすめ情報