実行時エラー3265発生

このQ&Aのポイント
  • 質問者は、Private Sub denbanSelect()を作成したところ、実行時エラー3265が発生している。
  • 質問者は、エラーの原因を特定することができず、検討しているがわからないとしている。
  • 呼び出し元フォームや関連するコードを紹介している。
回答を見る
  • ベストアンサー

アクセス 実行時エラー3265

お世話になっております。 先ほどまで、違うスレで質問していたものです。 おかげさまで、Private Sub scdSelect()のようなコードとなり、 こちらの方は無事動作しましたが、それをコピーして、 Private Sub denbanSelect()を作成すると、実行時エラー3265が 発生しました。 なぜエラーが発生するのか、検討もつきません。 何かほかに前提条件があるのでしょうか? 各サブフォームのイミディエイトウインドウで ?me.parent.openargs とすると、しっかりと引数は入っております。 教えて君で申し訳ありませんが、どなたご教授よろしくお願いします。 ★呼び出し元フォーム  Private Sub cmdSeekDenban_Click()   DoCmd.OpenForm "resultJDenban", , , , , , Me.Name & ".resultViewJyutyuDenban"  End Sub  Private Sub cmdSeek_Click()   DoCmd.OpenForm "resultScd", , , , , , Me.Name & ".resultViewJyutyu"  End Sub  Public Sub resultViewJyutyu() ☆結果の表示(商品コード検索用)  end sub  Public Sub resultViewJyutyuDenban() ☆結果の表示(伝票番号検索用)  end sub ★検索画面 商品コード用 サブフォーム  Private Sub 商品コード_DblClick(Cancel As Integer)   Call scdSelect  End Sub  Private Sub scdSelect()   Dim Pos   Dim MyFrm   Dim ProcName  Pos = InStr(Me.Parent.OpenArgs, ".")  Set MyFrm = Forms(Left(Me.Parent.OpenArgs, Pos - 1))  ProcName = Right(Me.Parent.OpenArgs, Len(Me.Parent.OpenArgs) - Pos)   MyFrm.txtScd.Value = 商品コード.Value   MyFrm.txtEdaban.Value = 枝番.Value   DoCmd.Close acForm, "resultScd", acSaveNo   CallByName MyFrm, ProcName, VbMethod End Sub ★検索画面 受注伝票番号用 サブフォーム  Private Sub 商品CD_DblClick(Cancel As Integer)   Call denbanSelect  End Sub  Private Sub denbanSelect()   Dim Pos   Dim MyFrm   Dim ProcName   Pos = InStr(Me.Parent.OpenArgs, ".")  Set MyFrm = Forms(Left(Me.Parent.OpenArgs, Pos - 1))  ProcName = Right(Me.Parent.OpenArgs, Len(Me.Parent.OpenArgs) - Pos)  MyFrm.txtDenban.Value = 伝票番号.Value  CallByName MyFrm, ProcName, VbMethod   ←エラー発生★★★   DoCmd.Close acForm, "resultJDenban", acSaveNo End Sub エラー内容  実行時エラー '3265' アプリケーション定義またはオブジェクト定義エラーです。

質問者が選んだベストアンサー

  • ベストアンサー
  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.1

よく分かりませんが Private Sub scdSelect() と Private Sub denbanSelect() で DoCmd.Close acForm, "resultScd", acSaveNo CallByName MyFrm, ProcName, VbMethod と CallByName MyFrm, ProcName, VbMethod DoCmd.Close acForm, "resultJDenban", acSaveNo と位置関係が違いますがどうなんでしょう… アクセスは、エラーが出てデバッグで選択される行に原因があるとは限らないことがわりとありますので、そこばかり注視してると全然違うところでおかしかったりします。 Left(Me.Parent.OpenArgs, Pos - 1) や ProcName の中身も確認してみてください。 ちなみに★検索画面 商品コード用 サブフォームのほうではエラーはでないのでしょうか

123daa
質問者

お礼

kmetuさま たびたびありがとうございます! 本当に感謝します。 位置関係は、変えても結果に変わりはありません。 下記は、イミディエイトウインドウの結果です。 ?Left(Me.Parent.OpenArgs, Pos - 1) frmJyutyu ?procname resultViewJyutyuDenban >ちなみに★検索画面 商品コード用 サブフォームのほうではエラーはでないのでしょうか こちらは、前回教えていただいたとおりに記述して、問題なく実行されました。 >アクセスは、エラーが出てデバッグで選択される行に原因があるとは限らないことがわりとあります ですよね。それで、変数宣言してないのが原因だととOption Explicitをいれてみたり・・・ 再起動してみたりと、していますが・・・ いろいろとやっていますが、まだ解決できていません。

