hatena1989 の回答履歴
- フォーム内のテキストボックスに複数レコードを表示
いつも大変お世話なっております。Accessを始めて3週間の初心者です。 今、社員の在籍中の職級推移を残すための社員明細フォームを作成しています。 社員数数百名。 フォーム名:社員明細 テーブル名:TBL_職級期間一覧 テーブルには 以下のようなレコードが並んでいます。 IDはオートナンバー型を振っています。 年度が替わって、職級が変化すればレコードが追加されます。 (ID 586のように001234 さんのレコードが追加) ID 社員No 開始 終了 職級名 1 001234 2004/04/01 2008/03/31 S3 2 001234 2008/04/01 2012/03/31 S2 3 001234 2012/04/01 2015/03/31 S1 4 005678 1998/04/01 2003/03/31 T6 5 005678 2003/04/01 2005/03/31 T5 6 005678 2005/04/01 2013/03/31 T4 7 005678 2013/04/01 2016/03/31 T3 ・ ・ ・ 586 001234 2015/04/01 2016/03/31 K5 これらを添付写真のようにフォームに表示させる方法がわかりません。 IDを振ったのは社員Noで絞り込み、昇順・降順で表示させる順番を 推移の新しい順、古い順に可変させられるのでは・・?と思ったので IDフィールドを付けました。 いろいろ検索し=DLOOKUPを使ったりと試してみましたが、よくわかり ませんでした。 何卒お力添えをお願い致します。
- ベストアンサー
- その他MS Office製品
- vesper580109
- 回答数2
- [Access2013]リストボックスの値指定
以下の様な事をしたいと思っていますが上手く行きません。 上手くいく方法はありますでしょうか? テーブル1 id 名称 →列名 1 みかん 2 りんご 30 トマト 上記の様なテーブルがありそれをフォーム上に配置したリストボックス(複数選択可)の値集合ソースにしています。 リストボックスから入力した値は、みかんのみを選択した場合は「1」、みかんとりんごを選択した場合は「1;2」とDBに保存しています。 (この部分は想定通りの動きをしています。) 入力用フォーム以外に、別フォームのデータシートビューで一覧表示をしています。 そこで上記リストボックス値でDBに入っている「1」や「1;2」を「みかん」や「みかん;りんご」と表示したいと思っています。 データシートビューにもリストボックスを配置し、値集合ソースは入力フォームと同じテーブル1に、コントロールソースを「1;2」が入っているフィールドにしましたが、「1」のみの場合は選択状態で表示されますが、「1;2」の場合未選択になってしまいます。 やりたいことは、ここで入力をするつもりはありませんのでただ文字列として「みかん;りんご」が出てくればいいです。 ただ、一々フォームロードなどでSQL文(+ループ処理)を書くと件数が数万件は少なくともあるのでロード時の待ちが長くなりそうです。 また、リンクテーブルマネージャで外部DBと接続しているので、テーブル定義をAccess独特のものに変更するのは難しいです。 idは自然増加に任せており桁数はまちまち、複数選択の個数も1~数十と様々です。 質問内容 ・リストボックスのコントロールソースにて複数値を指定する方法はありますか?(そもそもとして、そういうことが出来ないものなのでしょうか? また,区切りに変更、splitで配列化等はすでに行って駄目でした。) ・処理時間に影響が少ない方法で「みかん;りんご」とデータシートビューに表示する方法はありますでしょうか? ・例えばリストボックスを使用せずテキストボックス等に変更してコントロールソースでselect 名称 from テーブル1 where id in Replace("1;2",";",",")の様な事をした結果複数件出た場合は区切り文字で区切って全部出す等を可能なのでしょうか? よろしくお願いいたします。
- 締切済み
- その他MS Office製品
- mentaiko2
- 回答数6
- [Access2013]リストボックスの値指定
以下の様な事をしたいと思っていますが上手く行きません。 上手くいく方法はありますでしょうか? テーブル1 id 名称 →列名 1 みかん 2 りんご 30 トマト 上記の様なテーブルがありそれをフォーム上に配置したリストボックス(複数選択可)の値集合ソースにしています。 リストボックスから入力した値は、みかんのみを選択した場合は「1」、みかんとりんごを選択した場合は「1;2」とDBに保存しています。 (この部分は想定通りの動きをしています。) 入力用フォーム以外に、別フォームのデータシートビューで一覧表示をしています。 そこで上記リストボックス値でDBに入っている「1」や「1;2」を「みかん」や「みかん;りんご」と表示したいと思っています。 データシートビューにもリストボックスを配置し、値集合ソースは入力フォームと同じテーブル1に、コントロールソースを「1;2」が入っているフィールドにしましたが、「1」のみの場合は選択状態で表示されますが、「1;2」の場合未選択になってしまいます。 やりたいことは、ここで入力をするつもりはありませんのでただ文字列として「みかん;りんご」が出てくればいいです。 ただ、一々フォームロードなどでSQL文(+ループ処理)を書くと件数が数万件は少なくともあるのでロード時の待ちが長くなりそうです。 また、リンクテーブルマネージャで外部DBと接続しているので、テーブル定義をAccess独特のものに変更するのは難しいです。 idは自然増加に任せており桁数はまちまち、複数選択の個数も1~数十と様々です。 質問内容 ・リストボックスのコントロールソースにて複数値を指定する方法はありますか?(そもそもとして、そういうことが出来ないものなのでしょうか? また,区切りに変更、splitで配列化等はすでに行って駄目でした。) ・処理時間に影響が少ない方法で「みかん;りんご」とデータシートビューに表示する方法はありますでしょうか? ・例えばリストボックスを使用せずテキストボックス等に変更してコントロールソースでselect 名称 from テーブル1 where id in Replace("1;2",";",",")の様な事をした結果複数件出た場合は区切り文字で区切って全部出す等を可能なのでしょうか? よろしくお願いいたします。
- 締切済み
- その他MS Office製品
- mentaiko2
- 回答数6
- 2つのテーブルを結合する条件
現在、MySQLを使用しており2つのテーブルの結合条件がわからないので教えてください。 name_masterとmeiboの2つのテーブルがあります。 meiboとname_masterを結合させてname_idとname_id2が日本語に置き換わった状態で 取得させたいと思っています。どのようにwhere句の条件を作成すればよいでしょうか。 取得する項目のイメージとしては以下の3つが取得できるようにしたいです。 「meibo.no, meibo.name_idの日本語, meibo.name_id2の日本語」 【name_masterテーブル】 id name 1 ポチ 2 タマ 3 ミケ 4 ハチ 5 タロウ 【meiboテーブル】 no name_id name_id2 1 3 1 2 4 2 3 5 3
- Access 添付ファイルコントロールの表示順
お世話になります。 Access2010 フォーム上に添付ファイルコントロールを設置しております。 複数のファイルを追加できるかと思いますが、ファイル名順で 先頭のものが、コントロール上に表示されるようです。 例えば、 111.xlsx 222.jpg 333.pdf が添付されてる場合、Excelのアイコンが表示されます。 本来なら222.jpgの画像を表示させたいところです。 上記の例なら、@222.jpgのようにファイル名を変更し、 順番を先頭にもっていくようにしなければならないので しょうか。 他に方法があればご教示頂けると幸いです。 宜しくお願い致します。
- ベストアンサー
- その他MS Office製品
- naoto0216
- 回答数6
- Access 添付ファイルコントロールの表示順
お世話になります。 Access2010 フォーム上に添付ファイルコントロールを設置しております。 複数のファイルを追加できるかと思いますが、ファイル名順で 先頭のものが、コントロール上に表示されるようです。 例えば、 111.xlsx 222.jpg 333.pdf が添付されてる場合、Excelのアイコンが表示されます。 本来なら222.jpgの画像を表示させたいところです。 上記の例なら、@222.jpgのようにファイル名を変更し、 順番を先頭にもっていくようにしなければならないので しょうか。 他に方法があればご教示頂けると幸いです。 宜しくお願い致します。
- ベストアンサー
- その他MS Office製品
- naoto0216
- 回答数6
- Access 添付ファイルコントロールの表示順
お世話になります。 Access2010 フォーム上に添付ファイルコントロールを設置しております。 複数のファイルを追加できるかと思いますが、ファイル名順で 先頭のものが、コントロール上に表示されるようです。 例えば、 111.xlsx 222.jpg 333.pdf が添付されてる場合、Excelのアイコンが表示されます。 本来なら222.jpgの画像を表示させたいところです。 上記の例なら、@222.jpgのようにファイル名を変更し、 順番を先頭にもっていくようにしなければならないので しょうか。 他に方法があればご教示頂けると幸いです。 宜しくお願い致します。
- ベストアンサー
- その他MS Office製品
- naoto0216
- 回答数6
- Access 抽出漏れ行をみつけるクエリ
図のようなテーブル「TBL_A」がCSVファイルの形で提供されます。この「TBL_A」は全レコードのテーブルあり「正」データばかりのマスターと考えてください。 このCSVデータをACCESSによみこみテーブル「TBL_A」としてあります。 「TBL_A」をいろいろな人が加工したり、抽出作業をしているのですが、「TBL_B」のような抽出をかけて渡してきた人がいたので、「データ(レコード)が足りないので、不一致クエリで足りないのを見つけておいてください」と頼んだところ、何度やってもみつけられないというので、自分でも試してみました。 図でいえば、ピンク色のレコード(行)をみつければいいのですが、Accessで不一致クエリをかけてみたところ、図の下部のようなデータしか抽出できませんでした。 やったことは2つ 1) TBL_Aを左にし、右にTBL_Bを右に配置し、不一致クエリウィザードでの矢印(→)で商品コードを紐付けた 2) 最初にTBL_AとTBL\Bをクエリで「商品コード」「価格」ぞれぞれ結びつけ(つまり2つの線)、「商品コード」「価格」を「クエリ1」として抽出。その「クエリ1」を上のTBL_Bの位置にもってきて、不一致クエリ。 どちらとも、結果は図の下のようになってしまいます。 図の上部のピンクの部分を確実に抜き出すには、どのようなクエリ(またはSELECT文)が必要でしょうか。 メモ: ・商品コードは「テキスト型」です。 ・商品コードが同じでも販売場所やいろいろな経緯で価格が違っていたり、返品の場合は返金するためマイナス金額がつくことがあり、商品コードと価格はかならずしも合致しません。 ・Accessは2010か2013を使っています。 ※今回はVBAの質問ではありません。
- ベストアンサー
- その他(データベース)
- ketae
- 回答数3
- MS Access 複数文字列の置き換えについて
アクセスはデザインビューでクエリを組むことができる程度の初心者です。 できればSQLを直接いじらずにもできる方法でお教え頂ければ幸いです。 1つのテーブル内に30種類の文字を置き換えたい列が10個あります。 置き換えたい列A~Jには、それぞれ異なるデータが入っていますが、置き換えたい内容は同じです。 01~30までの数値をそれぞれ対応する文字あ~ほに置き換えたい列が10個あるということです。 クエリを組んでreplaceやswitchを使うには式が長すぎると怒られてしまいますし、変換用のテーブルを作ろうにも置き換えたい列が10個もあるのでうまく繋げません。 変換用テーブルを10個作ればできるのかもしれませんが、さすがにそこまで無駄なテーブルは作るのは抵抗があります。 何かスマートな方法があればと探しています。 よろしくお願い致します。
- 締切済み
- その他MS Office製品
- kakomo33
- 回答数2
- MS Access 複数文字列の置き換えについて
アクセスはデザインビューでクエリを組むことができる程度の初心者です。 できればSQLを直接いじらずにもできる方法でお教え頂ければ幸いです。 1つのテーブル内に30種類の文字を置き換えたい列が10個あります。 置き換えたい列A~Jには、それぞれ異なるデータが入っていますが、置き換えたい内容は同じです。 01~30までの数値をそれぞれ対応する文字あ~ほに置き換えたい列が10個あるということです。 クエリを組んでreplaceやswitchを使うには式が長すぎると怒られてしまいますし、変換用のテーブルを作ろうにも置き換えたい列が10個もあるのでうまく繋げません。 変換用テーブルを10個作ればできるのかもしれませんが、さすがにそこまで無駄なテーブルは作るのは抵抗があります。 何かスマートな方法があればと探しています。 よろしくお願い致します。
- 締切済み
- その他MS Office製品
- kakomo33
- 回答数2
- Access 抽出漏れ行をみつけるクエリ
図のようなテーブル「TBL_A」がCSVファイルの形で提供されます。この「TBL_A」は全レコードのテーブルあり「正」データばかりのマスターと考えてください。 このCSVデータをACCESSによみこみテーブル「TBL_A」としてあります。 「TBL_A」をいろいろな人が加工したり、抽出作業をしているのですが、「TBL_B」のような抽出をかけて渡してきた人がいたので、「データ(レコード)が足りないので、不一致クエリで足りないのを見つけておいてください」と頼んだところ、何度やってもみつけられないというので、自分でも試してみました。 図でいえば、ピンク色のレコード(行)をみつければいいのですが、Accessで不一致クエリをかけてみたところ、図の下部のようなデータしか抽出できませんでした。 やったことは2つ 1) TBL_Aを左にし、右にTBL_Bを右に配置し、不一致クエリウィザードでの矢印(→)で商品コードを紐付けた 2) 最初にTBL_AとTBL\Bをクエリで「商品コード」「価格」ぞれぞれ結びつけ(つまり2つの線)、「商品コード」「価格」を「クエリ1」として抽出。その「クエリ1」を上のTBL_Bの位置にもってきて、不一致クエリ。 どちらとも、結果は図の下のようになってしまいます。 図の上部のピンクの部分を確実に抜き出すには、どのようなクエリ(またはSELECT文)が必要でしょうか。 メモ: ・商品コードは「テキスト型」です。 ・商品コードが同じでも販売場所やいろいろな経緯で価格が違っていたり、返品の場合は返金するためマイナス金額がつくことがあり、商品コードと価格はかならずしも合致しません。 ・Accessは2010か2013を使っています。 ※今回はVBAの質問ではありません。
- ベストアンサー
- その他(データベース)
- ketae
- 回答数3
- 一部が共通の複数行を1行にまとめるには
以下のようなテーブルがあります。 項目1 項目2 項目3 項目4 ------------------------------------------------- AAA あああ (NULL) 5678 AAA あああ 1234 (NULL) BBB いいい @@@@ (NULL) BBB いいい (NULL) **** CCC ううう &&&& (NULL) これを 項目1 項目2 項目3 項目4 ------------------------------------------------- AAA あああ 1234 5678 BBB いいい @@@@ **** CCC ううう &&&& (NULL) のように項目1、2が同じ値、かつ項目3、4が(NULL)の部分を1行にまとめたいのです。 データ「CCC」の行のように項目1、2が同じものがなければ、何もせずそのまま出力もしたいです。 よろしくご教授お願いいたします。
- MSアクセス2013のSQLでESCAPE文字指定
MSアクセス2013のSQLでLIKE検索時のエスケープ文字を別の文字に変更する ESCAPEキーワードを記述したら『演算子がありません』とエラーになったのですが 使えないんですか? select * from テーブル where 項目 like 'abc' ESCAPE '#' ;
- ベストアンサー
- その他(データベース)
- fxgame1224
- 回答数1
- オプションボタンの条件分岐で全件表示ができない
「fo物件登録一覧検索指定」フォーム内に、非対象/対象を区分するオプションフレームを設置、フレーム内に”対象”、”非対象”、”両方”のオプションボタンを設けています。「Qu物件登録一覧検索」クリエー内の非対象/対象フィールドには、以下の抽出条件を記入しました。結果、オプションボタンで”非対象”、”対象”を選択した時には正常に絞込みが行え、”両方”を選択した場合のみ、なにもリストが表示されない状況で、2日間ぐらい試行錯誤を繰り返し、IIF関数等いろいろ試していますが未だ堂々巡りです。 クエリの抽出条件は以下通りです。 フィールド名:対象非対象 抽出条件(1):Switch([Forms]![fo物件検索指定]![オプションフレーム]=1,"対象",[Forms]![fo物件検索指定]![オプションフレーム]=2,"非対象") OR抽出条件(2):Nz([Forms]![fo物件検索指定]![オプションフレーム]=3,True) ”対象”のオプション値=1 ”非対象”のオプション値=2 ”両方”のオプション値=3 どうぞACCESS難民にどうかご教示をお願いします。
- ベストアンサー
- その他(データベース)
- upfield5963
- 回答数1
- Access Nullの評価について
お世話になります。 Access2010 フォームを作成しました。 「登録」ボタンが押されたら、フォーム上の値の変更有無をチェックし 変更がなければ何もせず、変更があった場合のみ該当レコードを更新 します。 そこで質問ですが、 If Me.AAA = Me.BK_AAA And Me.BBB = Me.BK_BBB And Me.CCC = Me.BK_CCC Then '変更が無ければ何もしない Else 該当レコードにAAA~CCCの値を上書き End If としておりますが、例えばMe.CCCとMe.BK_CCCにそれぞれNullが 入っている場合、Elseになってしまいます。 ※M.BK_CCCは変更前の値が入っている 恐らく、 If Me.AAA & "@" = Me.BK_AAA & "@" ・・・ のように文字をくっつけて評価させればよいかと思うのですが、 そもそもNullの場合は、イコールで評価出来ないのでしょうか。 ご教示の程、宜しくお願い致します。
- ベストアンサー
- その他MS Office製品
- naoto0216
- 回答数3
- Access Nullの評価について
お世話になります。 Access2010 フォームを作成しました。 「登録」ボタンが押されたら、フォーム上の値の変更有無をチェックし 変更がなければ何もせず、変更があった場合のみ該当レコードを更新 します。 そこで質問ですが、 If Me.AAA = Me.BK_AAA And Me.BBB = Me.BK_BBB And Me.CCC = Me.BK_CCC Then '変更が無ければ何もしない Else 該当レコードにAAA~CCCの値を上書き End If としておりますが、例えばMe.CCCとMe.BK_CCCにそれぞれNullが 入っている場合、Elseになってしまいます。 ※M.BK_CCCは変更前の値が入っている 恐らく、 If Me.AAA & "@" = Me.BK_AAA & "@" ・・・ のように文字をくっつけて評価させればよいかと思うのですが、 そもそもNullの場合は、イコールで評価出来ないのでしょうか。 ご教示の程、宜しくお願い致します。
- ベストアンサー
- その他MS Office製品
- naoto0216
- 回答数3
- Microsoftのaccessのクエリ関数につい
「負割」というフィールドがあり、0、1、2、3、200という数字が1つ選択できます。これを選択すると、「点数」というフィールドの数字と掛算されます。この合計額が「負担金」というフィールドに表示されるのですが、 ・0,1,2,3のどれかを選択した場合、 IIf(([点数]*[負割] Mod 10)<5,[点数]*[負割]-([点数]*[負割] Mod 10),[点数]*[負割]-([点数]*[負割] Mod 10)+10)) で四捨五入されます。 ・200という数字が選択されると、「点数」×「3」の合計が199まではそのまま計算された数字で表示されますが、200や200を超えても「200」にしかならない。という式を作りたいと思っています。 できないことはこの「200」という数字が選択されたときの関数で IIf([負割]>199,(IIf([点数]*3)>200,200,(IIf(([点数]*3 Mod 10)<5,[点数]*3-([点数]*3 Mod 10),[点数]*3-([点数]*3 Mod 10)+10))),(IIf(([点数]*[負割] Mod 10)<5,[点数]*[負割]-([点数]*[負割] Mod 10),[点数]*[負割]-([点数]*[負割] Mod 10)+10))) このように導き出したのですが、関数が正しくありません。 間違っているのがわかる方、いらっしゃったら教えてください。お願いします。
- 締切済み
- その他(データベース)
- tsukushino
- 回答数3
- Access 削除時にレコード有無チェックは必要?
お世話になります。 Access2010 10個あるテーブルでそれぞれ社員番号を条件にVBAにて削除クエリを 実行してます。 メインのテーブルである社員テーブルには全社員が登録されて いるので、無条件に削除クエリを実行しておりますが、他の9個に ついては必ずしも該当レコードが存在するとは限りません。 なので、他の9個のテーブルについては削除クエリを実行する前に、 削除する社員番号が存在するかをチェックした上で(社員番号をキーに FindFirst)、存在したら削除クエリを実行してます。 今更ですが、わざわざチェックする必要があるのかな?と。。 元々は「社員番号が存在しないテーブルに対して、わざわざ削除クエリ を実行する意味がない」と思い、チェックするようにしました。 なんとなく、無条件で削除クエリをやるよりは 該当レコード有り? Yes ⇒ 削除クエリ実行 No ⇒ 何もしない とやった方がキレイかなと。 しかし、削除するレコードの有無に関係無く削除クエリを実行しても よいのでは?と思った次第です。 要するに該当するレコードが無ければ削除されないし、あれば削除 されるし。 一般的に削除クエリを実行するときは、無条件にやるものなのでしょうか。 ご教示の程、宜しくお願い致します。
- ベストアンサー
- その他MS Office製品
- naoto0216
- 回答数2
- access ADO Between
str年月="16年09月" dtm月初日 = str年月 & "01日" dtm月末日 = DateSerial(Year(dtm月初日), Month(dtm月初日) + 1, 0) rs.CursorLocation = adUseClient rs.Open "Ttest", cn, adOpenStatic, adLockPessimistic rs.Sort = "日付 DESC" rs.Filter = "日付 Between #" & dtm月初日 & "# And #" & dtm月末日 & "#" を実行すると 実行時エラー3001「引数が間違った型、許容範囲外、または競合しています。」 と言うエラーになります。 ADOのフィルタでBetween andは使えないのでしょうか? もしくはどこかにシングルコーテーションを入れれば良いのでしょうか?
- ベストアンサー
- その他MS Office製品
- PIHLXCITYI
- 回答数1