Accessの分割フォームは非常に便利です。 残念ながら、ナビゲーションフォーム内に配置すると機能しません。 Accessの分割フォーム機能をシミュレートし、ナビゲーションフォーム内でも機能させるVBA関数を作成する方法を学びます。
分割フォームを使用すると、フォームビューとデータシートビューのXNUMXつのレコードビューを同時に表示できます。 これにより、すべてのレコードの概要を把握できると同時に、レコードをXNUMXつずつ表示および編集するオプションが提供されます。
残念ながら、分割フォームをナビゲーションフォーム内に配置すると、機能しなくなります。これは私を困惑させます。 これには回避策があります。 VBAを使用すると、Accessの分割フォームをシミュレートする独自の関数を作成できます。 以下の手順に従ってください。
ダウンロード
この機能の利用をできるだけ早く開始したい場合は、以下の方法があります。
今すぐVBAコードを含むサンプルデータベースをダウンロードする
それ以外の場合、DIYをしたい場合は、以下の内容を読むことができます。
VBAを使用してAccessで独自の分割フォームを作成する手順
1.分割フォームを開き、デフォルトビューを単一フォームに更新します。 
- 分割フォームを開きます。
- デザインビューで、フォームを選択します。
- プロパティシート(ALT + Enter)> [フォーム]タブに移動します。
- デフォルトのビューを「単一フォーム」に変更します。
- フォームを閉じて保存します。
2.フォームのコピーを作成します。 これは、データシートビューとして機能します。
- ナビゲーションペインに移動します。
- フォームを右クリックして、[コピー]を選択します。
- ナビゲーションペインの空白の領域を右クリックして、[貼り付け]を選択します。
- フォーム名を変更します。 「_Datasheet」を追加します。
例:
- フォーム:メンバー
- フォームのコピー:Members_Datasheet
3.データセットフォームを開き、フォームビューのプロパティを更新します。
- データセットフォームを開きます。
- デザインビューで、フォームを選択します。
- [プロパティシート]> [フォーム]タブに移動します。
- 次のプロパティを更新します。
- デフォルトビュー: データシート
- データセットビューを許可する: はい
- フォームビューを許可する: いいえ
- フォームを閉じて保存します。
4.メインフォームを再度開き、データセットフォームをサブフォームとして追加します。
- メインフォーム(コピーされたもの)をデザインビューで開きます。
- サブフォームを追加します。
- デザインメニューに移動します。 サブフォーム/サブレポートを選択します。
- フォームの詳細領域をクリックします。
- サブフォームウィザードが表示されます。
- デザインメニューに移動します。 サブフォーム/サブレポートを選択します。
1. [既存のフォームを使用する]をクリックします。
2.データシートフォームを選択します。
3. [次へ]をクリックします。
4. [自分で定義]を選択します。
5. [完了]をクリックします。
3.これで、データシートフォームがメインフォームのサブフォームになりました。 ご希望のサイズと位置に調整してください。
5.最後に、コードを追加します。
- VBAエディターを開きます(ALT + F11)。
- メインフォームを選択し、次のコードを貼り付けます。
'MAIN FORM Option Explicit Private Sub Form_AfterUpdate() Me.Members_Datasheet.Requery End Sub Private Sub Form_Current() If Me.NewRecord Then Me.Members_Datasheet.Form.Recordset.AddNew Else Me.Members_Datasheet.Requery End If End Sub
- コードをコピーした後、単語のすべてのインスタンスを置き換えます メンバー_データシート データシートフォームの実際の名前を使用します。
- 完了したら、[プロジェクト]メニューからデータセットフォームを選択し、以下のコードをコピーします。
'SUBFORM/DATASHEET FORM Option Explicit Private Sub Form_AfterUpdate() Me.Parent.Form.Requery End Sub Private Sub Form_Current() Dim pk_field As String, pk_tbox As Control Dim primaryKey As String, strSearch As String Set pk_tbox = Me.Member_ID 'textbox containing primary key * pk_field = "Member_ID" 'primary key field name * primaryKey = Nz(pk_tbox.Value, 0) 'change value to 0 if null pk_field = "[" & pk_field & "]" 'enclose field name with brackets If primaryKey <> 0 Then 'if not null (or not a new record) strSearch = pk_field & "=" & primaryKey Me.Parent.Recordset.FindFirst strSearch Else Me.Parent.Form.Recordset.AddNew End If End Sub
- 次の変数の値を更新します。
- pk_tbox –主キーを含むテキストボックスを指します。
- pk_field –レコードソースの主キーフィールドを参照します。
コメントセクションにはそれぞれアスタリスク(*)が付いているので、簡単に見つけることができます。
- 完了したら、変更を保存し(CTRL + S)、VBAエディターを閉じます。
これで、ナビゲーションフォーム内に独自の分割フォームを追加できます。 やってみて!
破損したアクセスデータベース(.accdb)を修正
Accessデータベースが破損する原因は数多く考えられます。残念ながら、そのほとんどを私たちが制御することはできません。しかし、もし破損してしまった場合でも、復旧する方法はありますのでご安心ください。 DataNumen Inc.は、実行するソフトウェアを作成しました accdb修復。 見てみな。
著者紹介:
Jayme Stackは、のデータ復旧の専門家です。 DataNumen、Inc。は、以下を含むデータ復旧技術の世界的リーダーです。 SQLの回復 と優れた回復ソフトウェア製品。 詳細については、次のWebサイトをご覧ください。 WWW。datanumen.com



