過去ログ

                                Page      13
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ▼テキストの名前??  豆太 02/9/3(火) 15:19
   ┣Re:テキストの名前??  イケガミ 02/9/3(火) 15:41
   ┃  ┣イケガミ さん、ごめんなさい  こうちゃん 02/9/3(火) 15:53
   ┃  ┃  ┗Re:イケガミ さん、ごめんなさい  イケガミ 02/9/3(火) 16:02
   ┃  ┗Re:テキストの名前??  豆太 02/9/3(火) 16:12
   ┃     ┗Re:テキストの名前??  イケガミ 02/9/3(火) 16:29
   ┃        ┗Re:テキストの名前??  豆太 02/9/3(火) 17:06
   ┃           ┣Re:テキストの名前??  イケガミ 02/9/3(火) 17:15
   ┃           ┗Re:別案  イケガミ 02/9/3(火) 17:44
   ┃              ┗Re:別案  こうちゃん 02/9/3(火) 20:14
   ┃                 ┗Re:別案  イケガミ 02/9/3(火) 23:21
   ┃                    ┣ヤバイ!!  豆太 02/9/4(水) 9:11
   ┃                    ┗Re:別案  こうちゃん 02/9/5(木) 9:39
   ┃                       ┗Re:別案  イケガミ 02/9/5(木) 9:47
   ┃                          ┗Re:別案  こうちゃん 02/9/5(木) 9:55
   ┗Re:テキストの名前??  こうちゃん 02/9/3(火) 15:51

 ───────────────────────────────────────
 ■題名 : テキストの名前??
 ■名前 : 豆太
 ■日付 : 02/9/3(火) 15:19
 -------------------------------------------------------------------------
   お世話になります。

今回は、変わった質問なんですが。
テキストボックスを『txt_test1』『txt_test2』『txt_test3』
と名前を付けて作りました。
下のソースのように日付ごとにデータを入てたいです。
ここで、for next文で使用した"a"の値を
テキストの名前の数字に使用したいのですが、
うまく動かすことができません。
どうか救いの手を・・・。


Option Compare Database
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim strSQL As String
Dim a As Long
Dim b As String

Private Sub cmd_ok_Click()

 For a = 1 To 3
  strSQL = "select データ from データ管理 where 月 = '" & txt_test.Value & "' And 日 = '" & a & "';"
    
  Set db = CurrentDb
  Set rs = db.OpenRecordset(strSQL, dbOpenDynaset)
    
  If rs.EOF Then
   MsgBox "ノ〜デ〜タ"
  Else
   Do Until rs.EOF
     txt_t & a & .value = rs!データ(ここです!!)
     rs.MoveNext
   Loop
    End If

    Set db = Nothing
    Set rs = Nothing
  
 Next a
  
End Sub

 ───────────────────────────────────────  ■題名 : Re:テキストの名前??  ■名前 : イケガミ <ikegami_kumamoto@dosule.com>  ■日付 : 02/9/3(火) 15:41  -------------------------------------------------------------------------
   テーブル:データ管理
 フィールド:データ
にあるレコードの1〜3件目をテキストボックスに表示したいということ?

テキストボックスの参照に変数を使う場合は、
Me.Controls("txt_test" & a) = rs!データ
のようにします。

テーブルの中身とテキストボックスにどう表示したいのかを
具体的に教えてください。

 ───────────────────────────────────────  ■題名 : イケガミ さん、ごめんなさい  ■名前 : こうちゃん <nakajima19@hotmail.com>  ■日付 : 02/9/3(火) 15:53  -------------------------------------------------------------------------
   イケガミ さん、こんにちは
また、かぶっちゃいましたm(__)m
(オンラインで書いてたんで・・)

 ───────────────────────────────────────  ■題名 : Re:イケガミ さん、ごめんなさい  ■名前 : イケガミ <ikegami_kumamoto@dosule.com>  ■日付 : 02/9/3(火) 16:02  -------------------------------------------------------------------------
   こうちゃん さん、こんにちは。

>また、かぶっちゃいましたm(__)m
それはいいのですが、今だに質問の内容がわからなくて。。
これは、For〜Next 文とDo〜Until 文のつながりを見るとおかしいですよね。。
これだと、レコードセットの最終データがテキストボックスに入るだけですので。。

 ───────────────────────────────────────  ■題名 : Re:テキストの名前??  ■名前 : 豆太  ■日付 : 02/9/3(火) 16:12  -------------------------------------------------------------------------
   ▼イケガミ さん:
>テーブルの中身とテキストボックスにどう表示したいのかを
>具体的に教えてください。