123daa
質問者

補足

アクセスは、エラーが出てデバッグで選択される行に原因があるとは限らないことがわりとありますので、そこばかり注視してると全然違うところでおかしかったりします。 が解決策でした。 いろいろとコードをいじっているうちに、変えてしまっていて、 それの検証ができてなかったのが最大の原因でした。 お恥ずかしい話です。以後は、気をつけます。

その他の回答 (1)

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.2

どちらも代入部分を除いてまったく同じですね、なのに片方だけとなると  MyFrm.txtDenban.Value = 伝票番号.Value をコメントにしてみて確認するとか… もしかしてtxtDenbanというフィールドがないとか、タイプミスでちょっと違ったとかだと話は早いのですが…

123daa
質問者

お礼

遅くに返信ありがとうございます。 txtDenbanというフィールドは存在します。 MyFrm.txtDenban.Value = 伝票番号.Value はコメントアウトしても 結果は変わりません。 MACのFUSIONにWIN7を入れて、アクセス2013をいれて作成していましたが、 レッツノートのwin7のアクセス2013に移してみても同様の結果でした。 伝票番号の検索画面を1から作成しなおしてみます。 どこかでなにかが・・・無いと思ってますが、念のため。 遅くまでありがとうございました。

123daa
質問者

補足

kmetuさま 昨日は大変お世話になりました。 おかげさまで、無事解決しました。 原因は、呼び出される側のプロシージャーでエラーが発生していたこと。 コピーペーストで作成したプロシージャーに不要なコードが記述されており、 それを消去すると無事とおりました。 従いまして、ご教授いただいたコードは完璧でした。 昨日はすっきり寝れませんでしたが、今日はようやく寝れそうです。 最後までお付き合いくださいまして、ありがとうございました。

