質問
私はアクセスの2007年の形で検索できるコンボボックス.私が新しく記録、更新する必要がある、コンボボックスに追加された商品です。
なっているのでしょうか何か必要となるよう設計されていAfterInsertイベントの形式ができない出いてどのようにお考えですか。
たいのですがrebindのコンボボックスに挿入後、この新しい項目が表示されるのです。
解決
最も簡単な方法で保証することのコンボボックスは、常に最新であるかrequeryのコンボボックスまでを取得します。場合でも、recordsetを更新しまうところは、コンボボックスは常に最新のものにできます。簡単なTheCombobox.RequeryのOnFocusイベントは十分です。
他のヒント
ある二つの答えがここにこのように高効率:
フォームをご利用のAfterInsertイベントRequeryのコンボボックスなどのOnDeleteConfirmます。これは十分な場合、コンボボックスに表示しないデータのユーザーが更新することが更新される必要があるときにこの場合は、この記録を更新しました。
場合は更新のデータが必要に提供することができ、コンボボックスから、それらの意味を追加するrequeryのAfterUpdateイベントの制御に使用されるデータの編集に表示され、コンボボックス。
例えば、コンボボックスにリストには名前のテーブルの使い方法#2のAfterUpdateイベントに!txtFirstNameと!txtLastName,requeryのコンボボックス。ていることができなくなり、運用とつだく互いのrequery.では、サブを見て思ったこと。
Private Sub RequerySearchCombo()
If Me.Dirty Then Me.Dirty = False
Me!MyCombo.Requery
End Sub
その理由だrequeryがある場合のみ実際に更新データに表示され、コンボボックスできまpopulatingのコンボボックスの一覧をテーブルのrequeryることができると長時間の場合は10s1,000sで記録しています。
他の代替省のrequeriesっていた、という空rowsourceのコンボボックスに移植するとき1または2文字入力、フィルタの結果とのコンボの表示に基づく入力文字です。そのまえに使用のコンボボックスのOnChangeイベント:
Private Sub MyCombo_Change()
Dim strSQL As String
If Len(Me!MyCombo.Text) = 2 Then
strSQL = "SELECT MyID, LastName & ', ' & FirstName FROM MyTable "
strSQL = strSQL & "WHERE LastName LIKE " & Chr(34) & Me!MyCombo.Text & Chr(34) & "*"
Me!MyCombo.Rowsource = strSQL
End If
End Sub
上記のコードではお求めの人の名前のコンボボックスに表示する"姓、名".
あの他の重要な点に注意:れば検索の形態への完全なテーブル(またはSQL文がすべての年のデータの記録にテーブル)をブックマークナビに検索ファンドマネージャーは、この方法までお問い合わせください、が必要になるので引きの全体のインデックス検索分野の線としています。の場合には私の想像上のコンボボックスに上記まえに使用FindFirstナビゲートでの記録に対応するMyID値で指MyIDされた場合の引き合いになるだけで、結果として指数ページとしての必要を満たす検索が実際に引き).この問題を解決のためのテーブルにより、数千の記録は約15-20Kでのネットワークボトルネックです。
その場合ではなく、航行経由でブックマークしか使用のコンボボックスのフィルターに結果セットのシングルです。これは、もちろん、非常に効率的かどうかにかかわらず、ご利用中のジェットバックエンサーバーを背ます。で非常に望ましいものであるとの開始をこれらの種類の効率化には、アプリケーションから利用しています。場合はこの限りではありませんかが容易になりupsizeサーバーのバックエン、とか痛くない場合はなるべくその臨界点との大量のデータはこの方法も非効率的にユーザーにも優しい。
今まコンボボックス制御については、なコンボボックス制御commandBar.このコンボボックスは、物件というrowsourceうでなければならないと規定されて価値リストの夫;妻;男;少女またはSQL SELECT命令選択relationDescriptionからTable_relationType).
そしてもう形recordsetなおコンボボックスrecordset.あなたは何をしていない、また、それによって、フォームは、recordset 適切に更新 (afterUpdateイベントだと思い、reinitialiseのrowsourceのコンボボックス制御
場合にはrecordsourceはSQLの命令:
myComboBoxControl.recordsource = _
"SELECT relationDescription FROM Table_relationType"
た場合はその値のリスト
myComboBoxControl.recordsource = myComboBoxControl.recordsource & ";nephew"
ものすべてを見たい要請の非常に不思議に思います。して再帰的(親子)との関係にテーブル?
いため、通常はNotInListイベントへの追加データをコンボと
Response = acDataErrAdded
の更新になります。
アクセスの2007年の開発を参考にすべての内容を含むサンプルコード:http://msdn.microsoft.com/en-us/library/bb214329.aspx
Requeryのコンボボックス形式のアップデート後のイベントを削除します。ボボックスを表する毎にユーザへの変更recordsetであるとにかかわらず、新しい記録、変更、又は削除をします。
ない限りユーザーはんだの変化といっていrequeryのコンボボックスから得のためだけでなく、ユーザー待ちであるnoticable大recordsets)、不要な場合は、recordsetは変わりません。だがこれは全体の形が必要requeriedどん変更するだけでなく、コンボボックス。この異例のシナリオに対する
後の更新:
Private Sub Form_AfterUpdate()
On Error GoTo Proc_Err
Me.cboSearch.Requery
Exit Sub
Proc_Err:
MsgBox Err.Number & vbCrLf & vbCrLf & Err.Description
Err.Clear
End Sub
後削除:
Private Sub Form_Delete(Cancel As Integer)
On Error GoTo Proc_Err
Me.cboSearch.Requery
Exit Sub
Proc_Err:
MsgBox Err.Number & vbCrLf & vbCrLf & Err.Description
Err.Clear
End Sub