2017-05-15 3 views
0

メインフォームにサブフォーム(メインフォーム上にある)に新しいレコードを作成するパブリック関数があります。私はYes/Noメッセージボックスでpublic関数を呼び出そうとしています。 (つまり、レコードを更新しますか?はい - サブフォームに新しいレコードを作成します。いいえ - 新しいレコードを作成しません)。ElseIfステートメントでPublic関数を呼び出すVBAエラー

私はY/Nメッセージボックスの外にpublic関数を呼び出すことができます。ただし、ElseIfステートメント内にコードを挿入すると、「指定されたレコードに移動できません。」というメッセージが表示されます。私のパブリック関数の "DoCmd.GoToRecord、、acNewRec"部分のエラー。

Public Function NewEventEntry() 
    'this public function creates an empty new record in the subform 
    Me![subform_Events].SetFocus 
    DoCmd.GoToRecord , , acNewRec 
End Function 


Private Sub RunUpdateQuery_Click() 
    'calling the public function works fine here  
    'Call NewEventEntry 

If DCount("*", "qry_CheckAllBadAddress") = 0 Then 
MsgBox "All addresses are marked bad.", vbExclamation 

ElseIf MsgBox("Do you want to update the addres?", vbYesNo + vbQuestion, "Warning") = vbYes Then 

    'calling the public function here doesn't work; i receive an error saying: "You can't go to the specified record." the problem is in the public  function, specifically the DoCmd.GoToRecord , , acNewRec line 
    Call NewEventEntry 

End If 
End Sub 

答えて

0
Me![subform_Events].SetFocus 
DoCmd.GoToRecord , , acNewRec 

どのようにVBAを使用すると、サブフォームではなく、メインフォームに新しいレコードに行きたいことを、知っておくべき? ;-)

はこれを試してみてください:

DoCmd.GoToRecord , "subform_Events", acNewRec 

これは(私はサブフォームを使用するので、長い時間を)動作するか私はわかりません。もしそうでなければ、私はDAOと何​​かをしようと思います。レコードセット

+0

私はそれを試してみました。その行が入力されると、実際に開いているサブフォームを探していますメインフォーム)。 'setfocus'ピースは、メインフォームがサブフォーム(メインフォーム上にある)に新しいレコードを作成することを知るようになっています。 「コード」の行は、ElseIfステートメント内にあるときには機能しません。 – xpandamonium

関連する問題