• 締切済み

ACCESS2010 実行時エラー 2766

ACCESS2010に関しての質問です。 マクロ中にIF文で分岐を設定しています。それ自体は正常に認識されますが、そのIF文中に更にもう一つのIF文を設定すると、 実行時エラー '2766': このオブジェクトには、オートメーション オブジェクト'|'は含まれません。 というメッセージが表示されます。 構文上に誤りはないのですが、解決策が見つかりません。 どなたか教えていただけませんか? ちなみに、最初のIF文ではform上の値を判断しており、次のIF文ではテーブル上の値を判断しています。 どうかよろしくお願いします。

みんなの回答

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.4

サッパリ分かりません。 >データテーブル1の各フィールドの説明と、 >具体的なデータ例が回答には必要です。 > IsNull([データテーブル1]![申請日]) などという事は出来ませんので DlookUp関数を調べてください。

general-shin
質問者

お礼

色々試してみましたが、最終的に断念しました。 気に留めていただき、真にありがとうございました。

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.3

途中から失礼します。 何をやりたいのか良く分かりません。 データテーブル1の申請日を参照したいようですが 直接は無理です。 また、 データテーブル1は複数のレコードが有るのでしょう? データテーブル1の各フィールドの説明と、 具体的なデータ例が回答には必要です。

general-shin
質問者

補足

色々考えていただきありがとうございます。  何をやりたいかといえば、 画面入力した不備事由という項目と、申請日という項目の双方が入力されなおかつ確定ボタンが押されたならば、別のボタンを押すことを可能とするようにしたいということなのです。それをマクロで判断して実行するようにしているのですが、フォーム上では申請日を入力させた後に確定ボタンを押すようにしています。  言い換えると、確定ボタンが押されているかどうかをテーブル上の項目である申請日に値が入っているかどうかで判断しようとしているわけです。フォームの元データはクエリで展開していますのでクエリの項目を使えば可能かとも思い試してみましたが結果は変わりませんでした。確定ボタンを押すことでテーブル内の申請日には値が入る仕組みにしてあります。 これでお分かりいただけるでしょうか?

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.2

> If ([Forms]![顧客絞込み結果1003]![書類不備事由]=0) Then > If Not IsNull([データテーブル1]![申請日]) Then >   各マクロの実行文 >  Else >   メッセージbox >  If文の最後 > Else >  メッセージbox > If文の最後 エラーになるのは If Not IsNull([データテーブル1]![申請日]) Then の行ですか? If ([Forms]![顧客絞込み結果1003]![書類不備事由]=0) Then msgbox nz([データテーブル1]![申請日], "Null") If Not IsNull([データテーブル1]![申請日]) Then としたら、[データテーブル1]![申請日]を表示できますか?

general-shin
質問者

補足

ケアしていただきありがとうございます。 指示通りに実行してみましたが、表示することができませんでした。 そもそもこのエラーはどんな場合に発生するのでしょうか? 不明で申し訳ありません。

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

> 最初のIF文ではform上の値を判断しており、次のIF文ではテーブル上の値を判断しています。 そのIF文を両方とも提示いただけますか?

general-shin
質問者

補足

早速関心を持っていただきありがとうございます。 IF文は以下の内容です。 If ([Forms]![顧客絞込み結果1003]![書類不備事由]=0) Then If Not IsNull([データテーブル1]![申請日]) Then     各マクロの実行文 Else     メッセージbox If文の最後 Else メッセージbox If文の最後

