どうもお世話になります。
Accessに関しましての質問でございます。
以下のVBAでコンパイルエラーが出るのですが、
どのように致したらエラーが出なくなるでしょうか?
こちらのプログラムは、
チェックインから宿泊最終日を入力すると
日付を1日ずつ増やして、ほかのデータは
固定したままフォームに入力するプログラムです。
ただし、請求書_詳細IDもオートナンバー型です。
--------------------------------------------
Option Compare Database
Private Sub レコードの追加_Click()
Dim strWHERE As String
Dim D As Date
strWHERE = ""
strWHERE = strWHERE & " AND 宿泊日 >=#" & Me.チェックイン & "#"
strWHERE = strWHERE & " AND 宿泊日 <=#" & Me.宿泊最終日 & "#"
If DCount("*", "Qh2f_請求書_詳細", strWHERE) = 0 Then '条件に当て嵌まるデータ件数を取得
Me.Fh2f_請求書_詳細_sub.Requery
With Me.Fh2f_請求書_詳細_sub.Form.RecordsetClone
For D = Me.チェックイン To Me.宿泊最終日
.FindFirst "宿泊日=#" & D & "#AND 請求書_詳細ID ='" & Me.請求書_詳細ID & "'"
If .NoMatch Then
.AddNew
!宿泊日 = D
!請求書_詳細ID = Me.請求書_詳細ID
!部屋番 = Me.部屋番
!氏名2 = Me.氏名2
!商品名 = Me.商品名
!単価 = Me.単価
!人数 = Me.人数
!宿泊数 = Me.宿泊数
!備考 = Me.備考
.Update
End If
Next
End With
Else
MsgBox ("すでに同じ日付が入っています")
End If
End Sub
--------------------------------------------
こちらの設定にしたところ
「コンパイルエラー」
「メソッドまたはデータメンバが見つかりません。」という
エラーが出てしまいます。
そうして、「.請求書_詳細ID」だけが
ブルーになります。
どうしたら、エラーを消して
連投できるようになるでしょうか?
大変お手数とはぞんじますが、
ご返信お待ち致しております。
【補足】
実は他の方に教えてもらった
プログラムを応用して作ったものです。
VBA初心者です。
どうぞよろしくお願い致します。
No.5ベストアンサー
- 回答日時:
>Private Sub レコードの追加_Click()
のコマンドボタンなどがメインフォーム上にあり
.FindFirst "宿泊日=#" & D & "# AND 請求書_詳細ID =" & Me.請求書_詳細ID
の末尾のMe.請求書_詳細IDがサブフォーム上にあるのでしたら
.FindFirst "宿泊日=#" & D & "# AND 請求書_詳細ID =" & Me!サブフォームコントロール名.Form!請求書_詳細ID
でしょうけど、。。。
http://hatenachips.blog34.fc2.com/blog-entry-347 …
Me.請求書_詳細ID が重複している、
OR コントロール名を間違えている、かも?
Me.請求書_詳細ID は何処にあるのでしょう。?
謎の仕様。
上手く行かなかったらより単純に
.FindFirst "宿泊日=#" & D & "# AND 請求書_詳細ID =1"
でもお試しを。
この度は度重なるご返信をありがとうございます。いろいろ参考にさせていただきましたが、あれこれ試した結果無事できるようになりました。どうもありがとうございます。
No.4
- 回答日時:
>請求書_詳細IDもオートナンバー型
であるならば、
>請求書_詳細ID ='" & Me.請求書_詳細ID & "'"
で抽出されるデータは多くて一個しかないということになり、それがなかった場合でも
>!請求書_詳細ID = Me.請求書_詳細ID
繰り返し入れることができなくなるような気がする。
お金に関することなので、状況があまりよくわかっていないので、間違っていてもかまわないという前提の元に話を進めるなら、
・「請求書_親ID」みたいなフィールドを追加し、
セレクト文を
・・・請求書_親ID ='" & Me.請求書_ID & "'"
として、インサートを
.addnew
・・・
!請求書_親ID = Me.請求書_ID
・・・
.update
とする。
インサートするフィールドを眺めていると、テーブルの構造がいまいちな気がして、もう少しRDBについて勉強をしたほうが良いというアドバイスがしたくなるけど、まあ、それは別な話。
No.3
- 回答日時:
ANo2は無視してください。
エラーの出ている行を勘違いしました。
スミマセンでした。
度重なるご返答ありがとうございます。なんとかできるようになりたいです。VBAって本当に難しいですね。本を読んでもよく分かりません。この度はどうもありがとうございます。
No.2
- 回答日時:
フォームの請求書_詳細IDを入れるテキストボックスの名称が間違っている
可能性がありますので、ご確認ください。
というか、me.を入れたときに出てくる候補のどれかを選ぶようにすれば、
そのようなことにはならないと思います。
丁寧なご返信ありがとうございます。
無視とのことですが、一応返信をさせてください。
meの候補には出て参りません。
別の候補はたくさん出てくるのですが・・・
請求書IDとか。ただ、これは親のIDなので関係ないかと思います。
どうでしょうか?
再び話は戻りまして、請求書_詳細IDですが
サブフォーム(出力用)にはテキストボックスはあります。
そのかわり、入力用のテキストボックスはありません。
どうでしょうか? よくわからなくてどうもすみません。
後、外せない理由があって、
請求書IDはオートメーション型ではありません。
数値型になっております。こちらは関係あるでしょうか?
No.1
- 回答日時:
ただし、請求書_詳細IDもオートナンバー型です。
なので、どの行でエラーなのか不明ですが、とりあえず、
.FindFirst "宿泊日=#" & D & "#AND 請求書_詳細ID ='" & Me.請求書_詳細ID & "'"
↓
.FindFirst "宿泊日=#" & D & "# AND 請求書_詳細ID =" & Me.請求書_詳細ID
です。
数値型の場合はシングルクォートで囲みません。
文字列型の場合には必要になります。
かな?
ご返信ありがとうございます。
またわかりやすい解説をありがとうございます。
ただ、修正しましたが、やはり同じ個所にエラーが出てしまいます。
どうしたらよいでしょうか?
.FindFirst "宿泊日=#" & D & "# AND 請求書_詳細ID =" & Me.請求書_詳細ID
の一番末尾の「.請求書_詳細ID」がエラーとなります。
ご指南いただけましたら幸いでございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) docmd.gotorecordを起動するには 5 2022/06/17 15:20
- Access(アクセス) DoCmd.SearchForRecord が動かない時の解決方法 3 2022/07/22 15:31
- Visual Basic(VBA) VBA 請求書自動作成 3 2022/04/24 01:58
- Access(アクセス) チェックボックスにチェックが入った後の挙動 1 2022/08/21 12:39
- Access(アクセス) Accessのテキストボックスの入力文字制限 1 2023/01/18 20:43
- Visual Basic(VBA) Accessフォームで全レコードを指定のExcelのセルへ転送し印刷する方法について 2 2022/09/08 18:23
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
このQ&Aを見た人はこんなQ&Aも見ています
-
あなたの「必」の書き順を教えてください
ふだん、どういう書き順で「必」を書いていますか? みなさんの色んな書き順を知りたいです。 画像のA~Eを使って教えてください。
-
人生最悪の忘れ物
今までの人生での「最悪の忘れ物」を教えてください。 私の「最悪の忘れ物」は「財布」です。
-
「これはヤバかったな」という遅刻エピソード
寝坊だったり、不測の事態だったり、いずれにしても遅刻の思い出はいつ思い出しても冷や汗をかいてしまいますよね。
-
2024年のうちにやっておきたいこと、ここで宣言しませんか?
2024年も残すところ50日を切りましたね。 ことしはどんな1年でしたか? 2024年のうちにやっておきたいこと、 よかったらここで宣言していってください!
-
14歳の自分に衝撃の事実を告げてください
タイムマシンで14歳の自分のところに現れた未来のあなた。 衝撃的な事実を告げて自分に驚かせるとしたら何を告げますか?
-
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
アクセスVBAのMe!と[ ]
Access(アクセス)
-
Access2010 「演算子がありません」エラー
その他(データベース)
-
-
4
Accessで別テーブルの値をフォームに表示したい
その他(データベース)
-
5
実行時エラー 3265「要求された名前、または序数
Visual Basic(VBA)
-
6
access2021 VBA メソッドまたはデータメンバーが見つかりません エラー発生
Access(アクセス)
-
7
実行時エラー3131 FROM 句の構文エラーです について
Access(アクセス)
-
8
エラー「メソッドまたはデータメンバが見つかりません」
Access(アクセス)
-
9
アクセスのエラー「クエリには出力フィールドが1つ以上必要です。」
その他(Microsoft Office)
-
10
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
11
ACCSESS2013VBA フォームのレコードソースを変更する
その他(データベース)
-
12
Access VBAで行ラベルが定義されていないというエラーが出ます
Access(アクセス)
-
13
コンパイルエラーが出ます。助けて下さい。
その他(データベース)
-
14
エラー(型が一致しません。)の対処方法
Visual Basic(VBA)
-
15
Access サブフォームでの選択行の取得
その他(データベース)
-
16
「RunSQL」と「Execute」の違い
Access(アクセス)
-
17
ACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ
Access(アクセス)
-
18
Returnに対するGoSubがありません
Access(アクセス)
-
19
Accessでレコードを別テーブルへコピーするには
Access(アクセス)
-
20
access別のテーブルを参照してテキストボックスに値を表示、編集したい
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessのフォーム上にレコード...
-
アクセスのフォームのビューが...
-
Access 別フォームへの再クエ...
-
ACCESSのフォームからデータの...
-
選択したチェックボックスのみ...
-
Access2002 フォームを閉じるた...
-
アクセスでテーブルの変更内容...
-
テキストボックス(アクセス)内...
-
アクセス 0以外をカウントす...
-
「メソッドまたはデータメンバ...
-
Access フォーム上でコンボボッ...
-
accessの自動更新処理をできな...
-
アクセスVBA TOP値を変数
-
ACCESSで入力フォームをHTMLフ...
-
アクセスでの項目追加について...
-
ACCESSの表形式で、レコードを...
-
オートシェイプのような作図入...
-
access 非連結のサブフォームの...
-
テキストボックスの値をテーブ...
-
Accessのフォームに表示...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
アクセスのフォームのビューが...
-
ACCESSのフォームからデータの...
-
Accessのフォーム上にレコード...
-
選択したチェックボックスのみ...
-
accessの自動更新処理をできな...
-
ACCESSで入力フォームをHTMLフ...
-
アクセスでの項目追加について...
-
Access 別フォームへの再クエ...
-
アクセスでテーブルの変更内容...
-
Accessのフォームで作業領域を...
-
「メソッドまたはデータメンバ...
-
Access2002 フォームを閉じるた...
-
アクセス 0以外をカウントす...
-
Access フォーム上でコンボボッ...
-
Accessフォームのテキストボッ...
-
帳票フォームに全レコードを表...
-
テキストボックス(アクセス)内...
-
入力途中の入力した値をすべて...
-
Accessのフォームに表示...
-
ACCESSでのテキストボックスの...
おすすめ情報