AccessのVBAに関する質問スレです
★1 質問テンプレ(雛形)は用意しませんが、OSとAccessのバージョンは必ず書きましょう。
★2 AccessのVBA以外の部分に関する質問はNGです。
但し、VBA無しでも出来ることだが、あえてVBAでやりたいって物に関してはOK。
★3 AccessのVBE(Visual Basic Editor)を使うとしても、VBAの分野以外に関してはスレ違いです。
VBAとは、『Visual Basic for Application』の略で
Application
├Workbooks
|└Workbook
| ├Worksheets
| |└Worksheet
というApplication以下のオブジェクトを、VB言語で操作するものを指します。
例えExcel付属のVBE(Visual Basic Editor)を利用しようとも、このApplication以下のブックやシート、
セルやオブジェクト等を操作するもの以外はVBA分野の話ではないので、ここでは聞かないでください。
★4 レベルはどうあれ、ここはプログラマ用の板スレです。プログラマとは、自分でプログラムを組み、
コードを書く人の事なので、自分でやるきは全く無く、丸投げしようって人はお断りです。
ヒントを貰えばあとは自力でなんとかしますって人のみどうぞ。
★5 わからなければとりあえず「マクロの記録」(Alt, T, M, R)
関連スレ
Excel VBA 質問スレ Part23
http://toro.2ch.net/test/read.cgi/tech/1327763113/l50
探検
Access VBA 質問スレ Part1
■ このスレッドは過去ログ倉庫に格納されています
2012/02/06(月) 22:53:46.88
725デフォルトの名無しさん
2017/05/16(火) 12:59:39.86ID:Gxqu5M/V そもそも質問の意味がわからない。
任意のリストをコンボボックスに表示する方法は分かってる?
或いは指定テーブルの指定フィールドをコンボボックスに表示する方法とか。
それが分かれば技術的な問題じゃ無くて頭の問題でしょ。
任意のリストをコンボボックスに表示する方法は分かってる?
或いは指定テーブルの指定フィールドをコンボボックスに表示する方法とか。
それが分かれば技術的な問題じゃ無くて頭の問題でしょ。
726718
2017/05/16(火) 13:12:32.50ID:CV++bHOB727デフォルトの名無しさん
2017/05/16(火) 14:13:45.32ID:Gxqu5M/V >>726
いや、それは分かるけどコンボボックスに何かを表示する方法は分かってるのかという話。
それが分かれば後は頭の体操の話でしょ。
任意のリストでやるなら5個の文字列を連結したものを都度作成すれば良いし、テーブルでやるならUNIQUEにして追加削除すれば良んじゃね。
いや、それは分かるけどコンボボックスに何かを表示する方法は分かってるのかという話。
それが分かれば後は頭の体操の話でしょ。
任意のリストでやるなら5個の文字列を連結したものを都度作成すれば良いし、テーブルでやるならUNIQUEにして追加削除すれば良んじゃね。
728デフォルトの名無しさん
2017/05/16(火) 22:08:47.69ID:g0o7D5lq 田中,安倍,中曽根,福田,小泉, 麻生 ・・・ がどう入力されるかだけど
田中,安倍,中曽根,中曽根,田中,小泉,福田,小泉,安倍, 麻生 ・・・
とかだと直近の重複しない名称が都度ドロップダウンリストボックス内で
変化していきそうで、それはそれで入力時に戸惑いそうだが
ドロップダウンリストボックスのソースを重複クエリ(>>722の言うstrSQLでもいいけど)で
セットすればいちばん簡単だけど、直近を抽出するにはレコード番号とか入力日時とか
を基準にして並べ替えする てことかな
氏名は例だろうけど、現物は何だろ? 面白そう 入力のたびに「あれ?」「ん?」って
声が聞こえて来そうだ(本人が使うんじゃ無ければ)
田中,安倍,中曽根,中曽根,田中,小泉,福田,小泉,安倍, 麻生 ・・・
とかだと直近の重複しない名称が都度ドロップダウンリストボックス内で
変化していきそうで、それはそれで入力時に戸惑いそうだが
ドロップダウンリストボックスのソースを重複クエリ(>>722の言うstrSQLでもいいけど)で
セットすればいちばん簡単だけど、直近を抽出するにはレコード番号とか入力日時とか
を基準にして並べ替えする てことかな
氏名は例だろうけど、現物は何だろ? 面白そう 入力のたびに「あれ?」「ん?」って
声が聞こえて来そうだ(本人が使うんじゃ無ければ)
729718
2017/05/16(火) 22:31:51.86ID:CV++bHOB >>728
現物は顧客リストとパートナー営業さんのリストです
勿論、上記の氏名は例ですが、中曽根さんのデータを呼び出して30分くらい経って
「中曽根さんの○○の項目を更新忘れていたわ」ということが多々あるので、一旦呼び
出した人は履歴から簡単に再呼び出ししたいです。
平たく言うと、WebブラウザのHP履歴みたいなもんです。
現物は顧客リストとパートナー営業さんのリストです
勿論、上記の氏名は例ですが、中曽根さんのデータを呼び出して30分くらい経って
「中曽根さんの○○の項目を更新忘れていたわ」ということが多々あるので、一旦呼び
出した人は履歴から簡単に再呼び出ししたいです。
平たく言うと、WebブラウザのHP履歴みたいなもんです。
730デフォルトの名無しさん
2017/05/16(火) 22:59:07.91ID:9DoKORjf オートコンプリートね。
テンポラリテーブル作るのが
一番簡単かと。
テンポラリテーブル作るのが
一番簡単かと。
732デフォルトの名無しさん
2017/06/06(火) 14:35:30.83ID:7I4Q1TJn フォームから入力されたデータってレコードソースで指定しているクエリのテーブルに格納されるって認識あってますか
733デフォルトの名無しさん
2017/06/06(火) 14:38:41.23ID:7I4Q1TJn734デフォルトの名無しさん
2017/06/07(水) 12:39:00.78ID:m3sH3bSc テキストボックスが連結されていれば入力内容はテーブル(の連結フィールド)に保存されます。
735デフォルトの名無しさん
2017/06/07(水) 12:47:43.50ID:bbXeH7ar >>734
すみません、テキストボックスとは何を指してますか、クエリのソースですか?
すみません、テキストボックスとは何を指してますか、クエリのソースですか?
736デフォルトの名無しさん
2017/06/07(水) 22:15:49.46ID:JlTkUU5d >>735
フォームに配置するオブジェクトのひとつ。他にコンボボックスとかリストボックス、コマンドボタンなんかがあります。
フォームに配置するオブジェクトのひとつ。他にコンボボックスとかリストボックス、コマンドボタンなんかがあります。
737デフォルトの名無しさん
2017/06/07(水) 22:22:23.86ID:+eS8ypoQ 何やら禅問答の様相を呈しているようだが
その入力フォームのレコードソースがクエリで、対象のテーブルに保存できるか?
という質問なら、DoCmd ・・・なんぞを使わずともレコードが移動した時点で保存される
ソースの無いフォーム上のテキストボックス群(等)に入力して、例えば[保存ボタン]などで
対象のテーブルにデータを保存するような使い方の場合には、その DoCmd ・・・を使って
それぞれ保存したいフィールドに各テキストボックス群(等)のデータを保存する でよろしいか
テキストボックス、コンボボックス、リストボックス、チェックボックス等々があるから・・群(等)と書いたけど
その入力フォームのレコードソースがクエリで、対象のテーブルに保存できるか?
という質問なら、DoCmd ・・・なんぞを使わずともレコードが移動した時点で保存される
ソースの無いフォーム上のテキストボックス群(等)に入力して、例えば[保存ボタン]などで
対象のテーブルにデータを保存するような使い方の場合には、その DoCmd ・・・を使って
それぞれ保存したいフィールドに各テキストボックス群(等)のデータを保存する でよろしいか
テキストボックス、コンボボックス、リストボックス、チェックボックス等々があるから・・群(等)と書いたけど
738デフォルトの名無しさん
2017/06/08(木) 12:41:56.61ID:Gl6SA9F6 >>737
はい、フォーム上のテキストボックスに入力されたデータの保存について聞きたいのですが、レコードソースのクエリで複数テーブルが結合している場合、共通のカラムのデータは結合しているすべてのテーブルに保存されますか
はい、フォーム上のテキストボックスに入力されたデータの保存について聞きたいのですが、レコードソースのクエリで複数テーブルが結合している場合、共通のカラムのデータは結合しているすべてのテーブルに保存されますか
739デフォルトの名無しさん
2017/06/08(木) 21:37:20.87ID:QO2QuDWb740デフォルトの名無しさん
2017/06/08(木) 22:12:23.06ID:ymWmjIat 百聞は一見の喩えじゃないが、二日費やしてる間に試しで入れてみれば
100ヶテーブル繋げてても全部入るだろ あ、Max32だったか しかも結合は16までか
じゃあ16で で、へぇ、なるほど、こうなるんだ って理解に繋がる
100ヶテーブル繋げてても全部入るだろ あ、Max32だったか しかも結合は16までか
じゃあ16で で、へぇ、なるほど、こうなるんだ って理解に繋がる
741デフォルトの名無しさん
2017/06/09(金) 14:32:01.31ID:273W91RO742デフォルトの名無しさん
2017/06/09(金) 14:33:57.33ID:273W91RO レコードセットがダイナセットで、レコードソースのクエリが2つ以上のテーブルを結合しているときの登録されるテーブルを教えてほしいです
743デフォルトの名無しさん
2017/06/09(金) 19:37:19.10ID:arHWLDZ3 クエリが複数のテーブルからできていても
そのクエリのカラムはどっちのテーブルのカラムか区別されてるぞ
そのクエリのカラムはどっちのテーブルのカラムか区別されてるぞ
744デフォルトの名無しさん
2017/06/09(金) 23:11:20.98ID:LJNVGfcK >>742
フォームプロパティのレコードソースからクエリのデザインできるウィンドウを開きます。項目フィールドがどのテーブルのものか定義されています。
正確な名称で答えられなくてすみません。布団の中からなので。
フォームプロパティのレコードソースからクエリのデザインできるウィンドウを開きます。項目フィールドがどのテーブルのものか定義されています。
正確な名称で答えられなくてすみません。布団の中からなので。
745デフォルトの名無しさん
2017/06/13(火) 12:35:22.53ID:CYlYHOF+ easyComm使ってrs-232cで測定器つないでデータ取る、みたいなのが得意な人いる?
746デフォルトの名無しさん
2017/06/13(火) 15:22:33.36ID:mycfBP+w いない
747デフォルトの名無しさん
2017/06/13(火) 21:12:00.58ID:R7Yl4a9U いませんか。仕方ない、コリコリ書くかな。
748デフォルトの名無しさん
2017/06/16(金) 21:29:11.74ID:YDbGqV+E 出来た!動いた!
測定器の制御とか本当はvisual studioとかで作成するんだろうけど、パソコンの性能がいつの間にか上がっててACCESSでもいけたよ!
測定器の制御とか本当はvisual studioとかで作成するんだろうけど、パソコンの性能がいつの間にか上がっててACCESSでもいけたよ!
749デフォルトの名無しさん
2017/06/17(土) 17:55:53.00ID:n14YEU6w そのうち性能ωが上がってACCESSでBIGデータ扱ったり機械学習したりする時代が来るのか
750デフォルトの名無しさん
2017/06/22(木) 11:21:35.79ID:1rSOLJ2h すごい基本的な質問ですみません
accessのSQLの言語って何ですかね
MYSQLとかですか
accessのSQLの言語って何ですかね
MYSQLとかですか
751デフォルトの名無しさん
2017/06/22(木) 15:04:17.20ID:+TFSs5XU SQLが言語だよ
すとらくちゃーどくえりーらんげーじ
だったかな
すとらくちゃーどくえりーらんげーじ
だったかな
752デフォルトの名無しさん
2017/06/22(木) 15:25:40.99ID:9kjviait 質問の意味も意図もよくわからんね。
access以外のシステムからSQL文をコピペしたいってことなのか!?
access以外のシステムからSQL文をコピペしたいってことなのか!?
753デフォルトの名無しさん
2017/06/22(木) 15:27:59.87ID:T7aSUWBW754デフォルトの名無しさん
2017/06/22(木) 15:43:16.41ID:1rSOLJ2h >>753
SQL言語もポスグレだったりPLSQLだったりあるじゃないですかそれで言うと何になるのか聞きたいんですけど
SQL言語もポスグレだったりPLSQLだったりあるじゃないですかそれで言うと何になるのか聞きたいんですけど
755デフォルトの名無しさん
2017/06/22(木) 15:44:58.51ID:1rSOLJ2h 勘違いしてたらすみません
SQLとMYSQLの関係ってCとC♯の関係ですか
SQLとMYSQLの関係ってCとC♯の関係ですか
756デフォルトの名無しさん
2017/06/22(木) 15:45:47.90ID:1rSOLJ2h757デフォルトの名無しさん
2017/06/22(木) 15:53:28.78ID:wdLd6PlL SQLとMYSQLの関係は他人のSQLと自分のSQLの関係です
昔、金井克子という人が歌ってました
昔、金井克子という人が歌ってました
758デフォルトの名無しさん
2017/06/22(木) 16:58:01.05ID:zFId4oiO SQLというのはそれが言語
(たまにSQL言語以外の事をSQLと言っている場合もある)
ポスグレやMYSQLやACCESSはそのSQL言語を使う環境(の一部)
環境によりSQLに多少の差はある
ポスグレはSQL言語じゃない
PL/SQLはSQLを拡張した言語
ACCESSならSQLを超える範囲の言語はVBA
(たまにSQL言語以外の事をSQLと言っている場合もある)
ポスグレやMYSQLやACCESSはそのSQL言語を使う環境(の一部)
環境によりSQLに多少の差はある
ポスグレはSQL言語じゃない
PL/SQLはSQLを拡張した言語
ACCESSならSQLを超える範囲の言語はVBA
759デフォルトの名無しさん
2017/06/22(木) 17:53:43.99ID:1rSOLJ2h >>758
よくわかりました、ありがとうございます
よくわかりました、ありがとうございます
760デフォルトの名無しさん
2017/06/22(木) 21:11:47.56ID:f/XKrCgm762デフォルトの名無しさん
2017/06/22(木) 23:45:58.46ID:Ddgcj+Nb763デフォルトの名無しさん
2017/06/30(金) 23:17:34.97ID:8BMFafeA 何でも良い、誰でも良いから質問すれ。
764デフォルトの名無しさん
2017/07/03(月) 12:15:52.25ID:HFvRoHNk 変数の宣言を強制するにチェック入れたのに
Option Explicit
が出てこないのですが
どうしたら出て来ますか?
Option Explicit
が出てこないのですが
どうしたら出て来ますか?
765デフォルトの名無しさん
2017/07/03(月) 12:56:00.26ID:hBIZ2owM 既存のコードには入らないよ
新規で作成するオブジェクトには入る
新規で作成するオブジェクトには入る
766デフォルトの名無しさん
2017/07/04(火) 16:03:28.67ID:ce7knrBK Accessの神々よ、御教えを!
Accessでは、CHECK 句が使えないようですが、
カラム数が多いため、
いちいちプロパティから入力規則を設定するのは骨が折れます。
SQL で一括設定する方法をご伝授くださいませ〜
Accessでは、CHECK 句が使えないようですが、
カラム数が多いため、
いちいちプロパティから入力規則を設定するのは骨が折れます。
SQL で一括設定する方法をご伝授くださいませ〜
767デフォルトの名無しさん
2017/07/04(火) 22:10:20.82ID:WoXW+1QF えー、クエリ作ってからSQL表示してコピペ。
そんな事聞いてないよね。
そんな事聞いてないよね。
768デフォルトの名無しさん
2017/07/05(水) 02:09:17.79ID:EckUEWaI >>765
なるほどさんくす
なるほどさんくす
769デフォルトの名無しさん
2017/07/05(水) 10:03:04.42ID:Qpg00Afa view
770デフォルトの名無しさん
2017/07/05(水) 17:39:45.65ID:XEX8l1it win7x64-office2016x86環境下のみで再現するらしい
xls出力からコペピ張り付け罫線操作等々やってる処理で張り付したシートがズレル不具合発生
ネット調べても一切情報でてこなくて期待込めてofficeアプデしたら実行時エラー1401
空白でないセルが云々カンヌん泣きたい
xls出力からコペピ張り付け罫線操作等々やってる処理で張り付したシートがズレル不具合発生
ネット調べても一切情報でてこなくて期待込めてofficeアプデしたら実行時エラー1401
空白でないセルが云々カンヌん泣きたい
771デフォルトの名無しさん
2017/07/20(木) 13:40:54.23ID:AoFZnXDG 自己レス
office365BPの2016でのみ再現
別シートの複数列コピー選択状態でAAセレクトインサートやろうとするとコピーペになる
セレクト前に空白セル1コピーで回避
office365BPの2016でのみ再現
別シートの複数列コピー選択状態でAAセレクトインサートやろうとするとコピーペになる
セレクト前に空白セル1コピーで回避
772デフォルトの名無しさん
2017/07/21(金) 16:32:01.78ID:28Rvh+yS クエリを実行したときに全件レコードを取得できてないのに検索結果画面が開くときってない?
▷|←このボタン押すと検索結果の件数が出てくるんだけど、押してから出るまでに時間がかかるってことは全件レコード取得できてないってことだよね
▷|←このボタン押すと検索結果の件数が出てくるんだけど、押してから出るまでに時間がかかるってことは全件レコード取得できてないってことだよね
773デフォルトの名無しさん
2017/07/21(金) 16:32:40.55ID:28Rvh+yS この現象を何なのか教えてほしい
774デフォルトの名無しさん
2017/07/21(金) 17:16:56.11ID:PYWMukgm 表示した後でも数字が勝手に増えるってこと?
775デフォルトの名無しさん
2017/07/21(金) 17:49:46.53ID:28Rvh+yS >>774
いや、クエリのSQLをorderby句を書かなかったとき、全件検索する前に検索結果画面が開く
いや、クエリのSQLをorderby句を書かなかったとき、全件検索する前に検索結果画面が開く
776デフォルトの名無しさん
2017/07/21(金) 17:55:49.86ID:28Rvh+yS @orderby書いてクエリを実行する→1/2500みたいに結果件数がでる
Aorderby書かないでクエリを実行する→1 結果件数が上記と違いでない
▷|このボタンおすと上記と同じように1/2500となる
@の実行時間10秒
Aの実行時間1秒 ただし▷|ボタン押すと10秒くらいかかる
Aorderby書かないでクエリを実行する→1 結果件数が上記と違いでない
▷|このボタンおすと上記と同じように1/2500となる
@の実行時間10秒
Aの実行時間1秒 ただし▷|ボタン押すと10秒くらいかかる
777デフォルトの名無しさん
2017/07/21(金) 21:47:28.80ID:GPYD2Qke なんかオプションに無かったかな。最初の表示するぶんだけ読み込んでとりあえず見せておいて裏で続きを読むって機能をオンに、みたいな。
778デフォルトの名無しさん
2017/07/24(月) 04:02:58.29ID:UL92A3MD >>777
あれば教えてほしいですね
あれば教えてほしいですね
779デフォルトの名無しさん
2017/07/24(月) 15:06:22.21ID:BdqEvISL あった気がする
780デフォルトの名無しさん
2017/07/25(火) 22:56:57.38ID:EiidKUEl 会社テーブル
id 会社名 ・・・
1. A社
2. B社
3. C社
4. B社
職員テーブル
name 会社id ・・・
山田. 1
鈴木. 1
飯田. 2
野口. 3
岡本. 4
一対多のリレーションがありまして
会社マスターにダブり登録されている場合(この場合B社)
楽に修正する方法はないでしょうか
250社くらいダブリやトリプルしていて困っております
id 会社名 ・・・
1. A社
2. B社
3. C社
4. B社
職員テーブル
name 会社id ・・・
山田. 1
鈴木. 1
飯田. 2
野口. 3
岡本. 4
一対多のリレーションがありまして
会社マスターにダブり登録されている場合(この場合B社)
楽に修正する方法はないでしょうか
250社くらいダブリやトリプルしていて困っております
781デフォルトの名無しさん
2017/07/26(水) 07:07:59.14ID:wP3Z6w42 名寄せマスター
名寄せID 会社ID 新会社ID
1 2 2
1 4 2
名寄せマスターと職員テーブルをJOINしてUPDATE
というのはどうですか?
名寄せID 会社ID 新会社ID
1 2 2
1 4 2
名寄せマスターと職員テーブルをJOINしてUPDATE
というのはどうですか?
782デフォルトの名無しさん
2017/07/26(水) 07:12:28.72ID:XR9PfPcp その会社マスターがおかしいのを放置するのか修正するのかで違ってくるよね
783デフォルトの名無しさん
2017/07/26(水) 16:42:27.76ID:Pvb1ow9Q 合併したんかね
784デフォルトの名無しさん
2017/07/27(木) 20:31:02.25ID:6NlFfxVd785デフォルトの名無しさん
2017/07/27(木) 20:40:42.96ID:DKmshiqQ なあんだ、Excelの段階で調整しちゃえば余計な苦労しなくて済んだのに
786デフォルトの名無しさん
2017/08/01(火) 21:53:22.72ID:FQn2qD+M 初心者なんで教えて欲しいんだけど、フォームの次へボタン押した時に次のレコードが
表示されないのだがどうしたらいいか教えて欲しい。バージョンは2013
Private Sub Form_Load()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Set db = CurrentDb()
Set rs = db.OpenRecordset("名簿テーブル",dbOpenTable)
Me!名前テキスト = rs!名前
Me!カナテキスト = rs!よみがな
End Sub
Private Sub 次へボタン_Click()
DoCmd.GoToRecord , , acNext
End Sub
表示されないのだがどうしたらいいか教えて欲しい。バージョンは2013
Private Sub Form_Load()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Set db = CurrentDb()
Set rs = db.OpenRecordset("名簿テーブル",dbOpenTable)
Me!名前テキスト = rs!名前
Me!カナテキスト = rs!よみがな
End Sub
Private Sub 次へボタン_Click()
DoCmd.GoToRecord , , acNext
End Sub
787デフォルトの名無しさん
2017/08/01(火) 22:21:37.22ID:16hy4odR フォームのソースが名簿テーブルならフォーム読み込み時の名前とよみがなセットするコードは無くても先頭レコードが表示される。
フォームのソースを確認しましょう。
非連結フォームならボタン押した時に次のレコードを読み込んで名前とよみがなセットするコードが必要だけど、キーが不明なので何ともアドバイスできません。
長々と書いたがわかりにくいね、すまん。
フォームのソースを確認しましょう。
非連結フォームならボタン押した時に次のレコードを読み込んで名前とよみがなセットするコードが必要だけど、キーが不明なので何ともアドバイスできません。
長々と書いたがわかりにくいね、すまん。
788デフォルトの名無しさん
2017/08/02(水) 22:57:21.98ID:GleVclNw >>787
ありがと
ありがと
789デフォルトの名無しさん
2017/08/28(月) 11:23:53.36ID:XLKoN0Ik 神さま教えてください。
ADODB.Commandでのインサートが失敗しても
エラーが出ないのですが、エラーハンドリングの
方法を教えてください。
よろしくお願いします。
ADODB.Commandでのインサートが失敗しても
エラーが出ないのですが、エラーハンドリングの
方法を教えてください。
よろしくお願いします。
790デフォルトの名無しさん
2017/08/28(月) 21:14:51.01ID:6Oo2q0tu on error
791デフォルトの名無しさん
2017/08/29(火) 08:37:26.00ID:SOL0jppX むしろonerrorしかないと思うが、他にやり方あんの?
792デフォルトの名無しさん
2017/08/29(火) 09:14:08.50ID:WIE1SoZ9 レスありがとうございます。
ON ERROR は当然やってまして
その上での質問です。
ON ERROR は当然やってまして
その上での質問です。
793デフォルトの名無しさん
2017/08/29(火) 21:25:59.80ID:BqQa7G9t 失敗ってなんだ。
戻り値を取ればAffectedRowsになってるだろうから
それで判断するか追加されたはずの行数をあらためSELECTするとか
戻り値を取ればAffectedRowsになってるだろうから
それで判断するか追加されたはずの行数をあらためSELECTするとか
794デフォルトの名無しさん
2017/11/15(水) 11:14:08.03ID:PQCfnSyv >>786
そのコードはFormがLoadされた時に名簿テーブルを開いてRecordsetに格納し、名前とカナをテキストボックスに入れるというものと次へボタンを押した時にFormがLoadされた時の処理とは全く関係なく次のレコ−ドに移動するもの。
ところで次へボタンでの次のレコ−ドってのは何のデ−タなんだい?
改めて言うけどFormがLoadされた時の処理なんて知らないからとAccess君は言っている。
要は、DoCmd.GotoRecordってのはデータとオブジェクトが連結されていることが想定されていて、連結されているから既にオブジェクトにレコードが表示されているわけだが、それに対して次のレコ−ドと言ってる。
一方、FormのLoad時の処理は連結関係無くデ−タを自ら取ってくるもの。
こちらのやり方を取るならRecordsetをPublic変数にするかForm内でのPrivate変数として保持しておき、他のイベント(次へボタンクリックのような)で使いまわすというやり方になる。
そのコードはFormがLoadされた時に名簿テーブルを開いてRecordsetに格納し、名前とカナをテキストボックスに入れるというものと次へボタンを押した時にFormがLoadされた時の処理とは全く関係なく次のレコ−ドに移動するもの。
ところで次へボタンでの次のレコ−ドってのは何のデ−タなんだい?
改めて言うけどFormがLoadされた時の処理なんて知らないからとAccess君は言っている。
要は、DoCmd.GotoRecordってのはデータとオブジェクトが連結されていることが想定されていて、連結されているから既にオブジェクトにレコードが表示されているわけだが、それに対して次のレコ−ドと言ってる。
一方、FormのLoad時の処理は連結関係無くデ−タを自ら取ってくるもの。
こちらのやり方を取るならRecordsetをPublic変数にするかForm内でのPrivate変数として保持しておき、他のイベント(次へボタンクリックのような)で使いまわすというやり方になる。
795デフォルトの名無しさん
2017/11/22(水) 10:10:39.42ID:as8vu/t7 整数型、重複なしの列を書き換えるときはどうしてますか?たとえば、
2 1
3 → 2
1 3
にしたいときに2→1の時点でエラーが出ると思うので回避策を検討しています。
一時的に重複なしを解除して、終了時点で重複なしへ戻す方法や、一旦一時的に重複しない数字に書き換えて、それから再度書き換えるべきか悩んでいます。
なにか一般的な方法はございますか?
2 1
3 → 2
1 3
にしたいときに2→1の時点でエラーが出ると思うので回避策を検討しています。
一時的に重複なしを解除して、終了時点で重複なしへ戻す方法や、一旦一時的に重複しない数字に書き換えて、それから再度書き換えるべきか悩んでいます。
なにか一般的な方法はございますか?
796デフォルトの名無しさん
2017/11/22(水) 10:11:55.37ID:as8vu/t7 あれ、スペースがおかしくなっている。
列を書き直すときにたとえば
2→1
3→2
1→3
としたいのです。具体的にはidを振り直す作業です。
列を書き直すときにたとえば
2→1
3→2
1→3
としたいのです。具体的にはidを振り直す作業です。
797デフォルトの名無しさん
2017/11/22(水) 12:23:57.98ID:TDbCG25M レンジのソートでよくね?
もしくはフィルタ付けて並び替えてからフィルタ解除とか
もしくはフィルタ付けて並び替えてからフィルタ解除とか
798デフォルトの名無しさん
2017/11/22(水) 12:27:01.49ID:taN4cymO idには触らないで、整数型のフィールドを追加します。そのフィールドでやりたい放題やります。
799あ
2017/11/22(水) 12:46:48.77ID:MjBhGus4 どうしてもやりたけりゃ、swapしていきゃいいんじゃないの?
最初は2→1にしたいから、
1 3 2に。
次は3を2にして
1 2 3
に。
入れ替え自体は、UPDATE xxx SET unique = CASE WNEN unique=1 THEN 2 WHEN unique=2 THEN 1 ELSE unique END
でCASEで書いちゃえば入れ替えられる。
1クエリ内で完結したら、制約はかからない。
最初は2→1にしたいから、
1 3 2に。
次は3を2にして
1 2 3
に。
入れ替え自体は、UPDATE xxx SET unique = CASE WNEN unique=1 THEN 2 WHEN unique=2 THEN 1 ELSE unique END
でCASEで書いちゃえば入れ替えられる。
1クエリ内で完結したら、制約はかからない。
800デフォルトの名無しさん
2017/11/22(水) 13:21:54.54ID:as8vu/t7 >>797
済みません。AccessにもRangeというのがあるのですか?あと、フィルターの使い方も御教示をお願い致します。
>>798
それが、当該idを参照しているテーブルが20個以上あるので、別のコラムという訳にはいかないのです。
参照先を変更するとなるとクエリやらVBAのコードやらを書き換えないといけないので大変だと思います。
>>799
バブルソートみたいなものですね。レコード数が3万ありますので、何となく時間がかかりそうな気がしますが、試してみます。
今はソート後にDMax+iのループで重複しないidへ書き換えて、書き換えが終わってからDMaxを引くという2段階の作業をしています。
(参照元のidも2段階の書き換えをしています。))
我ながらドン臭いやり方だと思うので、もう少しスマートな方法があれば御教示をお願いいたします。
済みません。AccessにもRangeというのがあるのですか?あと、フィルターの使い方も御教示をお願い致します。
>>798
それが、当該idを参照しているテーブルが20個以上あるので、別のコラムという訳にはいかないのです。
参照先を変更するとなるとクエリやらVBAのコードやらを書き換えないといけないので大変だと思います。
>>799
バブルソートみたいなものですね。レコード数が3万ありますので、何となく時間がかかりそうな気がしますが、試してみます。
今はソート後にDMax+iのループで重複しないidへ書き換えて、書き換えが終わってからDMaxを引くという2段階の作業をしています。
(参照元のidも2段階の書き換えをしています。))
我ながらドン臭いやり方だと思うので、もう少しスマートな方法があれば御教示をお願いいたします。
801デフォルトの名無しさん
2017/11/22(水) 15:00:03.20ID:t4MJ2LxN その列自体を書き換えちゃうの?
じゃあ、今入ってる値は必要無いってこと?
だったら削除して連番振り直したら?
じゃあ、今入ってる値は必要無いってこと?
だったら削除して連番振り直したら?
802デフォルトの名無しさん
2017/11/22(水) 15:02:12.97ID:TZAtmSaI 今の時代なにが楽しくてAccessなんてやるんだ
803デフォルトの名無しさん
2017/11/22(水) 15:50:01.09ID:as8vu/t7 >>801
idだから主キーです。Nullは不可だと思います。
idだから主キーです。Nullは不可だと思います。
804あ
2017/11/22(水) 16:48:33.62ID:QspO8Ati >>800
もう組み合わせがわかってて、ほんとに単発で1回きりなら、
エクセルで対比表作って、CASEの列とWHENの列足してコピペでクエリ作っても良いけど、全く健全な保守ではない。
2 1
3 2
1 3
に列追加してオートフィルで
WHEN unique= 2 then 1
WHEN unique= 3 then 2
WHEN unique= 1 then 3
ってして、
unique= CASE
と
ELSE UNIQUE endで挟んで、コピペでテキストエディタに貼り付けて、テキストエディタからコピペでAccessに貼り付けるやつ。
しょっちゅうやるならテーブル見直そう。
もう組み合わせがわかってて、ほんとに単発で1回きりなら、
エクセルで対比表作って、CASEの列とWHENの列足してコピペでクエリ作っても良いけど、全く健全な保守ではない。
2 1
3 2
1 3
に列追加してオートフィルで
WHEN unique= 2 then 1
WHEN unique= 3 then 2
WHEN unique= 1 then 3
ってして、
unique= CASE
と
ELSE UNIQUE endで挟んで、コピペでテキストエディタに貼り付けて、テキストエディタからコピペでAccessに貼り付けるやつ。
しょっちゅうやるならテーブル見直そう。
805デフォルトの名無しさん
2017/11/22(水) 16:57:08.62ID:QHiNhW2y >>803
方法はいくらでもあると思うけど。
Field追加して連番を振って、追加したFieldを主キーに変更して元の主キーのFieldを削除するとか。
試してないからできるか分からんけど。
そんなことせずに振りなおすならOrderByでId順にして小さい値から振りなおしたら?
方法はいくらでもあると思うけど。
Field追加して連番を振って、追加したFieldを主キーに変更して元の主キーのFieldを削除するとか。
試してないからできるか分からんけど。
そんなことせずに振りなおすならOrderByでId順にして小さい値から振りなおしたら?
806デフォルトの名無しさん
2017/11/22(水) 16:59:54.83ID:QHiNhW2y ただ、主キーを振りなおす意味が分からない。
そういうもんじゃ無いと思うし、テーブルの連結によっては滅茶苦茶になるのは分かってるよね。
そういうもんじゃ無いと思うし、テーブルの連結によっては滅茶苦茶になるのは分かってるよね。
807あ
2017/11/22(水) 17:57:43.64ID:QspO8Ati 主キー振り直すのは、やむを得ずやるのはそのアプリのライフタイムに何発かあると思う。
業務系だと、「スキーマ変えるな」「デカいトランザクションはるな」「一時テーブルすら作るな」とか無茶苦茶言いよることもある。
でも、しょっちゅうやるならホントに設計考えたほうが良い。
業務系だと、「スキーマ変えるな」「デカいトランザクションはるな」「一時テーブルすら作るな」とか無茶苦茶言いよることもある。
でも、しょっちゅうやるならホントに設計考えたほうが良い。
808デフォルトの名無しさん
2017/11/22(水) 18:29:23.78ID:2YVJuPMl 別に列作ってそっち主キーにすれば?
809デフォルトの名無しさん
2017/11/22(水) 23:10:16.27ID:as8vu/t7810デフォルトの名無しさん
2017/11/22(水) 23:11:54.97ID:as8vu/t7811デフォルトの名無しさん
2017/11/23(木) 09:57:12.17ID:wkO+ZdSN 主キーの役割はレコードをユニークにすることだろ
並べ替えが必要ならそのための項目を別に用意するわ
作業量を問題にしてるけど
無茶な運用は後に響くよ
分かり易さを優先すべきだと思うわ
並べ替えが必要ならそのための項目を別に用意するわ
作業量を問題にしてるけど
無茶な運用は後に響くよ
分かり易さを優先すべきだと思うわ
812デフォルトの名無しさん
2017/11/24(金) 12:10:31.02ID:fRZqdK5G 主キーを解除して、重複可にして連番を書き込みました。その後に元に戻しました。変更前後の番号を配列に書き込んでおいて、その配列の値から関連するテーブル全部において置換作業を行うことにしました。
idが2万5000レコード、関連するテーブルのレコードが全部で100万近いのですが、2万5000の置換を100万レコードに対して行うので時間がかかりそうな気がしています。どのくらい時間がかかるのか計算する方法がありますかね?
idが2万5000レコード、関連するテーブルのレコードが全部で100万近いのですが、2万5000の置換を100万レコードに対して行うので時間がかかりそうな気がしています。どのくらい時間がかかるのか計算する方法がありますかね?
813デフォルトの名無しさん
2017/11/24(金) 12:21:50.25ID:Q2HEJk5l accessにSQLコストを計算する機能はないよ
814デフォルトの名無しさん
2017/11/24(金) 19:17:11.31ID:fRZqdK5G 主キーの削除をVBAでやろうとしているんだけど、メソッドが見つからない。SQLでやるしかないのかな?
下を読むとdeleteメソッドはダメみたいだし。
https://msdn.microsoft.com/ja-jp/library/office/ff197351.aspx
>>Deleteメソッドは、インデックスオブジェクトが新しいと、データベースに追加されていない場合にのみサポートします。
下を読むとdeleteメソッドはダメみたいだし。
https://msdn.microsoft.com/ja-jp/library/office/ff197351.aspx
>>Deleteメソッドは、インデックスオブジェクトが新しいと、データベースに追加されていない場合にのみサポートします。
815デフォルトの名無しさん
2017/11/25(土) 10:30:03.03ID:eU9hnSW+ 無理矢理面倒臭い事をしているようにしか思えない
まぁ人の話を聞く気が無いみたいだし
好きに調べてやればええよ
まぁ人の話を聞く気が無いみたいだし
好きに調べてやればええよ
816デフォルトの名無しさん
2017/11/27(月) 17:21:43.17ID:twASlFZz SQLであっさり出来たわ。後は置換をどうするかだな。関連するテーブル全部を置換できればすべて解決するけど、何を使うかだな。
SQLは遅いんだっけ?レコードセットでループ回す方が速いと読んだ気がする。
SQLは遅いんだっけ?レコードセットでループ回す方が速いと読んだ気がする。
817デフォルトの名無しさん
2017/11/27(月) 22:26:05.40ID:HF1f2kGW818デフォルトの名無しさん
2017/11/28(火) 05:38:20.27ID:GeGdCCsE 業務用ソフトのテーブルを眺めていたら、テキスト型のフィールドがあって、256桁の数字が羅列してあった
様々な設定を指定された桁に格納しているようですが、このようなデーター保存方法は一般的なんでしょうか?
他の言語でもあるのでしょうか?
様々な設定を指定された桁に格納しているようですが、このようなデーター保存方法は一般的なんでしょうか?
他の言語でもあるのでしょうか?
819デフォルトの名無しさん
2017/11/28(火) 05:58:01.76ID:Brt1t867 >>818
あるんじゃないの?としか。どんなテーブルとか、フィールドの名前とか、なんかヒントはないですか? 様々な設定も謎が深まるだけですね。
あるんじゃないの?としか。どんなテーブルとか、フィールドの名前とか、なんかヒントはないですか? 様々な設定も謎が深まるだけですね。
820デフォルトの名無しさん
2017/11/28(火) 09:43:49.19ID:GeGdCCsE たとえばあるフォームAのオプションボタンの値を98桁に書き込む、フォームBのチェックボックスの値は例えばCstr(Abs(True)))でstringへ変換して105桁に書き込むとかそんな感じです。
合理的な気もするのですが、こういう方法は検索しても見つからないので一般的なのか、特殊なアイデアなのか知りたくなりまして。
合理的な気もするのですが、こういう方法は検索しても見つからないので一般的なのか、特殊なアイデアなのか知りたくなりまして。
821デフォルトの名無しさん
2017/11/28(火) 11:59:57.14ID:vHFzkUKA すくなくともRDBを使う上ではやるなって言われてるやり方
固定長ファイルにデータ保存してるようなシステムなら結構あったけどね
固定長ファイルにデータ保存してるようなシステムなら結構あったけどね
822デフォルトの名無しさん
2017/11/28(火) 16:08:53.51ID:GeGdCCsE >>821
そうなんですか。面白そうな話しなので調べてみようと思います。その手法はどういう名称なんですか?もしくは検索ワードを御教示頂けましたら幸いです。
そうなんですか。面白そうな話しなので調べてみようと思います。その手法はどういう名称なんですか?もしくは検索ワードを御教示頂けましたら幸いです。
823あ
2017/11/28(火) 18:29:06.23ID:i1R8M5pm RPG区分列とかじゃないの?古い呼び方だけど。
酷すぎてだれも触りたくないやつ。
RDBに移すような事があったら、末期には照合順序をbinaryにするしか無くなったりすごく苦しむから辞めた方がいい。
メリットらしいメリット無い。LIKEで雑に'[A-C]__1_2'みたいにSELECTできることぐらい。
酷すぎてだれも触りたくないやつ。
RDBに移すような事があったら、末期には照合順序をbinaryにするしか無くなったりすごく苦しむから辞めた方がいい。
メリットらしいメリット無い。LIKEで雑に'[A-C]__1_2'みたいにSELECTできることぐらい。
824デフォルトの名無しさん
2017/11/28(火) 18:44:14.15ID:GeGdCCsE 残念ながら、ググっても何もヒットしません。
なにかヒントをお願い出来ますか?
なにかヒントをお願い出来ますか?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… [BFU★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★2 [BFU★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★2 [BFU★]
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 [Hitzeschleier★]
- 政府、株式の配当など金融所得を高齢者の医療保険料や窓口負担に反映する方針を固めた [バイト歴50年★]
- 【維新】吉村知事「中国人観光客だけに頼るビジネスモデル変えていかないといけない」「高市総理の発言は撤回する必要はない」 [Hitzeschleier★]
- 中国高官と話す外務省局長の表情、やばい [175344491]
- 小野田経済安保相「すぐに経済的威圧するところへの依存はリスク」😲 [861717324]
- 【高市速報】明日から中国からの輸入が停止すれば2ヵ月で国内の生産業に53兆円の損失発生 [931948549]
- 俺様、2個1000円『ジューシーくんハンバーグ』焼き失敗、生肉を食うことに(2年ぶり2度目) これ安倍晋三の責任100%だろ [928194223]
- 中国外務省「日中関係の悪化は高市早苗首相が原因」と名指しで強く非難。キタ━(゚∀゚)━! [153490809]
- 維新の吉村代表「高市総理に中国総領事の国外退去を要請した。今後、知事として中国イベントには出席しない」 [359572271]
