Access 2010: テーブルB[F2]にテーブルA[F1]の最後1文字が「1」である条件下での数をカウントしたい

このQ&Aのポイント
  • Access 2010のテーブルAからテーブルB[F2]にテーブルA[F1]の最後1文字が「1」である条件下での数をカウントする方法について教えてください。
  • テーブルAとテーブルBの関係性に基づいて、テーブルB[F2]にテーブルA[F1]の最後1文字が「1」である条件を適用した上で、数をカウントしたいです。
  • Access 2010で、テーブルB[F2]にテーブルA[F1]の最後1文字が「1」である条件下での数をカウントする方法を教えてください。
回答を見る
  • ベストアンサー

アクセス2010 他テーブルを参照してCount

アクセス2010 テーブルA [F1] ab1 aa1 ah0 cd1 gh0 を元に、頭1文字の重複行を削除したテーブルBがあります テーブルB [F1] [F2] a..........0 c..........0 g..........0 テーブルB[F2]に テーブルA[F1]の最後1文字が「1」である条件下での数をカウントしたい。 [F1] [F2] a..........2 c..........1 g..........0 DoCmd.RunSQL "UPDATE テーブルB (F2) SELECT Count(*) FROM テーブルA Where テーブルA.F1 Like '???1' And テーブルB[F1]=Left(テーブルA[F1],1) ;" みたいな感じで・・・?? よろしくお願い致します。

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

  • ベストアンサー
回答No.1

DoCmd.RunSQL _ "UPDATE テーブルB SET テーブルB = " & _ "DCount(""*"",""テーブルA"",""F1 Like '*1' AND Left(F1,1)='"" & [F1] & ""'"");" でどうかな。

situmonnsya
質問者

お礼

>SET テーブルB.F2 = F2を入れてうまく動きました。 「"」の使い方はこのようにするのですね。 助かりました。ありがとうございます。

