- ベストアンサー
アクセス フィールド名に変数を付け加えて参照する
OS:Win7Pro 使用ソフト:アクセス2010 ご質問させていただきます。 テーブルに以下のようなフィールドがあるとします。 [単価_1],[単価_2],[単価_3],[単価_4],[単価_5] これらのフィールドのアンダーバー以下を変数を使用して参照することは可能でしょうか? ([単価_○]の○の部分を変数を使用して参照したいです。) 自分なりに以下のコードを作成したらダメでした。。 Dim cnt As Integer cnt=1 with me !単価_(cnt) end with ご存知の方がいましたらご教授いただけるとありがたいです。
- mrkj
- お礼率61% (43/70)
- その他(データベース)
- 回答数1
- ありがとう数1
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
With Me Debug.Print .Controls("単価_" & cnt) End With とか。 Me("単価_" & cnt) でも参照できます。
関連するQ&A
- Access クエリで変数を参照するとき
モジュールのPublic変数をクエリから参照するとき、 Public Function getdata() As Integer getdata = 1 End Function と記述しておけき、 クエリの抽出条件をgetdata()にしておくと クエリの抽出条件に 「1」 と書いたのと同じになりますが、 クエリの抽出条件の欄に「1 Or 2 Or 3」とした時と同じ状況を作りだしたい時、 モジュールの方には Public Function getdata() As Integer getdata = 1 Or 2 Or 3 End Function 「・・・・Integer」ではマズイわけで、なんと記述したらよいか教えて下さい。
- 締切済み
- Visual Basic
- 別のSubで宣言されている変数を別のSubで参照
よろしくお願いいたします。 環境:Excel2003 以下のようなイメージで別Sub内で宣言された変数を同じ変数名で別のSub内で参照したいです。 Sub hoge() nn As Integer nn = 1 End Sub Sub hogehoge() MsgBox (nn) End Sub Sub hogehogehoge() Call hoge Call hogehoge End Sub エラーが発生する為、typeについて検索をかけてみました所、以下のような変数参照方法は出てきましたが、別のSubで宣言されている変数を同じ変数名で別のSub内で参照する方法はないでしょうか? Type PData hoge As String hogehoge As Long End Type Sub Sample1() Dim Pppp(5) As PData End Sub よろしくお願いいたします。
- ベストアンサー
- その他MS Office製品
- アクセスでクロス集計をレポートにする方法
一応過去質問を調べましたがうまくいかず、よろしくお願いします。 3種類のテーブルをもとに、それぞれについて3種類のクロス集計を行い、 その3つのクエリを一つのクエリにしました。この選択クエリを作る際は、 *をドラッグして全てのフィールドを表示させています。 そのクエリをレコードソースとして、 空のラベル、テキストボックスを必要数置いて以下のようにレポートを作成しましたが、うまくいきません。 どなたか、ご指導ください。 Private Sub Report_Open(Cancel As Integer) Dim db As DAO.Database Dim qd As DAO.QueryDef Dim cnt As Integer Dim fld As DAO.Field Set db = CurrentDb() Set qd = db.QueryDefs(Me.RecordSource) For cnt = 1 To qd.Fields.Count - 1 Set fld = qd.Fields(cnt) Me("Label" & cnt).Caption = fld.Name Me("Field" & cnt).ControlSource = fld.Name Next End Sub
- 締切済み
- その他MS Office製品
- 変数
Dim トータル As Integer トータル = 200 Dim 変数1(トータル) As Integer Dim 変数2(トータル) As Integer Dim 変数3(トータル) As Integer Dim 変数4(トータル) As Integer ※変数1~4に同じ数の変数(クローン??)を用意したいのですがエラーがでます。 このような使い方は出来ないのでしょうか? なお、VB上ではローマ字で使っています。 変数は6個ぐらいあり 毎回変えるのは面倒なので・・・ (スパイラルモデル方式??といっても使うのは私自信ですが・・・)
- ベストアンサー
- Visual Basic
- ExcelのAutoFilter への変数の使用がうまく行きません!
ExcelのAutoFilter への変数の使用がうまく行きません! Windows XP Home Edition SP3 Office XP Personal 2002 Excel 2002 下記の NNN に 「 InputBox に 入力した整数 」 を変数で使用したいのですが、 どのようにすればよろしいでしょうか? 何卒、ご教示のほどをお願い致します。 Sub TEST1() Dim NNN As Integer Dim msg As String Dim i As Integer Application.ScreenUpdating = False msg = "【整数】 を入力してください。" NNN = InputBox(msg) If ActiveSheet.AutoFilterMode Then With ActiveSheet.AutoFilter For i = 88 To 90 .Range.Rows(1).Cells(i).AutoFilter Field:=i, Criteria1:="<=NNN" '←この NNN です Next i End With End If Application.ScreenUpdating = True End Sub
- ベストアンサー
- オフィス系ソフト
- ラベルなどオブジェクトを変数で指定する
環境はVB2012です。 N個の値を持った変数をN個のラベルに表示したいのですが、今のところ Select Case を使用してずらずらと列記しています。とても面倒くさいし可読性も悪いし、ミスもよく起こすので、内容を変更するラベルの指定を変数でできない物かと思いました。 以下のコードの場合、child0.Text、child1.Textというように名前+No.という構成になっています。最終的にはchild(i).Textといったように数値変数で直接指定できればと思います。 過去にはコントロール配列などがあるようでしたが、このバージョンでは今ひとつ分かりません。 Dim child_string(N) As String Dim cnt_1 As Integer Dim cnt_2 As Integer Dim fitness(N) As Integer For cnt_1 = 0 To 9 Select Case cnt_1 Case 0 Me.child0.Text = child_string(cnt_1) Me.fitness0.Text = fitness(cnt_1) Case 1 Me.child1.Text = child_string(cnt_1) Me.fitness1.Text = fitness(cnt_1) Case 2 Me.child2.Text = child_string(cnt_1) Me.fitness2.Text = fitness(cnt_1) ’##################################### 同様の物が100個とか200個とかずらずら並ぶ。 下ではその数をNとする。 ’##################################### Case N Me.childN.Text = child_string(cnt_1) Me.fitnessN.Text = fitness(cnt_1) End Select Next cnt_1
- 締切済み
- Visual Basic
- Accessでフィールド名を変数(文字列)で・・・
以下のようなテーブルがあります ID 回答1 回答2 1 A D 2 C A 3 B B VBAで回答1と回答2のデータを得ようとした場合 Me!回答1 とするのですがこれを変数(文字列で)行う場合どうしたらよいでしょうか? イメージとしては以下のようにしたいのですが・・ Dim str as String str = "回答1" Me!str
- ベストアンサー
- オフィス系ソフト
- アクセス フィールド名の変更
フィールド名 [1],[2],・・・・を [090701],[090702],・・・ に変更するように Dim i As String Dim ret As String ret = InputBox("入力例 090701") i = ret DoCmd.RunSQL "SELECT [クエリ112].[1] AS [" & i & "], [クエリ112].[2] AS [" & i + 1 & "], ........中略 End Sub としましたが [090701],[90702],[90703],・・・ 2番目から 090702 になりません。 どのようにすればよいのか教えていただけませんか。
- 締切済み
- その他MS Office製品
- テーブルのすべてのフィールド名を配列として取り出せ
テーブルのすべてのフィールド名を配列として取り出せるように変数に格納したいのですが 詰みました。 Private Sub test() Dim cat As ADOX.Catalog Dim clm As ADOX.Column Dim tmp As Variant Dim myTable As String myTable = "T_Table" Set cat = CreateObject("ADOX.Catalog") cat.ActiveConnection = CurrentProject.Connection For Each clm In cat.Tables(myTable).columns tmp = Array("フィールド1", "フィールド2") Next clm End Sub のようなことがしたいのですが、clm.nameでせっかく名前が取得できるのに、 どうやったらtmpに格納できるのでしょうか? Arrayを使わない方法はあるのでしょうか?
- ベストアンサー
- オフィス系ソフト
- アクセス複数の条件で同じ書式をつけるには?
条件付き書式です。(しかもVBAです) 一つのフィールドに対して違う条件だけど同じ書式をつけたい時、 まとめる事は出来ないのでしょうか? 例えばフォールド1の「あ」と「い」を赤にしたい場合、 Sub test01() Dim Field As String Dim MyFormName As String MyFormName = "フォーム" Field = "フィールド1" With Forms(MyFormName).Controls(Field) With .FormatConditions .Delete With .Add(acExpression, , "[" & Field & "]=""あ""" And "[" & Field & "]=""い""") .ForeColor = 225 End With End With End With End Sub のような事は出来ないのでしょうか? これをすると 実行時エラー:型が一致しません。(Error 13) になります。 素直に、 Sub test02() Dim Field As String Dim MyFormName As String MyFormName = "フォーム" Field = "フィールド1" With Forms(MyFormName).Controls(Field) With .FormatConditions .Delete With .Add(acExpression, , "[" & Field & "]=""あ""") .ForeColor = 225 End With With .Add(acExpression, , "[" & Field & "]=""い""") .ForeColor = 225 End With End With End With End Sub としなくちゃダメでしょうか? 何故こんな事がしたいかと言うと、3つ以上やりたい条件がありので、 同じ書式のものはまとめたいのです。 ご教授よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
お礼
ご回答ありがとうございます。 望み通りのものができました! ありがとうございました。