月    日    データ
8    1    123
8    2    112233
8    3    111222333

上のテーブルから8/1,8/2,8/3のデータを
それぞれテキストに入れるだけです・・・。

 ───────────────────────────────────────  ■題名 : Re:テキストの名前??  ■名前 : イケガミ <ikegami_kumamoto@dosule.com>  ■日付 : 02/9/3(火) 16:29  -------------------------------------------------------------------------
   > 月    日    データ
> 8    1    123
> 8    2    112233
> 8    3    111222333

は、必ず1日に1レコードしかないのでしょうか?

で、
> txt_test.Value
には、抽出条件の月があって、
> 『txt_test1』『txt_test2』『txt_test3』
に上記テーブルより入れたいということ?

 ───────────────────────────────────────  ■題名 : Re:テキストの名前??  ■名前 : 豆太  ■日付 : 02/9/3(火) 17:06  -------------------------------------------------------------------------
   ▼イケガミ さん:
>> 月    日    データ
>> 8    1    123
>> 8    2    112233
>> 8    3    111222333

>は、必ず1日に1レコードしかないのでしょうか?

はい。必ず1レコードです。

>で、
>> txt_test.Value
>には、抽出条件の月があって、
>> 『txt_test1』『txt_test2』『txt_test3』
>に上記テーブルより入れたいということ?

その通りです。

 ───────────────────────────────────────  ■題名 : Re:テキストの名前??  ■名前 : イケガミ <ikegami_kumamoto@dosule.com>  ■日付 : 02/9/3(火) 17:15  -------------------------------------------------------------------------
   > その通りです。
でしたら、↓の方法でできませんでしたか?

イケガミ - 02/9/3(火) 15:41 -
> テキストボックスの参照に変数を使う場合は、
> Me.Controls("txt_test" & a) = rs!データ
> のようにします。
こうちゃん - 02/9/3(火) 15:51 -
>      Me.Controles("txt_test" & a).value = rs!データ
> 'txt_testとtxt_tは、どっちがほんと?実際のもので試験してみてね。

#同じ内容ですけど。。

 ───────────────────────────────────────  ■題名 : Re:別案  ■名前 : イケガミ <ikegami_kumamoto@dosule.com>  ■日付 : 02/9/3(火) 17:44  -------------------------------------------------------------------------
   > OpenRecordset
をループの中でするのはあんまり効率的じゃないと思いますので、
別の方法です。(確認してませんので間違っているかも。。)

---------------------------------------------------------------------
Set db = Currentdb
Set rs = db.OpenRecordset("データ管理",dbOpenDynaset)

For a = 1 To 3
  rs.FindFirst "[月]='" & Me!txt_test & "' And 日='" & a & "'"
  If rs.Nomatch Then
    Msgbox "ノーデータ:" & a & "日分"
    Exit For
  Else
    Me.Controls("txt_test" & a) = rs!データ
  End If
Next a

Set rs = Nothing
Set db = Nothing
---------------------------------------------------------------------

 ───────────────────────────────────────  ■題名 : Re:別案  ■名前 : こうちゃん <nakajima19@hotmail.com>  ■日付 : 02/9/3(火) 20:14  -------------------------------------------------------------------------
   豆太さん、イケガミ さん、こんばんは

わかっているとは思いますが、SQL文も修正する必要があります。
念のためSQL文も書いときましょ(^^)

>---------------------------------------------------------------------

strSQL = "select データ, 月, 日 from データ管理 where 月 = '" & _
txt_test.Value &"' "

>Set db = Currentdb
>Set rs = db.OpenRecordset("データ管理",dbOpenDynaset)
>
>For a = 1 To 3
>  rs.FindFirst "[月]='" & Me!txt_test & "' And 日='" & a & "'"
>  If rs.Nomatch Then
>    Msgbox "ノーデータ:" & a & "日分"
>    Exit For
>  Else
>    Me.Controls("txt_test" & a) = rs!データ
>  End If
>Next a
>
>Set rs = Nothing
>Set db = Nothing
>---------------------------------------------------------------------


'もし毎日のデータがあることが確実なら、こんなループでもいいかも・・
'日フィールドが主キーに含まれていないと順番は不定になるので ORDER BY 句追加
strSQL = "select データ from データ管理 where 月 = '" & txt_test.Value & "' "
strSQL = strSQL & " order by 日;"

Set db = CurrentDb
Set rs = db.OpenRecordset("データ管理", dbOpenDynaset)

a = 1
Do Until (rs.EOF And a > 3)
  Me.Controls("txt_test" & a).Value = rs!データ
  a = a + 1
  rs.MoveNext