関連するQ&A

  • Accessでのレコードの削除時の表示について

    いつもお世話になります。基本的なことかもしれませんがAccess初心者でよくわからないので 教えて下さい。 Access2010でテーブルからレコードを読み出すフォームを作成し、そのレコードを削除するため、 フォーム上に削除ボタンを設定しました。 削除ボタンをクリックすると小さなウインドウが開き下記のようなメッセージが表示されます。           1件のレコードを削除します。     「はい」をクリックすると、削除したレコードを元に戻すことはできません           「はい(Y)]   「いいえ(N)] メッセージのウインドウの下には読みだしたレコードのフォームが表示されていますが、 キーとなる顧客コード(数字6桁)の欄には #エラー と表示され、その他の項目はすべて ブランクになります。 「はい」をクリックするとレコードは削除されるので処理的には問題ないのですが、 削除する前に確認するためフォーム上の項目を表示したまま残したいです。 どのようにすればよいでしょうか? 削除ボタンのクリック時の埋め込みマクロの内容は以下のように設定しています。  エラー時         移動先 次         マクロ名  コントロールの移動     コントロール名 = [Screen].[PreviousControl].[Name]  マクロエラーのクリア   If not [Form].[Newrecord] Then     メニューコマンドの実行           コマンド レコードの削除 If文の最後   If [Form].[Newrecord] And Not [Form].[Dirty] Then 警告文 If文の最後   If [Form].[Newrecord] And [Form].[Dirty] Then     メニューコマンドの実行           コマンド レコードを元に戻す If文の最後   If [MacroError] <> 0 Then メッセージボックス           メッセージ = [MacroError].[Description] 警告音 はい        メッセージの種類 なし      メッセージのタイトル If文の最後  ウインドウを閉じる   オブジェクトを閉じる    オブジェクトの種類      オブジェクト名    オブジェクトの保存 確認 参考にしたAccessのプログラムから削除ボタンをコピーしたため、これが適しているかどうか わかりません。 よろしくお願いします。   

  • ACCESSのリンクエラー

     「商品」テーブルと「仕入」テーブルで「1対多」のリレーションを構築し、この二つのテーブルからフォームを作成したのですが、「仕入サブフォーム」に新規Dataを追加しようとすると、 「”LinkMasuterFields/リンク親フィールド”プロパティの設定でエラー’このオブジェクトには、オートメーションオブジェクト’商品’は含まれません。’が発生しました。」 と出て、新規Dataを「仕入」サブフォームに入力しても「商品」テーブルとリンクされていません。  なんとか解決したいのですが、Helpだけでは良く判りません。どなたかよろしくお願いいたします。

  • Accessのアクションマクロでエラー処理は出来ない?

    アクセスのアクションマクロでエラー処理は出来ないのでしょうか? 具体的には、オブジェクトの削除でテーブルを削除するマクロを作ったのですが、該当するテーブルが存在しない場合はそのアクションをとばして次のアクションに進ませたいと考えています。 この場合アクションマクロからでは設定は出来ないのでしょうか?

  • AccessVBA 実行時エラー'2766'について質問です。

    AccessVBA 実行時エラー'2766'について質問です。 このオブジェクトには、オートメーションオブジェクト'レコードセット'は含まれません。 のエラーが出て困っています。 発生タイミングはフォームで4箇所以上の条件で検索した際に発生してます。 SQLに問題がありそうなのですが、SELECT~FROM文に続けて WhereSQL = "WHERE List.DeleteCheck <> True " WhereSQL = WhereSQL & "AND MCate = '" & ![txtFindMachineCate].Column(1) & "' " WhereSQL = WhereSQL & "AND PName LIKE '%" & ![txtFindProductName] & "%'" などテキストボックスに入力されているかをIF文でチェックして、 WHERE文をANDで結合しています。(AND文合計30個) ただし、4個ほどテキストボックスやコンボボックスを選択して検索すると、エラーがでます。 上記の後に、ORDER BY句を結合しています。 SubFormSQL = SubFormSQL & "ORDER BY PNum;" エラーのタイミングは上記の通りで、どのテキストボックスで起こるかは決まっていません。 何が原因しているのか、さっぱりで大変困っています。 アドバイスよろしくお願いいたします。m(_ _)m

  • エクセルマクロで時間計算のエラー処理

    エクセルマクロで、仕事の「開始時間」「終了時間」をInputBox関数を使って入力しています。 質問なんですが、 時間を入力するとき、不正な値を入力したときのエラー分岐をしたいのです。 例えば 6:00 と入力すべき所を誤って 6::0 になったり ただの数字 6 だったり、開始時間より終了時間が小さかったり した場合 どのような構文で分岐したら良いのでしょうか 開始時間・終了時間はデータ型を宣言していません なので マクロ実行時、型はEmpty 値となって If 開始時間 ="" Then ・・・としているだけで 空白以外は全て受け付けてしまう仕様になっています。 これを時刻形式の表示(hh:mm) 以外を拒否するためには どのようすれば良いか分かりません データ型をDim 開始時間 As Date にしてみたのですが、このときエラー時分岐判断はどのように すれば良いのでしょうか また他に良い方法があれば教えてください

  • VBAの実行時エラー'2522'について

    前任者がAccess2003により作成したデータベースがあります。 CSVデータを取り込む仕組みがあるのですが、下記のエラーが出て困っています。 実行時エラー '2522': このアクションまたはメソッドを実行するには[File Name/ファイル名]引数が必要です。 どうやらVBAによるエラーだと判明しましたが、それ以上はよくわかりません。 以下のような構文になっています。 Option Compare Database ---------- Private Sub CSV取込_Click() TextConv strFileName, "マスター定義", "T_マスター" End Sub ---------- Sub TextConv(strFle, strInp, strTbl) Dim strSQL As String strSQL = "DELETE * FROM " & strTbl If MsgBox("テーブルデータを更新しますか?", 4, "テーブル更新") = vbYes Then CurrentProject.Connection.Execute strSQL DoCmd.TransferText acImportDelim, strInp, strTbl, strFle, True MsgBox "テーブルデータを更新しました" End If End Sub ---------- Private Sub 参照_Click() Dim strFileName As String strFileName = GetFileName() If Len(strFileName) > 0 Then Me.filepath = strFileName Else MsgBox "取込対象ファイルを選択してください! " End If End Sub 以上のようになっています。 デバッグを実行すると「strFle」の値がEmptyになっているのでここだとは思うのですが、どうしたらよいかわかりません。 どなたかお知恵をお貸し願えませんでしょうか。 宜しくお願いします。

  • Access VBAでの構文エラー

    Access2003を使って画像DBを作成しています。 VBAを利用して、AテーブルのidとBテーブルのidの一致を検索し、 検索結果を表形式の「検索結果Form」に表示するプログラムを 作成していますが、以下のコードをコンパイルすると 「構文エラー」が出てしまいます。 どなたか、解決策を教えてください。よろしくお願いいたします。 Dim objCon As DAO.Database Dim objRs As DAO.Recordset Dim strSQL As String Set objCon = Application.CurrentDb strSQL = " select * " _ & " FROM A, B " _ & " where A!id = B!id" Set objRs = objCon.OpenRecordset(strSQL, dbOpenDynaset) '他のフォームに検索結果を表示する方法 'もし検索結果が見つかった場合 If objRs.EOF = False Then MsgBox "見つかりました!", vbOKOnly, "結果" DoCmd.OpenForm "検索結果Form", , , strSQL '検索結果が見つからなかった場合 Else 'Me.txtAge.Value = vbNullString MsgBox "見つかりませんでした", vbOKOnly, "結果" End If objRs.Close

  • PHPで変数のデータ受け渡しについて

    HTMLで下記のようにして入力された データを次ページに受け渡し、 issetで変数に値が代入されていれば ifで分岐処理させたいのですが、 elseの処理しかできません。    <FORM action="次ページ.php" method="GET">    キーワード<BR>    <INPUT type="text" name="keyword">    <INPUT type="submit" value="ボタン"> ボタンをクリックしたら次ページで    if (isset($keyword)) {     分岐処理1;     }    else{     分岐処理2;     } と行いたいのですが、$keywordに値が 代入されているにも関わらず elseの処理がされてしまいます。 どこか構文が間違っているのでしょうか。 どうか教えてください。

    • ベストアンサー
    • PHP
  • アクセスのレポートで集計をしたいんです

    アクセス2000でデータベースを作ってます。レポートに、請求書ごとの請求金額を出しているので、一定期間内の請求金額の合計額を出したいのですが、エラーになってしまうんです。どうしたらよいか教えていただけませんでしょうか?ちなみに、レポートに表示される請求金額は、レポート内で計算をして表示させています。請求書によって内税のものと外税のものがあるため、税金の区分に対する数値のみテーブルに格納し、その値に応じてIF文で分岐をさせて、納品額から算出しています。

  • Access2002 If文で日付が未入力を条件にしたい

    Access2002です。 If文で日付が未入力を分岐条件にしたいのですが、条件式はどのような表記になるのでしょうか。 If 購入日 = "" Then 上記では未入力と判断してくれませんでした。 よろしくお願いします。

専門家に質問してみよう