2017-10-31 10 views
0

私はID、RoomId、チェックイン、チェックアウト とRoomIdとtbl_Rooms、Room_Type室状況は、MSアクセスをフィールド

tbl_Bookingで

RoomIdは、コンボボックスは、値集合ソースがtbl_RoomsであるRoomId

とテーブルtbl_Bookingを持っています

私のアイデアは、CheckInとCheckOutの日付を選択すると、RoomIdのコンボボックスがその日付範囲内の空き部屋のみを表示するときです。

+0

私はあなたがリストをフィルタリングする意味を推測、私達にあなたの現在の行ソースを表示します。?コンボボックスと日付コントロールの名前 –

+0

いくつかの情報を必要とする場合は、これより多くの情報を提供する必要があります 助けて。質問に提供する内容の詳細については、[最小限の、完全で検証可能な例の作成方法](https://stackoverflow.com/help/mcve)を参照してください。 –

答えて

0

コンボボックスのRoomIDでリンクされた左側の結合クエリを作成する必要があると思います。クエリで、CheckInとCheckOutの両方を条件として追加します。空室の場合、CheckInとCheckOutの日付はnullにする必要があります.On、CheckInとCheckOutの日は、入力した日付よりも前または後です。衝突を防ぐために

0

、ここでのロジックは非常に簡単です:

RequestStartDate <= EndDate 
and 
RequestEndDate >= StartDate 

上記のように、むしろ単にクエリであるが、任意の衝突が発生した場合に、意志上記 :とき

衝突が発生しましたレコードを返す。上記に基づいて、上記のいずれかの場合に予約が行われないようにするだけです。

したがって、コードでクエリを作成し、そのクエリをコンボボックスに割り当てることができます。 コード内にコンボボックスを配置することができます:

dim strWhere      as string 
dim dtRequeestStartDate  as date 
dim dtRequestEndDate   as date 


dtRequestStartDate = inputbox("Enter start Date") 
dtRequestEndDate = inputbox("Enter end date") 


strWhere="#" & format(dtRequestStartDate,"mm/­dd/yyyy") & "# <= EndDate" & _ 
" and #" & format(dtRequestEndDate,"mm/dd­/yyyy") & "# >= StartDate" 


if dcount("*","tableBooking",strW­here) > 0 then 
    msgbox "sorry, you cant book 
...bla bla bla.... 

としては、あなたが上記の基準とか、それを直接コンボボックスにして、SQL文字列を構築することができます指摘

関連する問題