【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集

アクセス2010 起動時の設定

オプション→フォームの表示
で起動したいフォームをvbaで設定するには?

Call Application.SetOption("????", True)

このようなコードでいけそうな気がするのですが、?に何を入れればいいのかわかりません。
フォーム名は必要だと思うのですが、
この設定をvbaで行う場合のコードを教えてください。

「オプション→フォームの表示で起動したいフ」の質問画像

A 回答 (2件)

Access2010 の標準設定では、特に指定しなくても DAO が使用できるようになっているはずなのですが・・・下記を確認してみてください。




I)「参照設定」で下記の項目にチェックマークがついているか確認してみてください。

  Microsoft Office 14.0 Access database engine Object Library

II)チェックがついているのであれば、もしかするとプロジェクト名が「Database」になっているのでは?

  プロジェクト名が「Database」になっているのであれば、変更してください。
  VBA の中でプロジェクト名を指定した関数等があれば、その部分も変更してください。

  *プロジェクト名の確認方法

   1)VBAエディタを開く
   2)左側にある「プロジェクト」の一番上がプロジェクト名です
     *「プロジェクト」が表示されていない時は、「表示」→「プロジェクトエクスプローラ」をクリック
    • good
    • 0
この回答へのお礼

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

お礼日時:2013/07/10 20:28

起動時のフォームを VBA で変更する際は、「SetOption」ではできないようです。



*「SetOpton」「GetOption」で設定、取得できるオプションの名前一覧
http://msdn.microsoft.com/ja-jp/library/office/f …
(Access2013の文章ですが、2010でもほぼ一緒だと思います)


なので、下記のようなルーチンを作成します。

Sub ChangeStartUpForm(frmName As String)
  Dim db As Database
  Dim prp As Property

  Set db = CurrentDb

  On Error GoTo ChangeStartUpForm_Error
  db.Properties("StartupForm") = frmName

ChangeStartUpForm_End:
  Set db = Nothing
  Exit Sub

ChangeStartUpForm_Error:
  If Err.Number = 3270 Then
    ' プロパティが見つからなかった時は作成
    Set prp = db.CreateProperty("StartupForm", dbText, frmName)
    db.Properties.Append prp
    Resume Next
  Else
    ' その他エラー
    MsgBox Err.Number & " : " & Err.Description
    Resume ChangeStartUpForm_End
  End If
End Sub

そして、起動時のフォームを変更したい箇所で

ChangeStartUpForm "Form名"

のように呼び出せば、変更できます。

参考URL:http://www.access-programmers.co.uk/forums/showt …
    • good
    • 0
この回答へのお礼

SetOptonではできないのですね。
リンク先の一覧は便利ですね。
今後活用したいと思います。
早速コードを張り付けましたが、
  Dim db As Database
の部分で
コンパイルエラー
プロジェクトではなく、ユーザー定義型を指定してください。
になってしまいます。

基本的な事なのかもしれませんが、
なぜこのエラーがでるのでしょうか?
主性方法を教えていただければ助かります。
よろしくお願いします。

お礼日時:2013/06/15 08:31

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


おすすめ情報