Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


9298 / 9994 ←次へ | 前へ→

【3836】コンボボックスの設定について
質問  Kirin  - 04/11/10(水) 17:55 -

引用なし
パスワード
   今、顧客データベースを作成しています。
個人情報を蓄積する「tbl個人情報」と、検索の為の「frm検索」フォームと、入力の為の「frm情報入力」フォームが、メインとなっています。
これ以外に、「tbl年賀」テーブルと「tbl担当者」テーブルを持っていて、下のようなリレーションで結ばれています。

[tbl個人情報]]テーブル([顧客ID]が主キー)
[顧客ID][顧客名][顧客住所][・・・etc]

[tbl担当者]テーブル([担当ID]が主キー)
[担当ID][名前]

[tbl年賀]テーブル([発送ID]が主キー)
[発送ID][顧客ID][担当ID][発送年]
⇒[担当ID][tbl年賀]と、[担当ID][tbl担当者]はりレーション
 [顧客ID][tbl年賀]と、[顧客ID][tbl個人情報]はりレーションを結び、[tbl年賀]を作る時にルックアップウィザードを使いました。

今、[frm検索」で、[tbl年賀]から、[担当]と[発送年]をコンボボックスにし、例えば「04年に担当Aさんが発送したリスト」を[tbl個人情報]から取り出して、
[frm個人情報表示]フォームに表示させたいと思っています。

ここで、[担当]コンボボックスのプロパティの「データ」/「値集合ソース」に、
SELECT [tbl担当].[担当ID], [tbl担当].[担当] FROM [tbl担当]
とすると、コンボの値には、確かに担当の名前が表示され、選ぶことはできますが、最終的に抽出をするSQLを作った時に、何の関係もなくなってしまいそうです。

[frm検索]フォームには、最終的に選んだ条件を表示させる為の「cmd表示」コマンドボタンを置き、イベントプロシージャで以下のSQLを書きましたが、
動作させると「パラメータ」値を聞いてきてエラーになり、欲しい値が抽出されません。
下に、書いてみた文をペーストしてみます。

コンボの設定と、SQLの書き方が間違っていると思うのですが、どう間違っているのか、どう直したらいいのかが全く分かりません。
長くなってしまって申し訳ありませんが、宜しくお願い致します。
-------------------------------------------------------------
Private Sub cmd表示_Click()
On Error GoTo Err_cmd表示_Click

 Dim stDocName As String
 Dim strSQL As String
 Dim strWhere As String
 
 stDocName = "frm個人情報リスト"
 
 strSQL = "select * from tbl個人情報"
 
 strWhere = ""
  
 If Not IsNull(Me.担当) Then
 strWhere = strWhere & " and 担当 = " & Me.担当
 End If
 
 If Not IsNull(Me.年) Then
 strWhere = strWhere & " and 年 = " & Me.年
 End If
 
 If Me.Check = True Then
 strWhere = strWhere & " and Check = True "
 End If
 
 If strWhere <> "" Then
 
 strWhere = Mid(strWhere, 6)
 
 If DCount("*", "[tbl個人情報]", strWhere) = 0 Then
  MsgBox ("該当データはありません。")
  Exit Sub
 End If
 
 strSQL = strSQL & " WHERE(( " & strWhere & " ));"
 
 End If
 
 DoCmd.Echo False, "個人情報リスト準備中・・・"
 
 DoCmd.OpenForm stDocName, , , , acFormReadOnly
 DoCmd.SelectObject acForm, stDocName
 DoCmd.Minimize
 
 Forms(stDocName).RecordSource = strSQL
 DoCmd.SelectObject acForm, stDocName
 DoCmd.Maximize
 
 DoCmd.Echo True
 
Exit_cmd表示_Click:
 Exit Sub
 -----------------------------------------------------------------------

Err_cmd表示_Click:
 MsgBox Err.Description
 Resume Exit_cmd表示_Click
 
 End Sub

764 hits

【3836】コンボボックスの設定について Kirin 04/11/10(水) 17:55 質問
【3838】Re:コンボボックスの設定について クロ 04/11/11(木) 11:46 発言
【3839】Re:コンボボックスの設定について Kirin 04/11/11(木) 13:09 発言
【3840】Re:コンボボックスの設定について クロ 04/11/11(木) 13:15 回答
【3844】Re:コンボボックスの設定について Kirin 04/11/11(木) 17:49 質問
【3846】Re:コンボボックスの設定について クロ 04/11/12(金) 8:41 回答

9298 / 9994 ←次へ | 前へ→
ページ:  ┃  記事番号:
1078269
(SS)C-BOARD v3.8 is Free