アプリ版:「スタンプのみでお礼する」機能のリリースについて

お世話になっております。
先ほどまで、違うスレで質問していたものです。
おかげさまで、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'
アプリケーション定義またはオブジェクト定義エラーです。

A 回答 (2件)

よく分かりませんが



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
の中身も確認してみてください。

ちなみに★検索画面 商品コード用 サブフォームのほうではエラーはでないのでしょうか

この回答への補足

アクセスは、エラーが出てデバッグで選択される行に原因があるとは限らないことがわりとありますので、そこばかり注視してると全然違うところでおかしかったりします。

が解決策でした。

いろいろとコードをいじっているうちに、変えてしまっていて、
それの検証ができてなかったのが最大の原因でした。

お恥ずかしい話です。以後は、気をつけます。

補足日時:2013/08/25 10:52
    • good
    • 0
この回答へのお礼

kmetuさま

たびたびありがとうございます!
本当に感謝します。

位置関係は、変えても結果に変わりはありません。

下記は、イミディエイトウインドウの結果です。

?Left(Me.Parent.OpenArgs, Pos - 1)
frmJyutyu

?procname
resultViewJyutyuDenban

>ちなみに★検索画面 商品コード用 サブフォームのほうではエラーはでないのでしょうか
こちらは、前回教えていただいたとおりに記述して、問題なく実行されました。

>アクセスは、エラーが出てデバッグで選択される行に原因があるとは限らないことがわりとあります
ですよね。それで、変数宣言してないのが原因だととOption Explicitをいれてみたり・・・

再起動してみたりと、していますが・・・

いろいろとやっていますが、まだ解決できていません。

お礼日時:2013/08/25 00:52

どちらも代入部分を除いてまったく同じですね、なのに片方だけとなると 



MyFrm.txtDenban.Value = 伝票番号.Value

をコメントにしてみて確認するとか…
もしかしてtxtDenbanというフィールドがないとか、タイプミスでちょっと違ったとかだと話は早いのですが…

この回答への補足

kmetuさま

昨日は大変お世話になりました。

おかげさまで、無事解決しました。

原因は、呼び出される側のプロシージャーでエラーが発生していたこと。
コピーペーストで作成したプロシージャーに不要なコードが記述されており、
それを消去すると無事とおりました。

従いまして、ご教授いただいたコードは完璧でした。

昨日はすっきり寝れませんでしたが、今日はようやく寝れそうです。


最後までお付き合いくださいまして、ありがとうございました。

補足日時:2013/08/25 10:49
    • good
    • 0
この回答へのお礼

遅くに返信ありがとうございます。

txtDenbanというフィールドは存在します。

MyFrm.txtDenban.Value = 伝票番号.Value はコメントアウトしても
結果は変わりません。

MACのFUSIONにWIN7を入れて、アクセス2013をいれて作成していましたが、
レッツノートのwin7のアクセス2013に移してみても同様の結果でした。

伝票番号の検索画面を1から作成しなおしてみます。
どこかでなにかが・・・無いと思ってますが、念のため。

遅くまでありがとうございました。

お礼日時:2013/08/25 01:57

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A