Loop

Set rs = Nothing
Set db = Nothing

End Sub

#同様に試験はしておりません。^^;

 ───────────────────────────────────────  ■題名 : Re:別案  ■名前 : イケガミ <ikegami_kumamoto@dosule.com>  ■日付 : 02/9/3(火) 23:21  -------------------------------------------------------------------------
   To こうちゃん さん

こんばんは。

>わかっているとは思いますが、SQL文も修正する必要があります。
>念のためSQL文も書いときましょ(^^)
直接テーブルを開いてますけど。。


>strSQL = "select データ, 月, 日 from データ管理 where 月 = '" & _
>txt_test.Value &"' "


>>Set db = Currentdb
>>Set rs = db.OpenRecordset("データ管理",dbOpenDynaset)

でも、Order By を指定したSQLを使った方がいいかな??

 ───────────────────────────────────────  ■題名 : ヤバイ!!  ■名前 : 豆太  ■日付 : 02/9/4(水) 9:11  -------------------------------------------------------------------------
   イケガミ さん こうちゃん さん おはようございます。

いろいろな修正、やり方を教えていただきながら
お礼が遅れてすいませんでした。
少々、ネットの調子が思わしくなくて・・・。
まだ、試していないんですが先にお礼だけで失礼します。。

 ───────────────────────────────────────  ■題名 : Re:別案  ■名前 : こうちゃん <nakajima19@hotmail.com>  ■日付 : 02/9/5(木) 9:39  -------------------------------------------------------------------------
   To イケガミ さん

こんにちは

>直接テーブルを開いてますけど。。
はい、存じておりますが、テーブルには「経常的に使うとすれば他の月データも含まれている」という前提で考えたので、データを絞ったほうが処理的に早いのかな?と感じたものですから・・
#クライアント/サーバ形式で使うことが多いので、クエリは必要最小限のレコードを返すように考える癖がついてます^^;

>でも、Order By を指定したSQLを使った方がいいかな??
まあ、「念のため」ってことで・・^^;

 ───────────────────────────────────────  ■題名 : Re:別案  ■名前 : イケガミ <ikegami_kumamoto@dosule.com>  ■日付 : 02/9/5(木) 9:47  -------------------------------------------------------------------------
   To こうちゃん さん
>>直接テーブルを開いてますけど。。
>はい、存じておりますが、テーブルには「経常的に使うとすれば他の月データも含まれている」という前提で考えたので、データを絞ったほうが処理的に早いのかな?と感じたものですから・・

> >---------------------------------------------------------------------
>
> strSQL = "select データ, 月, 日 from データ管理 where 月 = '" & _
> txt_test.Value &"' "
>
> >Set db = Currentdb
> >Set rs = db.OpenRecordset("データ管理",dbOpenDynaset)
Set rs = db.OpenRecordset(strSQL,dbOpenDynaset)

こちらも修正しないとダメですね。
#SQLで絞って検索するなら。。

 ───────────────────────────────────────  ■題名 : Re:別案  ■名前 : こうちゃん <nakajima19@hotmail.com>  ■日付 : 02/9/5(木) 9:55  -------------------------------------------------------------------------
   イケガミ さん、こんにちは
>>Set rs = db.OpenRecordset("データ管理",dbOpenDynaset)
>Set rs = db.OpenRecordset(strSQL,dbOpenDynaset)
>
>こちらも修正しないとダメですね。
>#SQLで絞って検索するなら。。

そですね、忘れてました、ごめんなさい(^^;)

 ───────────────────────────────────────  ■題名 : Re:テキストの名前??  ■名前 : こうちゃん <nakajima19@hotmail.com>  ■日付 : 02/9/3(火) 15:51  -------------------------------------------------------------------------
   豆太 さん、こんにちは

>Private Sub cmd_ok_Click()
>
> For a = 1 To 3
>  strSQL = "select データ from データ管理 where 月 = '" & txt_test.Value & "' And 日 = '" & a & "';"
>    
>  Set db = CurrentDb
>  Set rs = db.OpenRecordset(strSQL, dbOpenDynaset)
>    
>  If rs.EOF Then
>   MsgBox "ノ〜デ〜タ"
>  Else
>   Do Until rs.EOF
>     txt_t & a & .value = rs!データ(ここです!!)
     Me.Controles("txt_test" & a).value = rs!データ
'txt_testとtxt_tは、どっちがほんと?実際のもので試験してみてね。

>     rs.MoveNext
>   Loop
>    End If
>
>    Set db = Nothing
>    Set rs = Nothing
>  
> Next a
>  
>End Sub

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