• ベストアンサー

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

質問者が選んだベストアンサー

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。maruru01です。 「Me!回答1」ということは、フィールド名ではなく、フィールドに連結したフォームのコントロールということですね。 (ウィザードでフォームを作るとフィールドと同じ名前になりますが。) で、コントロールの参照の方法には、 Me("回答1") Me.Controls("回答1") という方法があります。 もし1、2の部分だけを変数(i)で指定したいなら、 Me("回答" & i) Me.Controls("回答" & i) になります。 コントロール名を全て変数で指定する場合は、 str = "回答1" Me(str) Me.Controls(str) になります。

youking
質問者

お礼

うまくいきました。 ありがとうございます。

その他の回答 (1)

回答No.2

こんにちは、ats8181oyajiです レコードセットの配列で取れます Dim Recset As ADODB.Recordset 'レコードセット取得 Recset.Open ............ If Recset.EOF = False And Recset.BOF = False Then ' w_ID = Recset(0).Value w_KAITOU1 = Recset(1).Value w_KAITOU2 = Recset(2).Value end if では

youking
質問者

お礼

回答ありがとうございます。

関連するQ&A

  • 文字列を変数名として扱う方法

    vb6.0 か vb.net で文字列を変数名として扱うにはどうすればいいでしょうか? 例をあげると下記のようなことです。 -------------------- dim abc as string dim x as string abc = "テスト" x = "b" msgbox "a" & x & "c" -------------------- これをそのままvb6.0で実行すると"abc"という文字が表示されますが "abc"ではなく"テスト"と表示させたいのです。 つまり msgbox abc とした場合と同じようにしたいのですが可能でしょうか? ご存知の方教えてください。 よろしくお願いします。

  • グローバル変数などについて

    Option Explicit Dim str1 As String '・・・(1) Sub テスト() Dim str2 As String '・・・(2) str1 = "テスト1" str2 = "テスト2" MsgBox str1 MsgBox str2 End Sub (1)はグローバル変数と言うとの事ですが (2)は何変数と言うのでしょうか? ローカル変数ですか? また、(1)がdimではなく、 Public str1 As String となった場合でも、 プロシージャーの外にあれば、グローバル変数と言うのでしょうか?

  • Accessのテーブルの文字列フィールドにVBAでアクセスするには?

    いつもお世話になっております。困っていることがありますので教えていただければ幸いです。 AccessのテーブルAに、メモ型のフィールドBがあり、1000文字くらいの文字が入っています。VBAの関数Cの中でそのテーブルにアクセスし、1000文字をいろいろ処理したいと思っています。見よう見まねで試しに Dim cn As ADODB.Connection Dim rs As ADODB.Recordset Dim FileNum As Integer Set cn = CurrentProject.Connection Set rs = New ADODB.Recordset rs.Open テーブルA, cn, adOpenDynamic, adLockOptimistic msgbox !フィールドB としてみたのですが、なぜか255文字までしか表示されません。VBAを用いてテーブル(やクエリ)にアクセスし、256文字以上の文字列を扱う方法はありませんでしょうか? 何かこちらで勘違いしているところがありましたら、ご指摘いただければと思います。よろしくお願いします。

  • 文字列を特定文字で分割したい

    はじめまして。宜しくお願いします。 現在Access2002のVBAをつかってタイトルのようなことを実現したいと思っています。 Dim a As String Dim b As String という二つの変数を用意して 「C:\Documents and Settings\デスクトップ\test.csv」という文字列が与えられているとき 変数aには「test.csv」を、変数bには「C:\Documents and Settings\デスクトップ\」を 格納しようとしています。 スマートなやり方がわからず、 文字列の右から一文字ずつ比較して行き、何文字目に「¥」が出てくるかをカウントして、right関数とleft関数で分割を行っています。 このような処理を行う場合、なにか適した関数があると思い探しているのですが、 なかなか見つからず、行き詰っています。(そのような関数があるのかも分からず・・) もしもなにかお気づきの方が居られましたら、ご教授宜しくお願いします。

  • 文字列型の一般的な変数名は?

    おはようございます。 サンプルコードで 数値型の変数名は Dim i As Long のようにiをよく見かけます。 ただ、私が勉強不足のため 文字列型の変数名の一般的な文字に何が使われているのかわかりません。 (str?moji?など?) サンプルコードを書くときに使用する 文字列型の変数名を教えてください!

  • 文字列の分解・格納

    お世話になります。 文字列の分解についてお聞きします。 環境はVB.NET2008です。 Private Sub Main(ByVal CmdArgs() As String) Dim cmds() As String cmds = System.Environment.GetCommandLineArgs() End Sub コマンドライン引数で以下のように文字列を取得しています。 ("起動exe", "/KEY=○○○/ テーブル名=△△△") この文字列を元に、 変数Aに○○○を変数Bに△△△を代入したいのですが、どうやるのでしょうか? ご教示願います。

  • Excel-vba 文字列と変数を連結して更に変数として扱いたい

    Dim strAAA As String Const strBBB As String = "TEST" strAAA = "BBB" 上記のような設定がされているとき、 "str" & strAAA を1つの変数として扱い、 strBBB の設定 "TEST" を参照 する事は可能でしょうか? 尚、環境はExcel2000です。 確かどこかでその使用方法を目にしたことがあった気がしましたが、いざ、 探してみましたら何処だったか、そもそもExcel-vbaだったかすら思い出せません。 お手数をお掛けいたしますが、どうぞご教授をお願いいたします。

  • オブジェクト名を変数で参照できますか

    VB初心者です。 配列の場合 Dim str(10) as string と宣言し、i番目のデータを取り出したいときには、str(i) と記述すると思います。 そこで質問ですが、例えばCommandが1~10まであるとします。 オブジェクト名はそのまま(Command1, Command2)で、それぞれのCaptionに違ったデータが入っています。 (例えば、Command1のCaptionには'A' Command2のCaptionには'B'といった感じに) ある文字列があり、For文を使い、CommandのCaptionとその文字列が一致したときに文字列を出力するという処理を行いたいとき、どのように Command1~10のCaptionを回せばいいのでしょうか? コードを記述しておきます。 Dim str(10) as String Dim i as Integer Dim j as Integer for i = 0 to 10 for j = 0 to 10 ☆☆ if Command(i).Caption = str(j) then print.str(j) end if next next ☆☆のところです。 可能であれば回答をお待ちしております。 環境は windows XP, VB6.0 です。

  • 結合した文字列をファイル名に使えない

    Excel上に入力されているパス名とファイル名のデータを組み合わせて、 様々なファイルを開いたりコピーしたりするVBAのコードを作ろうとしています。 仮にシート上のA1セルに、C:\Documents and Settings\デスクトップ というパス名 A2セルに URIAGE.xls というファイル名が入力されていたとして、 A1の文字列データとB1の文字列データを結合する場合、 Sub FileSousa()  Dim a As String  Dim b As String  Dim c As String  a = Cells(1, "A").Value  b = Cells(2, "A").Value  c = Chr(34) & a & "\" & b & Chr(34)  Range("A3") = c としてみると、確かにA3セルには、"C:\Documents and Settings\デスクトップ\URIAGE.xls" と出力され、文字列が結合されたことがわかるのですが、その変数cのデータを使って  Workbooks.Open Filename:=c として、そのファイルを開こうとすると、ファイル名が見つからないとしてエラーになります。 ファイルはデスクトップ上の確かにその名前で存在しており、直接 Workbooks.Open Filename:="C:\Documents and Settings\デスクトップ\URIAGE.xls" とすると開きます。 " を Chr(34)によって入力したのがいけないのでしょうか、 Workbooks.Open Filename:=××× には、変数を置いてはいけないのでしょうか。 そもそも文字列の結合は、"あ" & "い" → "あい" となるのが基本だと思うのですが、 a="あ"、b="い"、c=a&b → c="あい"として結合した変数cについては、ファイル操作上のファイル名の設定項目として使えないのでしょうか。

  •  日付型なら変数の先頭になんてつけてますか?

    変数名で、 文字列型なら Dim str組織名 As String 数値型なら Dim intNo As Long としてるのですが、 日付型なら変数の先頭になんてつけてますか? Dim date月日 As Date にしようかなと思ったのですが なんかくどいかなって感じます。

専門家に質問してみよう