Access VBA質問箱 IV

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

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


1483 / 2272 ツリー ←次へ | 前へ→

【6902】5択問題 なお 05/12/5(月) 12:37 質問[未読]
【6907】Re:5択問題 小僧 05/12/5(月) 14:55 回答[未読]
【6931】Re:5択問題 なお 05/12/8(木) 11:58 質問[未読]
【6933】Re:5択問題 小僧 05/12/8(木) 13:19 発言[未読]
【6939】Re:5択問題 なお 05/12/8(木) 15:35 質問[未読]
【6955】Re:5択問題 小僧 05/12/12(月) 15:21 発言[未読]

【6902】5択問題
質問  なお  - 05/12/5(月) 12:37 -

引用なし
パスワード
   初めましてこんにちは。
今、5択問題を作っています。
毎回違う5択問題を作りたかったのでRND関数をクエリに使いました。
そして上から5個を表示させてあります。
この5個のデータをフォームに作ったテキストボックス5個に
それぞれ表示させることがなかなかできません。
VBはどうやって組むといいのでしょうか?

【6907】Re:5択問題
回答  小僧  - 05/12/5(月) 14:55 -

引用なし
パスワード
   ▼なお さん:
こんにちは。

>この5個のデータをフォームに作ったテキストボックス5個に
>それぞれ表示させることがなかなかできません。

連結フォームで行うのでしたら、帳票フォームで実現できると思います。
ですが、見かけ上は 5つのテキストボックスが表示されますが、
実体は 1つのテキストボックスしかない為、多少扱いにくくなります。

非連結フォームで行うためには、AccessVBAにてレコードセットを
使いながらフォームにセットしていく事になります。

フォーム上のテキストボックスの名前を
「txt設問1」「txt設問2」「txt設問3」「txt設問4」「txt設問5」として
フォームの読み込み時に以下のコードを記述されてみて下さい。

Private Sub Form_Load()
'要参照 Microsoft DAO x.x Object Library
Dim RS As DAO.Recordset
Dim QName As String
Dim i As Long

  QName = "Q_設問"  'RND関数を用いてソートしたクエリ名

  Set RS = CurrentDb.OpenRecordset(QName)
    For i = 1 To 5
      Me.Controls("txt設問" & i).Value = RS![設問]
      RS.MoveNext
    Next
  RS.Close: Set RS = Nothing
End Sub

【6931】Re:5択問題
質問  なお  - 05/12/8(木) 11:58 -

引用なし
パスワード
   お返事ありがとうございます。今やってみました♪
やってみたのですが↓のMe.Controls("txt設問" & i).Value = RS![設問]
で、エラーが出ます。なぜでしょうか??


Option Compare Database

Private Sub Form_Load()
'要参照 Microsoft DAO x.x Object Library
Dim RS As DAO.Recordset
Dim QName As String
Dim i As Long

  QName = "略語3級"

  Set RS = CurrentDb.OpenRecordset(QName)
    For i = 1 To 5
      Me.Controls("txt設問" & i).Value = RS![設問]
      RS.MoveNext
    Next
  RS.Close: Set RS = Nothing
End Sub

Private Sub コマンド10_Click()

End Sub

【6933】Re:5択問題
発言  小僧  - 05/12/8(木) 13:19 -

引用なし
パスワード
   ▼なお さん:
こんにちは。

>エラーが出ます。なぜでしょうか??
>      Me.Controls("txt設問" & i).Value = RS![設問]

この行は、

フォーム上の txt設問1 というコントロール(テキストボックス)に
クエリ 略語3級 の 設問 というフィールドの値を代入する。

という作業をしています。


フォーム上に txt設問1(〜5)という名前のコントロールがない。
クエリ 略語3級 に 設問 というフィールドがない。

のどちらかだと思われますがいかがでしょうか。

※エラーがでます、だけではなく、どのようなエラー内容かを記載して頂くと
 より的確な回答がつき易くなると思われますよ。

【6939】Re:5択問題
質問  なお  - 05/12/8(木) 15:35 -

引用なし
パスワード
   ごめんなさい。
エラーは『デバッグ』という言葉が出てきます。
そして、さっきの1行のバックが黄色くなります。
「クエリにフィールドが見つかりません」とも出たので、
クエリを作ってみたりもしましたが上手く行きません。

【6955】Re:5択問題
発言  小僧  - 05/12/12(月) 15:21 -

引用なし
パスワード
   ▼なお さん:
こんにちは。

>毎回違う5択問題を作りたかったのでRND関数をクエリに使いました。
>そして上から5個を表示させてあります。

5個以上ある設問のうち、クエリに TOP 句を使ってランダムに5問抽出、
という訳ではないのでしょうか。

ちょっと当方では なお さんの作られているテーブルの構造が解りかねますので、
宜しかったら

テーブル構造
クエリ(SQL ビューで表示されるもの)

をご提示して頂けると何かヒントになるかもしれません。

1483 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078229
(SS)C-BOARD v3.8 is Free