• ベストアンサー

access の テキストボックス名を変数として取り扱いできませんか

picklseの回答

  • ベストアンサー
  • picklse
  • ベストアンサー率65% (26/40)
回答No.3

フォーム上にテキストボックス"かるた0"~"かるた99"を配置しているとします(処理を簡単にするために1桁の数値は0~9としています)。 また、レコードは整列Noにランダムに0~99までの数値を振り、これが昇順になるように並べ替えられているものとします。 Private Sub Sample() Dim i As Integer Dim MyCtrl As Control For i = 0 To 99 For Each MyCtrl In Controls If MyCtrl.Name = "かるた" & i Then MyCtrl.SetFocus MyCtrl.Text = 下の句 DoCmd.GoToRecord , , acNext End If Next Next i End Sub 実際にデータを準備して確認はしていませんが、これでご希望の動作をするはずです。

shinkami
質問者

お礼

大成功、完璧です!!! 感謝します。

関連するQ&A

  • access テキストボックスをクリックして 可視=false にするには

    よろしくお願いします。 かるた取り(百人一首)のゲームを作っています。 下の句のテキストボックス(かるた0~かるた99)を画面に配置しました。 上の句を表示して、これに合った下の句のテキストボックスをクリックしたときにこのボックスを画面から消し去るにはどうすればよいのでしょうか Private Sub かるた0_Click() If かるた0 = 中句 Then かるた0.Visible = False カードめくり Else MsgBox ("お手つき") End If End Sub としましたが、以下のようなエラーメッセージです。 「コントロールがフォーカスのときはコントロールを非表示にすることは出来ません」 カーソルを移動すればよいと思うのですが、コーディングで移動する方法を教えてください。

  • Access2000で変数が初期化されないようにする

    フォームを開く際にインプットボックスで担当者名を入れて変数に格納、そのフォームにおけるレコードの登録ごとに、その担当者名をあるテーブルのあるフィールドに毎回入れようとしているのですが、1レコード目はいいのですが、2レコード目以降は変数が初期化されてしまうらしくエラーが出ます。そのような場合に静的変数?を使ったような気がするのですが、どのようにコーディングするのでしょうか?どなたか教えて下さい。よろしくお願いします。

  • テキストボックスの書式について

    Access97を使用しています。レベルはかなり低い初心者です。 「フォーム」のテキストボックスに単語や文章を入力し、「レポート」で出力するのですが、 句読点が行頭に来たり、問答無用で上配置になったりとかなり見栄えが悪くなってしまっています。 「フォーム」は入力するだけなので何とかガマンするとしても、 「レポート」のテキストボックスで、禁則処理や文字配置などの設定はできないものでしょうか。 横方向の配置はツールバーで簡単に修正できるのですが、縦方向の修正方法がわかりません。 そういえばWord97のテキストボックスも縦配列はできなかったような気が…Excelは「プロパティ」で設定できたけど。 詳しい方、お返事お願いします。

  • EXCEL VBA で範囲名を変数として扱えますか?

    チョット的が外れているかも知れませんが、教えてください。VBAはマクロの記録をちょこっと訂正しながら使える程度です。 ワークシートのA1に商品1、B1に商品2、C1に商品3という範囲名(名前)を定義しました。 次にユーザーフォームにテキストボックス1とテキストボックス2を配置してテキストボックス1に「1」を入れるとテキストボックス2には商品名1の内容が「2」を入力すると商品名2の内容が表示されるようにしたいのです。多分、IF文などで処理する方が合理的だとは思うのですが、 SyouHin = "商品" & me.textbox1.Value me.textbox2.Value = SyouHin みたいに、範囲名を変数にして扱うことはできるのでしょうか?その時にはSyouHinの変数のタイプは文字列(string)とするのでしょうか? 少し、背伸びをして勉強を始めたのですがうまくいきません。 もしかして、全然ピントのはずれている質問かも知れません。また、文章が下手で伝わらないかも知れませんが、よろしくお願いします。

  • 変数名の付け方について

    例えば<input type="text" name="aaa">というフォームからのPOSTを受け取るとき、 自分はよく $aaa = $_POST['aaa']; のようにするのですが、変数名とフォームの名前を重複させるのは良くないでしょうか。 またPHPに限らずですが、別のスコープで同じ変数名を使い回すのは問題ないでしょうか。 グローバル変数は慎重に考えますが、ローカル変数はついhogeやtestを使い回してしまいます。 初心者なもので分かりにくい文章になったかもしれませんが、ご教授お願いします。

    • 締切済み
    • PHP
  • Access2000でTextBox変数の代入

    Access2000でTextBox変数を作成し、条件に応じて フォーム上に配置した2つのテキストボックスをその変数に代入したいのですが、うまくいきません。 Public tBox as TextBox If i = 1 Then Set tBox = テキスト1 ElseIf i = 2 Then Set tBox = テキスト2 End if ※ テキスト1、テキスト2はフォーム上に配置した テキストボックスの名称 このコードを実行すると、テキスト1は テキスト1.Textと解釈され、Textプロパティに何も設定 されていない場合、tBoxにはNULLが代入されます。 Textプロパティの値ではなく、テキストボックスオブジェクトそのものを変数に代入するにはどうすればよいのでしょうか。 ご教授お願いします。 環境は OS:Windows2000 Professional   Access2000 です。

  • テキストボックスに入力された値を取得する方法

    よろしくお願いします。 フォームにテキストボックスを配置し、ユーザーに文字を入力してもらいます。 OKボタンを押すと、その文字を取得できるようにしたいです。 VBだと・・・ Textbox1.value = a (aは変数) みたいな感じで変数に代入するだけでよかったと思うんですが・・・ どのように書いたら良いでしょうか?

    • ベストアンサー
    • Java
  • ACCESSのフォームからレポートへの変数の引渡し

    フォームで定義した変数をレポートに渡して利用したいがうまく渡せません。 具体的にはクエリー名をレコードソースとして利用するために変数に入れて渡そうとしています。 [フォーム]での変数定義 Dim 抽出種別 as String -----(1) 抽出種別 = "Q抽出未回収" -----(2) [レポート]開く時のイベントプロシージャー Private Sub Report_Open(Cancel As Integer) Me.RecordSource = 抽出種別 -----(3) End Sub 実行結果は印刷の各フィールドの項目に #Name? と表示されてしまいます。 (3)で変数を使わずに"Q抽出未回収"とやるとうまくプレビューされます。 変数の定義の方法や場所などいまいち理解が出来ていないものと思います。 フォームからレポートへの変数の引渡しはどうやってやればうまく出来るのでしょうか?

  • 【ACCESS2003】サブフォーム名を変数に入れたい

    ACCESS2003で開発しています。 ひとつのフォーム(Form1)にサブフォームを10個(SubForm01からSubForm10まで)配置しており、そのフォーム内のボタンで1つのサブフォームを切り替え表示するようにしています。 サブフォーム部分だけがページ遷移しているように見えるような感じのことしたいので、こんな面倒なことをやっています。 各サブフォームの処理は全く一緒なのですが、サブフォームが10個もある為に同じ処理をForm1に10まとまり書かないといけないので、サブフォームの名前を変数にできないかなと考えていますがやり方がわかりません。 下記ソースで色々試してみたのですが、だめでした。 具体的にはサブフォーム(SubForm01~SubForm10まで)のテキストボックス(txtBox1~txtBox30)に順に値を入れたいということです。 教えてください。 Dim strPageCnt As String 'サブフォームの番号 '(処理省略)ここでstrPageCntに01から10までのいずれかの値を放り込んでいます。 For i = 1 To rs.RecordCount 'レコードセット最大値までループ '↓ここでサブフォーム名を変数に入れる    strSubForm = frmLOT31010_SubForm & strPageCnt '↓この方法もだめ    Forms!Form1!strSubForm!txtBox(i).Value = rs("NO").Value    '↓この方法もだめ    Forms!Form1!SubForm("strPageCnt")!txtBox(i).Value = rs("NO").Value '↓これもだめ    Forms!Form1!SubForm(strPageCnt)!txtBox(i).Enable = False    '↓これもだめ Forms!Form1!SubForm(strPageCnt)!txtBox(i + 1).SetFocus next どのようにすればサブフォームの名前を変数に入れて、なおかつサブフォーム名を可変にし(ここで言うところのサブフォームの最後の数値を変えて)サブフォームが扱えるようになりますか? 教えてください。よろしくお願いいたします。

  • コンポジット型の変数?

    PL/SQL参考本を読み始めているのですが 「コンポジット型の変数」というとろこで質問があります。 コレクションを使った変数定義というのを見ているのですが その定義内容について教えてください。 参考本では下記のような定義を行っていました。 DECLARE TYPE hosttable_type IS TABLE OF VARCHAR2(15)      INDEX BY VARCHAR2(32); ・・・(1) host_table hosttable_type; ・・・(2) 「コレクションとは一般的なプログラミング用語の配列にあたる」 との解説がありましたが 上記の変数定義でどの部分が配列変数の宣言にあたるのですか? (1)が配列変数の宣言部分で (1)の「INDEX BY VARCHAR2(32)」では添字の長さを指定し 「TYPE hosttable_type IS TABLE OF VARCHAR2(15)」では 実際配列に格納する値の長さを指定してる という意味なのでしょうか??? サイトなどを調べてみてはいるのですが 自分ひとりではどうも解決できなくて。。。 どなたかお力をお貸しください!