過去ログ

                                Page     213
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ▼コンボボックスからコードを検索したいです  およよ 03/2/25(火) 18:52
   ┣Re:コンボボックスからコードを検索したいです  yu-ji 03/2/26(水) 17:39
   ┃  ┗Re:コンボボックスからコードを検索したいです  およよ 03/2/26(水) 18:51
   ┗Re:コンボボックスからコードを検索したいです  JAZZ兵衛 03/2/26(水) 19:02

 ───────────────────────────────────────
 ■題名 : コンボボックスからコードを検索したいです
 ■名前 : およよ
 ■日付 : 03/2/25(火) 18:52
 -------------------------------------------------------------------------
   何度も申し訳ありません(;_;)
教えてください

コンボボックスで名称を選択し、選択された名称からコードを検索してテキストボックスに表示したいのですができません
過去ログから02/12/03付のkeiさんの質問が希望に沿っていると思い、回答のSQLも写してみましたが、実行できないです(T_T)
ADOとDAOの違いも分かっていないのですが、参照設定ではどちらも設定しました
ちなみにコードは下記の通りになります

  Dim dbs_ado As ADODB.Connection
  Dim Mstr_rd As New ADODB.Recordset
'
  Set dbs_ado = CurrentProject.Connection
  Mstr_rd.Open "SELECT 材料CD FROM 材料マスタ WHERE 材料名 ='" & Me!ComboBox & "'", dbs_ado, adOpenDynamic, adLockReadOnly
  Me!TextBox = Mstr_rd!材料CD
  Mstr_rd.Close
  Set dbs_ado = Nothing
'
  Me.Requery

エラーになるのはテキストボックスにコードを挿入する行で、
「要求された名前、または序数に対応する項目がコレクションで見つかりません」
とメッセージが表示されます
どうか教えてくださいm(__)m

 ───────────────────────────────────────  ■題名 : Re:コンボボックスからコードを検索したいです  ■名前 : yu-ji  ■日付 : 03/2/26(水) 17:39  -------------------------------------------------------------------------
   ▼およよ さん:
>コンボボックスで名称を選択し、選択された名称からコードを検索して
>テキストボックスに表示したいのですができません
>過去ログから02/12/03付のkeiさんの質問が希望に沿っていると思い、回答の
>SQLも写してみましたが、実行できないです(T_T)
>ADOとDAOの違いも分かっていないのですが、参照設定ではどちらも設定しました
>ちなみにコードは下記の通りになります
>
>  Dim dbs_ado As ADODB.Connection
>  Dim Mstr_rd As New ADODB.Recordset
>'
>  Set dbs_ado = CurrentProject.Connection
>  Mstr_rd.Open "SELECT 材料CD FROM 材料マスタ WHERE 材料名 ='" & Me!ComboBox & "'", dbs_ado, adOpenDynamic, adLockReadOnly
>  Me!TextBox = Mstr_rd!材料CD
>  Mstr_rd.Close
>  Set dbs_ado = Nothing
>'
>  Me.Requery
>
>エラーになるのはテキストボックスにコードを挿入する行で、
>「要求された名前、または序数に対応する項目がコレクションで見つかりません」
>とメッセージが表示されます

こんにちは。

気になった点。
コンボボックスの名前をComboBoxにされてるようですが、多分、予約語くさい
ので使わないほうがいいと思います。
#エラーはコンボボックス名『ComboBox』を参照せずに
#コンボボックス自体をなんとかしようとしているのからかな?

外してたら、すみません。

 ───────────────────────────────────────  ■題名 : Re:コンボボックスからコードを検索したいです  ■名前 : およよ  ■日付 : 03/2/26(水) 18:51  -------------------------------------------------------------------------
   ▼yu-ji さん:

>こんにちは。
>
>気になった点。
>コンボボックスの名前をComboBoxにされてるようですが、多分、予約語くさい
>ので使わないほうがいいと思います。
>#エラーはコンボボックス名『ComboBox』を参照せずに
>#コンボボックス自体をなんとかしようとしているのからかな?
>
>外してたら、すみません。

レスをありがとうございます
コード中のコンボボックスの名称はわかりやすくするために書いたもので、実際には違う名称を付けています
実際の内容は、材料をコンボボックスで表示→テキストボックスにコード表示→選択した材料から品名を表示→テキストボックスにコード表示→選択した品名から寸法を表示→テキストボックスにコード表示、の流れになります
大分類→中分類→小分類という感じです
材料のほうはROWSOUCEとDLOOKUPでなんとかなりましたが、品名以降は抽出条件が複数になるため、コード記述になります
コードは"0000000"の7桁で、始めの2桁が材料、次の2桁が品名、最後の3桁が寸法になります
品名、寸法は各材料で重複するため、抽出条件はコンボボックスで選んだ材料コードの頭2桁が同じで品名のコンボボックスで選んだ名称のコード、という2条件になります
SQLを理解できていないのでお恥ずかしいですが、どうかアドバイスをお願い致しますm(__)m

 ───────────────────────────────────────  ■題名 : Re:コンボボックスからコードを検索したいです  ■名前 : JAZZ兵衛  ■日付 : 03/2/26(水) 19:02  -------------------------------------------------------------------------
   私、ADOに関して、全く分からないので何とも言えませんが。

>  Dim dbs_ado As ADODB.Connection
>  Dim Mstr_rd As New ADODB.Recordset
>'
>  Set dbs_ado = CurrentProject.Connection
>  Mstr_rd.Open "SELECT 材料CD FROM 材料マスタ WHERE 材料名 ='" & Me!ComboBox & "'", dbs_ado, adOpenDynamic, adLockReadOnly

******
ここで、"レコードがなかったら"という判定が必要では??
******

>  Me!TextBox = Mstr_rd!材料CD
>  Mstr_rd.Close
>  Set dbs_ado = Nothing
>'
>  Me.Requery

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 213