関連するQ&A

  • エラーが出ます

    Stressmanと言います。 ACCESS2002を使っています。 今、「報告書」というフォームから「顧客」というフォームを開きます。 「顧客」フォームにはサブフォームとして「顧客一覧」のデータシート が組み込まれています。 「顧客一覧」の該当する行をダブルクリックしたら、フォームを閉じて、 「報告書」フォームの「顧客ID」にダブルクリックした顧客の「顧客ID」 がコピーされる。っていうのを実現させようとしています。 下記がそのコードです。 まず「報告書」フォームのコマンドボタンに下記のコードを設定 「顧客」フォームを開きます。 Private Sub コマンド110_Click() DoCmd.OpenForm "顧客", , , , acFormAdd, , Me.Name End Sub そして、「顧客」のサブフォームの「顧客一覧」(データシート)の ダブルクリックのイベントのところに下記のコードを設定 Private Sub Form_DblClick(Cancel As Integer) Dim strFormName As String strFormName = Me.OpenArgs ← エラー Forms(strFormName).[顧客ID] = Me.[Frm_04顧客マスタ_サブフォーム].Form.[顧客ID] DoCmd.Close acForm, Me.Name End Sub エラーがでるのがここです。 どうやら、Me.OpenArgsの値がNullらしいのですが、 どうやって回避すればいいのか、分かりません。 分かりにくい説明ですが、宜しくお願いします

  • Access2000のVBAについて

    下記のプログラムだと挿入が可能になります。 Private Sub 削除_コマンド_Click() If IsNull(Me.社員コード) Then MsgBox ("社員コードが入力されていません") Else Dim strSQL As String strSQL = "INSERT INTO 社員情報テーブル(社員コード,作成日) " _ & " VALUES ('" & Me.社員コード & "', now());" DoCmd.RunSQL strSQL End If End Sub しかし、下記のプログラムだとinsert文の『Me.社員コード』で エラーが発生します。 エラーメッセージは 『メソッドまたはデータメンバが見つかりません』 と表示されます。 上と下とどう違うのでしょうか。 Private Sub 削除_コマンド_Click() If IsNull(Me.社員コード) Then MsgBox ("社員コードが入力されていません") Else Dim strSQL As String strSQL = "INSERT INTO 社員情報テーブル(社員コード,氏名(氏),作成日) " _ & " VALUES ('" & Me.社員コード & "','" & Me.氏名(氏) & "', now());" DoCmd.RunSQL strSQL End If End Sub

  • アクセス コンボボックスで全項目表示

    アクセス2000で発注書をつくっています 発注書フォームのサブフォーム「発注書sub」内で 「大項目」「中項目」「小項目」「商品コード」の 4つのコンボボックスを設置し、 絞込み検索で商品明細を入力しています 新規レコードに移動するときに 「大項目」「中項目」「小項目」の値を空白にし、 4つめの「商品コード」コンボボックスで 全商品を表示させたいのですが どう記述していいのかわかりません 現在は Private Sub 商品コード_AfterUpdate() Me.品番 = Me.商品コード.Column(1) Me.商品名 = Me.商品コード.Column(2) Me.色 = Me.商品コード.Column(3) Me.サイズ = Me.商品コード.Column(4) Me.商品単価 = Me.商品コード.Column(5) End Sub Private Sub 小項目_Enter() Me!商品コード.Requery End Sub Private Sub 大項目_AfterUpdate() Me!中項目.Requery End Sub Private Sub 中項目_AfterUpdate() Me!小項目.Requery End Sub Private Sub 小項目_AfterUpdate() Me!商品コード.Requery End Sub 'フォーカスが移ると同時にドロップダウンさせる Private Sub 大項目_GotFocus() Me.大項目.Dropdown End Sub Private Sub 中項目_GotFocus() Me.中項目.Dropdown End Sub Private Sub 小項目_GotFocus() Me.小項目.Dropdown End Sub 'テスト Private Sub 摘要_LostFocus() Me!大項目 = Null Me!中項目 = Null Me!小項目 = Null Me!商品コード.Requery End Sub です。 発注書フォーム(単票フォーム) レコードソース「発注書」 サブフォーム名「発注書sub」(帳票形式) レコードソース「発注書明細」 リンク親フィールド子フィールドともに「発注書コード」 (他に表記が必要なのがあるかもしれませんが。。) テーブル ●発注書明細 「明細コード」「発注書コード」「商品コード」「品番」「商品名」「色」「サイズ」「商品単価」「数量」「摘要」です ●商品マスタ 「商品コード」「品番」「種類」「大項目」「中項目」「色」「商品名」「サイズ」「商品単価」 です。 どなたか ご指導のほどよろしくお願いいたします

  • access2010でのカレンダーコントロール

    http://msdn.microsoft.com/ja-jp/library/office/gg251104%28v=office.14%29.aspx 上記urlにある「カスタムカレンダーフォームを使用する」の方法でコントロール[frmCalendar]をクリックすると同時にtextbox[日報選択]の日付を変更することができるのですが、他のサブフォームのリクエリができません。これを1回のクリックでサブフォームをリクエリさせる方法はないですか? 現状ではコントロールによって変更されたtextbox内をもう一度クリックすると他のサブフォームがリクエリされます。下記はVBですが変更または追加があれば教えてください。 Option Compare Database Private WithEvents calendarForm As Form_frmCalendar ------------------------------------------------- Private Sub calendarForm_DateChanged(newDate As Date) Me.[日報選択] = newDate End Sub ----------------------------------------------------- Private Sub Form_Open(Cancel As Integer) Set calendarForm = Me.Calendar.Form End Sub ---------------------------------------------------- Private Sub Form_Click() DoCmd.OpenForm "F_日報" DoCmd.Close End Sub ---------------------------------------------------- Private Sub Form_Load() Me![日報選択].Value = Date Me!F_日報扱い現金.Requery Me!F_日報扱いクレジット.Requery Me!F_日報商品売上.Requery End Sub ---------------------------------------------- Private Sub 日報選択_AfterUpdate() Me!F_日報商品売上.Requery Me!F_日報扱い現金.Requery Me!F_日報扱いクレジット.Requery End Sub ---------------------------------------- Private Sub 日報選択_Click() Me!F_日報商品売上.Requery Me!F_日報扱い現金.Requery Me!F_日報扱いクレジット.Requery End Sub

  • OpenFormがACCESS2000でエラー

    メニューのフォームで使っているOpenFormがACCESS2000で次のエラーがでます。OFFICE365では出ません。 「selectステートメントが間違っている予約語や引数を含んでいるか、区切り記号が正しくありません」 例えば次のコードです。 Private Sub 受注入力_Click() DoCmd.OpenForm "受注入力" End Sub 同じようなコードでも次のコードではなぜか出ていません。 Private Sub 受注入力B_Click() DoCmd.OpenForm "受注入力B" End Sub このフォームは何年も変更しておらずエラーは出なかったのですが、1か月前あたりから出るようになりました。 なぜかお分かりの方がおられましたらご教示願えませんでしょうか。

  • AccessVBAにおけるOpenArgsの使用について

    AccessVBAを最近はじめた初心者です。 ~~~フォーム1~~~ Private Sub コマンド0_Click() DoCmd.OpenForm "フォーム2", , , , , , "コマンド0" End Sub Private Sub コマンド1_Click() DoCmd.OpenForm "フォーム2", , , , , , "コマンド1" End Sub ~~~フォーム2~~~ Private Sub Form_Load() Dim strFormName As String strFormName = Forms.フォーム1.OpenArgs DoCmd.PrintOut strFormName End Sub 上のプログラムのようにフォーム1でクリックしたボタンによってフォーム2を読み込んだ時の動作を変えるプログラムを作成しようとしています。 しかし、実際に起動させると、『strFormName = Forms.フォーム1.OpenArgs』の辺りで 「Null の使い方が不正です。」 というエラーメッセージが表示されます。 Accessのヘルプを参照に組んでみたのですが、どの箇所が間違っているのでしょうか? 回答、よろしくお願いします。

  • access 

    下記はよくある、Select Caseと filterと思うのですが、 (日付が空白のものを抽出)or(全て表示)の2択としたのですが、 (全て表示)ボタンをクリックすると ほんの一瞬正しく(全て)が表示された後、フィルターされた「Case 1」の表示になってしまうんです。 下記コードは問題ありませんか? この症状の原因は何が考えられるでしょうか? -------------------------------------------------- Private Sub フレーム1_AfterUpdate() Dim varfilter As Variant Select Case Me!フレーム1.Value Case 1 varfilter = "日付 is null" Case Else varfilter = "" End Select Me.サブフォーム.Form.Filter = varfilter Me.サブフォーム.Form.FilterOn = True End Sub

  • Access サブフォームにフィルターをかけるには?

    メインフォームの中にタブを置きその中に表形式のサブフォーム(SUB)を置いています。 メインにボタン(コマンド10)を置いて押されたらサブのFunction(test)に飛ぶようにしてます。 ----メイン----- Private Sub コマンド10_MouseDown(~~~ [SUB].SetFocus Debug.Print Me.SUB.Form.test End Sub -----サブ----- Public Function test() DoCmd.ApplyFilter , "氏名=" & data End Function として、サブフォームにフィルターをかけたいのですが、エラーになります。 サブ単体では、動くのですが。

  • アクセス 開いているレポート名を取得する。

    アクセス初心者です。 VBAにて フォーム1でレポート、レコードを選択後に レポートを開くと同時に印刷フォームも開くように組んでます。 その印刷フォームで印刷をすると、印刷フォーム自体が印刷されてしまうので ”レポート名”を認識させてから印刷しています。 その時の”レポート名”を開いたときに自動的に変数として印刷フォームに引き継ぎたいのですが やり方が分かりません。 意図としては、印刷フォームを汎用的に使いたいためです。 印刷フォームの呼び出しコードは下記にて Private Sub コマンド18_Click() Dim report_name As String Dim report_value As String If Not IsNull(コンボ50.Value) = True Then report_name = コンボ48.Value  ’レポート名です report_value = コンボ50.Value DoCmd.OpenReport report_name, acViewPreview, , "[現場名]='" & report_value & "'" DoCmd.MoveSize Width:=10000, Height:=13000 Reports(report_name).ZoomControl = 75 Else MsgBox "項目を選択してください。" End End If DoCmd.OpenForm "印刷_フォーム", acNormal End Sub Private Sub コマンド53_Click() Dim new_date As String Dim form_name As String If Not IsNull(コンボ48.Value) = True Then form_name = コンボ48.Value DoCmd.OpenForm form_name, acNormal, , , acFormAdd DoCmd.MoveSize Width:=12000, Height:=13000 Else MsgBox "[取引先名]を入力してください。" End If End Sub 下記は印刷フォームにて、印刷設定をする場合のコードです Private Sub コマンド0_Click() Dim report_name As String report_name = "レポート名" On Error Resume Next DoCmd.SelectObject acReport, report_name, True DoCmd.RunCommand acCmdPrint End Sub

  • サブフォームの新規レコードに移動したい アクセス

    親フォームのコマンドボタンをクリックしたら 親フォームにはまっているサブフォームの新規レコードに移動したいのですが、 うまくできません。 サブフォームのオブジェクト名は、"F_SubForm"です。 サブフォームはデータシートビューです。 VBAコードは Private Sub cmd_test_Click() DoCmd.SelectObject acForm, "F_SubForm" DoCmd.GoToRecord , , acNewRec End Sub です。 上記コードを実行すると DoCmd.SelectObject acForm, "F_SubForm" の部分で、 「実行時エラー 2489  オブジェクトが開いていません。」 となります。 だからと言って、 DoCmd.GoToRecord , , acNewRec だと、何も起こりません。(新規レコードに移動しません) 解決方法をご教授ください。

専門家に質問してみよう