関連するQ&A

  • アクセス2010 他テーブルを参照してCount

    アクセス2010 以前質問(QNo.7322538)しましたが、再度質問です。 >質問 テーブルA [F1] ab1 aa1 ah0 cd1 gh0 テーブルB [F1] [F2] a..........0 c..........0 g..........0 テーブルA[F1]の最後1文字が「1」である条件下で、 テーブルA[F1]の全データから、テーブルB[F1]の数をカウントしたい。 [F1] [F2] a..........2 c..........1 g..........0 >ご回答 DoCmd.RunSQL _ "UPDATE テーブルB SET テーブルB.F2 = " & _ "DCount(""*"",""テーブルA"",""F1 Like '*1' AND Left(F1,1)='"" & [F1] & ""'"");" これでうまく動くのですが、DCount使用の為か処理時間がかなりかかります。 もっと早くできないでしょうか? よろしくお願い致します。

  • アクセス複数テーブル時のORDER BY の記述

    アクセス2010です 以下のようにテーブルB.F2の上位2のF1とテーブルCのF1を足したテーブルAを作りたいのですが。 ORDER BY はどこに記述するのでしょうか? DoCmd.RunSQL "INSERT INTO テーブルA (F1) " + _ "SELECT TOP 2 テーブルB.F1+テーブルC.F1 + _ "FROM テーブルB, テーブルC " + _ "Where ~~~ ORDER BY テーブルB.F2 ;" 上記のようにすると「テーブルB.F1+テーブルC.F1」計算後の上位2となってしまいます。 ----------- テーブルB (F1,F2) 長嶋,30 王,100 張本,20 ---------- テーブルC (F1) キョジン ハンシン ---------- テーブルA 張本キョジン 長嶋キョジン 張本ハンシン 長嶋ハンシン ---------- としたいが、 ---------- テーブルA 張本キョジン 長嶋キョジン ---------- になってしまいます。 ご教示お願い致します。

  • ACCESSのモジュールでのUNION

    ACCESS超初心者です。 モジュールでテーブルAとBテーブルBを結合しテーブルCを作成したいのですが、 DoCmd.RunSQL " SELECT * FROM TABLE_A UNION SELECT * FROM TABLE_B INTO TABLE_C; " でRunSQL実行時のエラー(2342)となってしまいます。 きっと基本的なことだと思うのですが・・・ どうぞお教えください。

  • access一部のフィールドを他のテーブルへVBA

    先日 https://okwave.jp/qa/q10245651.html において > table2の新しいデータとして > table1のデータをコピーしたい、 単に追加で ということであれば、という 御回答: Sub Test() Dim StrSQL As String StrSQL = "INSERT INTO table2 SELECT table1.* FROM table1;" DoCmd.SetWarnings False DoCmd.RunSQL StrSQL DoCmd.SetWarnings True End Sub ---------------------- 上記の 回答をいただき うまく稼働しました 部分的にフィールドを別テーブルに 移動するとき ここでは table1のフィールド名 IDに table2のフィールド名 bに 入っている数値 にい 1を加えた数値を 移動したいのですが Public Function Test() Dim tb1 As Table Dim tb2 As Table tb1 = table1 tb2 = table2 Dim strSQL As String strSQL = "INSERT INTO table2![ID]SELECT"("[b]"FROM tablel)+1" (table1のフィールド[b]の数値に1を加えた数値を table2のフィールド[ID]に移行する、というつもりです) DoCmd.SetWarnings False DoCmd.RunSQL strSQL DoCmd.SetWarnings True End Function 稼働しません すみません 宜しくお願い致します (ついでながら ここで でてくるb というのは テーブル table3 の IDの総和 すなわち SELECT Count(table3.ID) AS b FROM table3; 要は table3の最後のレコードの次のレコードの 番号の数値を table2のIDに移動したい というわけであります) (いずれのIDや bについても 数値型 長整数型 重複あり です)

  • アクセス2010 EXISTSの使い方

    テーブルA F1 F2 あい False いえ True おか True きく True けこ False テーブルB F1 あ か け TB1にTB2が含まれるデータを抽出して テーブルC F1 あい けこ をつくりたい。 DoCmd.RunSQL "INSERT INTO テーブルC (F1) " + _ "SELECT F1 From テーブルA " + _ "Where F2=False And " + _ "EXISTS (SELECT * FROM テーブルB WHERE テーブルA.F1 Like '*テーブルB.F1*' );" としたのですが、追加件数は「0」です。 Likeの使い方が悪いのか、EXISTSが悪いのか? どのようにしたらTB3の結果を得られるでしょうか?

  • Access2010 テーブルのフィールドについて

    Access2010を使用しています。 テーブルのフィールド定義 [A][B][C][D][E][F][G] ↓ テーブルを開くと [A][B][C][E][F][G][D] と勝手に変わる (あるフィールドだけ、別の場所に移動) ↓ フィールドの並び順を [A][B][C][D][E][F][G] に戻す ↓ 保存してテーブルを閉じる ↓ 再度開くと [A][B][C][E][F][G][D] と変わってしまう。 この繰り返しです。 どなたか、お助け下さい。 よろしくお願いいたします。

  • MySQL: 複数テーブルのcount

    複数テーブルの総行数(count値)を取得したいのですが、下記だとテーブルA,B,Cの結果が バラバラに出力されてしまいます。 【入力条件】 mysql> select COUNT(*) AS 列ID from テーブルA      union all      select COUNT(*) AS 列ID from テーブルB      union all      select COUNT(*) AS 列ID from テーブルC; 【出力結果】       +-----+       | 列_ID |       +-----+       |  1  | ←テーブルAの合計:行数       |  2  | ←テーブルBの合計:行数       |  3  | ←テーブルCの合計:行数       +-----+ 総行数:6を一発で取得するには、どのようにしたらよろしいのでしょうか? 大変恐縮ですが、ご教授よろしくお願いいたいます。 <<MySQLのverは5,5です。

    • ベストアンサー
    • MySQL
  • WHERE句に複数テーブルを使いたい

    アクセス2010です。 テーブルA F1__テキスト(重複あり) F2__数字 テーブルB F1__テキスト(重複なし) F2__Boolean 条件 ・テーブルAのF2が1の条件で ・テーブルAのF1にテーブルBのF2がない ・テーブルBのF2がTrueであるものだけ DoCmd.RunSQL INSERT INTO テーブルA(F1,F2) SELECT テーブルB.F1,100 FROM テーブルB WHERE テーブルA.F2 = 1 And テーブルA.F1<>テーブルB.F1 And テーブルB.F2 = True; WHERE句に複数テーブルを使いたい時は、どのようにするのでしょうか?

  • テーブルごとのカウント

    PHP5.2+mysql 5.0.45で開発を行っております。 SQLに関する質問なのですが 以下のことが可能かどうかご教授いただきたく。 4つのテーブルがあります。 (例は適当です。項目の名称等は無視してください。) テーブルA ID Name Kana テーブルB ID NameID Pref City テーブルC ID NameID Tel Fax テーブルD ID NameID email CellPhone とします。 A.ID=1000の時各テーブルのレコード数が A:B:C:D=1:3:2:2となっています。 SQLの出力結果として A.ID A.Name A.Kana B.Count(ID) C.Count(ID) D.Count(ID) という、6項目を出力したいのですが 方法がわかりません。 試してみたのは select A.ID,A.Name,A.Kana,Count(B.ID),Count(C.ID),Count(D.ID) from A left join B on A.ID = B.NameID left join C on A.ID = C.NameID left join D on A.ID = D.NameID where A.ID = 1000 group by A.ID,A.Name,A.Kana ですが 結果、 A.ID = 1000 A.Name = Name A.Kana = Kana Count(B.ID) = 3 Count(C.ID) = 3 Count(D.ID) = 3 となってしまいます。 冷静に考えるとそうなんですが・・・ もしうまく結果を取得できる方法があればご教授いただきたく よろしくお願いいたします。

    • ベストアンサー
    • MySQL
  • MSアクセス SQLの書き方(UPDATE)

    MSアクセス2010 テーブルA フィールドA=テキスト型(4文字) テーブルB フィールドA=テキスト型(2文字) フィールドB=Yes/No型 テーブルBの2文字が、テーブルAの4文字に含まれていたら、テーブルBの全てのレコードのYes/No型をTrueにしたい。 rs.MoveNextでループを使わず一括でする方法はないですか? DoCmd.RunSQL "UPDATE テーブルB SET フィールドB=True WHERE (テーブルAの文字にテーブルBの文字が含まれていたら) みたいな感じで。