• ベストアンサー
  • すぐに回答を!

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

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数6579
  • ありがとう数7

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

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

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

共感・感謝の気持ちを伝えよう!

質問者からのお礼

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

関連するQ&A

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

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

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

    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 とした場合と同じようにしたいのですが可能でしょうか? ご存知の方教えてください。 よろしくお願いします。

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

    VB初心者なのですが、 変数を、その変数のまま文字列で扱う方法がないかと悩んでいます。具体的に言うと、 たとえば、 Dim Bef(i,j) As String と宣言しておいて、 Bef(1,1)に、SCATTERBRAiN11 Bef(1,2)に、SCATTERBRAiN12 Bef(1,3)に、SCATTERBRAiN13 …… Bef(i,j)に、SCATTERBRAiNij という「文字列」を入れたいのです。 (最後の2文字i,jが、そのときの変数i,jの値。) これをFor構文を使って、 Bef(i,j)="SCATTERBRAiN" + i + j と書いたら、エラーになってしまいました。 iやjを、その変数に入っている数字の文字列として扱うには、どうすればいいのでしょうか。 よろしくお願いします。

その他の回答 (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 では

共感・感謝の気持ちを伝えよう!

質問者からのお礼

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

関連するQ&A

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

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

  • VBAの文字列の中に”(全角のダブルコーテーション)を使う

    VBAのStringの中に”(全角のダブルコーテーション)を使おうとしているのですが、VisualBasicEditorにより自動的に ""(半角のダブルコーテーション2つ)に変換されてしまいます。 Dim str as String str = "abc”def"    ↓ str = "abc""def" 文字列中に全角のダブルコーテーションを使う方法を教えてください。よろしくお願いします。

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

    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 にしようかなと思ったのですが なんかくどいかなって感じます。

  • 文字列の後ろから必要分だけ削除したい。

    例1 Dim str As String = "あいうえお1234" 文字列の中の1234だけ削除したい場合は、 str = str.Remove(5,4) という風に、5文字目の後から4文字削除にすればよいのですが、 例の"あいうえお"の部分の長さが毎回処理する度に異なる場合は、 文字列の頭から何文字目という指定ができないので、”後ろから4文字を削除したい”となります。その場合は、どのようなプロパティを使えばいいのでしょうか。 .NET環境です。

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

    はじめまして。宜しくお願いします。 現在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関数で分割を行っています。 このような処理を行う場合、なにか適した関数があると思い探しているのですが、 なかなか見つからず、行き詰っています。(そのような関数があるのかも分からず・・) もしもなにかお気づきの方が居られましたら、ご教授宜しくお願いします。

  • VBA・VB6.0・VB.NETの文字列型

     失礼します。  Excel97/2000のVBAの文字列型変数は、アスキーコード129-159/224-252のデータを保持できないみたいですが、これはVB6.0/VB.NETなどでもそうなのですか?  つまり、VBAでは、 Sub main()  Dim s as String  s = Chr$(130)  Sheet1.Cells(1, 1) = Asc(s) End Sub  とすると、シートのA1に「0」が表示されてしまうということです。  というのも、私はVB6.0/VB.NETを持っていないのですが、ちょっとVB2.0時代のコードを使う必要が生じたので、VBAで実行してみたところ、以上のような仕様の違いに気付いたのです。  これがVBAだけの特性なのか、最近のVBはこういう仕様になってしまったのかが知りたいのです。

  • VBA 文字列の抜き出し

    VBAで文字列の抜き出しの方法を教えてください。 同様な質問があり、参考にしてみたのですがうまくいきません。 お分かりの方がいましたらご享受お願いいたします。 30~45字からなる文字列があります。 その中に特定の文字列が2つあり、そのうちの最初の特定文字列に続く文字2つ目の特定文字列前までを抜き出したいのですがうまくいきません。 具体的には abcdefghi GN=12jikl PE=fghj456 という文字列のなかから"GN="と"PE="の中間の文字を取り出したいのですが、 自分で書いたものでは"PE="以上が抜き出され、"GN="より前の文字列を抜き出せませんでした。 GN=......, PE=......の文字数はそれぞれ不規則です。また、GN=...よりも前の文字数も不規則です。 以下が作成したものです。 Dim i As Integer Dim Srch As String Dim Btwn As String Const Chr1 As String = "GN " Const Chr2 As String = "PE" Dim m As String Set sheetobj = ThisWorkbook.Worksheets("A") With sheeobj lastrow = sheetobj.Cells(sheetobj.Rows.Count, 10).End(xlUp).Row For i = 2 To lastrow Srch = sheetobj.Cells(i, 10) Btwn = Mid(Srch, InStr(Srch, Chr1) + 1, InStr(Srch, Chr2) - InStr(Srch, Chr1) - 1) sheetobj.Cells(i, 9) = Btwn Next i End With End Sub なにかいい方法があれば教えて頂けたらと思います。 よろしくお願い致します。

  • Excel VBAの文字列と数値の分類

    txtファイルで取り込んだ2行にまたがっている数値・英文字・ひらがななどを、数値だけのtxtファイルとそれ以外のtxtファイルを別々に作成し、保存するプログラムを組みたいのですが、よく分かりません。 ちなみに、使っているOSとAPはWinXP、Excel2003です。 InputData.txtの内容 A34bFg7p0 あ 1ylut890 B45LK4L え Number.txtの完成形 34701890454 String.txtの完成形 AbFgp あ ylutBLKL え '変数の宣言 Dim myFile As String Dim CC As Integer Dim XX As Integer Dim WW As Variant Dim str As String Dim tempStr As String Dim B As String Dim C As String myFile = Dir("InputData.txt") 'ファイルの読み込み If myFile = "InputData.txt" Then Open myFile For Input As #1 Do While Not EOF(1) Input #1, myText Loop '書き込みファイルの作成 Open "Number.txt" For Output As #2 Open "String.txt" For Output As #3 '数字・文字列の分類 CC = Len(myFile) For XX = 1 To CC str = Mid(myFile, XX, 1) If str >= 0 And str <= 9 Then B = B & str Else C = C & str End If Next Print #2, B Print #3, C Close #1, #2, #3 'エラーメッセージの表示 Else MsgBox "ファイルは存在しません。" End If ここまでやっている状態です。よろしくお願いします。

  • VBA 別シートのセルから、文字列を参照するには?

    Excel VBAに於いて 同BOOKのSheet1から、Sheet2の文字列を変数に入れよとするとエラーになります。 何故でしょうか。 また、その対処法を、御教示ください。 Dim objWBK As Workbook Dim objSH As Worksheet Set objWBK = ThisWorkbook Set objSH = objWBK.Sheet2 Dim cnsFILENAME As String cnsFILENAME = objSH.Range("a4")     ← ここで、「オブジェクトは、このプロジェクトでサポートされていません。」と、エラーメッセージが出る。 Sheet2.Range(”A4”)には、文字列を入れてある。 以上、よろしくお願いします。