X



Access VBA 質問スレ Part1
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
垢版 |
2012/02/06(月) 22:53:46.88
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
0699デフォルトの名無しさん
垢版 |
2017/04/18(火) 18:05:35.01ID:UkP+KrtI
業務委託契約として顧客に準備された制限の多い
環境下で業務をしています共有サーバも特殊である為、
理解出来ないような仕様が多いです

「別のaccess起動」はshell関数で対応する事で
解決出来ました
たくさんのご意見どうもありがとうございました
0701デフォルトの名無しさん
垢版 |
2017/04/19(水) 12:26:18.06ID:j6KP6NRK
クライアントにACCESSインストール不可なのに
どこでどうやって「別のaccess起動」を解決できたのかすごく気になる

特殊なサーバってメタフレームとかじゃないだろうな
0703デフォルトの名無しさん
垢版 |
2017/04/20(木) 06:20:13.83ID:1KNeIeUu
>>702
これだな
別にクライアントでaccessが使えないとは書いてないし
変な奴が揚げ足とって粘着してるようにしか見えん
0704デフォルトの名無しさん
垢版 |
2017/04/21(金) 11:31:18.08ID:cjUCDLpJ
accessVBAでファイルコピーをするのですが、

テーブルにある数値をコピー先のファイル名としてファイルコピーしたいのですが、
どうすればいいでしょうか?
テーブルには1フィールド1件のレコードしかないようにしています。
0706デフォルトの名無しさん
垢版 |
2017/05/09(火) 21:18:01.19ID:4Eh9wDDp
レポートにクエリを埋め込んだ場合、フィールド幅とかフォントとかって指定はできませんか?
0707デフォルトの名無しさん
垢版 |
2017/05/09(火) 22:38:58.26ID:ho5latp+
ひどく難しい質問だが :
 レポートのソースをクエリにしている、という意味なのか
   だとするとその一文は無用なのだが

 レポート上のテキストボックスにクエリのSQL文を埋め込み(貼り付け)
 たいんだが、それぞれ文字数が変わるのでそのテキストボックスの
 フィールド幅とかフォントを自在に変えたいのか

下の意味だとしたら cf. http://www.newsbit.org/vol16/ 幅は変わらないけれども
Verが2010以上なら cl. http://mukkumuku.blogspot.jp/2013/02/access-2010-2013-anchor-property-2.html とか
0709デフォルトの名無しさん
垢版 |
2017/05/09(火) 23:10:41.56ID:4Eh9wDDp
>>707
残念ながらどっちでもないです。

1枚のレポートの中に複数のクエリの結果を表示させているのだけど、幅サイズ指定どころかフォントすら指定出来なくてこまっているんです。
0710デフォルトの名無しさん
垢版 |
2017/05/09(火) 23:42:18.10ID:ho5latp+
そのクエリの結果をそれぞれ個別にレポートに仕上げる分には
フィールド幅とかフォントを固定できるものなのか?
一つのクエリでならMaxサイズがそれぞれのフィールドで指定できるものなのかを聞いてるんだが

それができるなら個別にレポートを作って、最終的に一つのレポートにそれぞれをサブレポートとして
埋め込めば可能だろうが、個別のクエリでもフィールドサイズが都度都度変わるものだとしたら
無理気味な気が  つか、そこまで可変を重要視するならフォームに表示してそっちで印刷・・
現物に当たれないからフォームでの仕様は後日確認してみるけど
0714デフォルトの名無しさん
垢版 |
2017/05/15(月) 05:55:17.74ID:eTrrYCJR
フォームコントロールを自動で
美しく配置するツールを作りました。

需要ありますかね。

もちろんレポートにも対応してます。
0715デフォルトの名無しさん
垢版 |
2017/05/15(月) 08:45:14.54ID:+qzB37uA
ソースにするクエリを選択します
作成タブのフォームをクリックします
美しいレイアウトのフォームが自動で作成されます
0716デフォルトの名無しさん
垢版 |
2017/05/15(月) 10:42:35.49ID:UIY4n9Gi
それは
ブサイクなフォームですよ
0718デフォルトの名無しさん
垢版 |
2017/05/16(火) 01:19:24.97ID:CV++bHOB
Access2000 Win7

例えば、 田中,安倍,中曽根,福田,小泉, 麻生 という文字列をフォームに順次入力したとき、
直近の5個をプルダウンメニュー化(コンボボックス?)して再入力の手間を省きたいです。

上で言えば、安倍より右なのでプルダウンメニュー化(コンボボックス?)すると

安倍
中曽根
福田
小泉
麻生

となって、中曽根を選んだらそれがフォームに表示(入力)されるという具合です。
VBAではどうすべきでしょうか? 何かヒントはありますか?

職場の都合上Access2000を使っていますが、これ以降のバージョンで可能ならそれも教えて下さい。
0719718
垢版 |
2017/05/16(火) 01:23:53.47ID:CV++bHOB
(補足)AccessのVBAも可能です
0720デフォルトの名無しさん
垢版 |
2017/05/16(火) 08:04:15.30ID:VdvmUVsR
私なら
入力した名前をテーブルに追加していき
リストボックスの値集合ソースにそのテーブルを指定して表示させ
Wクリックで入力させたいテキストボックス(?)に転記させます
※コンボじゃなくリストにしたのは好みです
0723デフォルトの名無しさん
垢版 |
2017/05/16(火) 12:33:54.26ID:14hiXRCy
まあ、でも次回開いた時に
直近のを表示したいって事なんだろうから
やっぱりテーブルに保持して
それを表示してやる感じかね。
0724718
垢版 |
2017/05/16(火) 12:53:25.27ID:CV++bHOB
>>720-723
色々有難うございます。
すいません、AccessのVBAのスレで>>719を書いてしまいました。完全にネボケていました
0725デフォルトの名無しさん
垢版 |
2017/05/16(火) 12:59:39.86ID:Gxqu5M/V
そもそも質問の意味がわからない。
任意のリストをコンボボックスに表示する方法は分かってる?
或いは指定テーブルの指定フィールドをコンボボックスに表示する方法とか。
それが分かれば技術的な問題じゃ無くて頭の問題でしょ。
0726718
垢版 |
2017/05/16(火) 13:12:32.50ID:CV++bHOB
>>725
職場では検証や練習の時間が取れないので、自宅で練習した上でやりたいのですが
自宅にはAccessが無いので上記のような質問になってしまいました。
0727デフォルトの名無しさん
垢版 |
2017/05/16(火) 14:13:45.32ID:Gxqu5M/V
>>726
いや、それは分かるけどコンボボックスに何かを表示する方法は分かってるのかという話。
それが分かれば後は頭の体操の話でしょ。

任意のリストでやるなら5個の文字列を連結したものを都度作成すれば良いし、テーブルでやるならUNIQUEにして追加削除すれば良んじゃね。
0728デフォルトの名無しさん
垢版 |
2017/05/16(火) 22:08:47.69ID:g0o7D5lq
田中,安倍,中曽根,福田,小泉, 麻生 ・・・ がどう入力されるかだけど
田中,安倍,中曽根,中曽根,田中,小泉,福田,小泉,安倍, 麻生 ・・・
とかだと直近の重複しない名称が都度ドロップダウンリストボックス内で
変化していきそうで、それはそれで入力時に戸惑いそうだが

ドロップダウンリストボックスのソースを重複クエリ(>>722の言うstrSQLでもいいけど)で
セットすればいちばん簡単だけど、直近を抽出するにはレコード番号とか入力日時とか
を基準にして並べ替えする てことかな

氏名は例だろうけど、現物は何だろ? 面白そう 入力のたびに「あれ?」「ん?」って
声が聞こえて来そうだ(本人が使うんじゃ無ければ)
0729718
垢版 |
2017/05/16(火) 22:31:51.86ID:CV++bHOB
>>728
現物は顧客リストとパートナー営業さんのリストです

勿論、上記の氏名は例ですが、中曽根さんのデータを呼び出して30分くらい経って
「中曽根さんの○○の項目を更新忘れていたわ」ということが多々あるので、一旦呼び
出した人は履歴から簡単に再呼び出ししたいです。

平たく言うと、WebブラウザのHP履歴みたいなもんです。
0730デフォルトの名無しさん
垢版 |
2017/05/16(火) 22:59:07.91ID:9DoKORjf
オートコンプリートね。
テンポラリテーブル作るのが
一番簡単かと。
0731718
垢版 |
2017/05/18(木) 02:38:44.45ID:v5KhOq09
>>730
ありがとう
0732デフォルトの名無しさん
垢版 |
2017/06/06(火) 14:35:30.83ID:7I4Q1TJn
フォームから入力されたデータってレコードソースで指定しているクエリのテーブルに格納されるって認識あってますか
0733デフォルトの名無しさん
垢版 |
2017/06/06(火) 14:38:41.23ID:7I4Q1TJn
>>732に追記です
DoCmd.RunCommand acCmdSaveRecordで保存されたデータはレコードソースのテーブルに格納されるでいいでしょうか。
基本的な質問ですみません
0734デフォルトの名無しさん
垢版 |
2017/06/07(水) 12:39:00.78ID:m3sH3bSc
テキストボックスが連結されていれば入力内容はテーブル(の連結フィールド)に保存されます。
0735デフォルトの名無しさん
垢版 |
2017/06/07(水) 12:47:43.50ID:bbXeH7ar
>>734
すみません、テキストボックスとは何を指してますか、クエリのソースですか?
0736デフォルトの名無しさん
垢版 |
2017/06/07(水) 22:15:49.46ID:JlTkUU5d
>>735
フォームに配置するオブジェクトのひとつ。他にコンボボックスとかリストボックス、コマンドボタンなんかがあります。
0737デフォルトの名無しさん
垢版 |
2017/06/07(水) 22:22:23.86ID:+eS8ypoQ
何やら禅問答の様相を呈しているようだが
その入力フォームのレコードソースがクエリで、対象のテーブルに保存できるか?
という質問なら、DoCmd ・・・なんぞを使わずともレコードが移動した時点で保存される

ソースの無いフォーム上のテキストボックス群(等)に入力して、例えば[保存ボタン]などで
対象のテーブルにデータを保存するような使い方の場合には、その DoCmd ・・・を使って
それぞれ保存したいフィールドに各テキストボックス群(等)のデータを保存する でよろしいか
テキストボックス、コンボボックス、リストボックス、チェックボックス等々があるから・・群(等)と書いたけど
0738デフォルトの名無しさん
垢版 |
2017/06/08(木) 12:41:56.61ID:Gl6SA9F6
>>737
はい、フォーム上のテキストボックスに入力されたデータの保存について聞きたいのですが、レコードソースのクエリで複数テーブルが結合している場合、共通のカラムのデータは結合しているすべてのテーブルに保存されますか
0739デフォルトの名無しさん
垢版 |
2017/06/08(木) 21:37:20.87ID:QO2QuDWb
>>738
すみません、分かりません。
カラムっていうのは何だろ?フォームはデータシートビューなのかな。
0740デフォルトの名無しさん
垢版 |
2017/06/08(木) 22:12:23.06ID:ymWmjIat
百聞は一見の喩えじゃないが、二日費やしてる間に試しで入れてみれば
100ヶテーブル繋げてても全部入るだろ あ、Max32だったか しかも結合は16までか
じゃあ16で  で、へぇ、なるほど、こうなるんだ って理解に繋がる
0741デフォルトの名無しさん
垢版 |
2017/06/09(金) 14:32:01.31ID:273W91RO
>>739
カラムは列(項目)です
フォームビューです
本番環境で作業してるため、登録処理ができないので、教えていただきませんでしょうか
0742デフォルトの名無しさん
垢版 |
2017/06/09(金) 14:33:57.33ID:273W91RO
レコードセットがダイナセットで、レコードソースのクエリが2つ以上のテーブルを結合しているときの登録されるテーブルを教えてほしいです
0743デフォルトの名無しさん
垢版 |
2017/06/09(金) 19:37:19.10ID:arHWLDZ3
クエリが複数のテーブルからできていても
そのクエリのカラムはどっちのテーブルのカラムか区別されてるぞ
0744デフォルトの名無しさん
垢版 |
2017/06/09(金) 23:11:20.98ID:LJNVGfcK
>>742
フォームプロパティのレコードソースからクエリのデザインできるウィンドウを開きます。項目フィールドがどのテーブルのものか定義されています。
正確な名称で答えられなくてすみません。布団の中からなので。
0745デフォルトの名無しさん
垢版 |
2017/06/13(火) 12:35:22.53ID:CYlYHOF+
easyComm使ってrs-232cで測定器つないでデータ取る、みたいなのが得意な人いる?
0748デフォルトの名無しさん
垢版 |
2017/06/16(金) 21:29:11.74ID:YDbGqV+E
出来た!動いた!
測定器の制御とか本当はvisual studioとかで作成するんだろうけど、パソコンの性能がいつの間にか上がっててACCESSでもいけたよ!
0749デフォルトの名無しさん
垢版 |
2017/06/17(土) 17:55:53.00ID:n14YEU6w
そのうち性能ωが上がってACCESSでBIGデータ扱ったり機械学習したりする時代が来るのか
0750デフォルトの名無しさん
垢版 |
2017/06/22(木) 11:21:35.79ID:1rSOLJ2h
すごい基本的な質問ですみません
accessのSQLの言語って何ですかね
MYSQLとかですか
0752デフォルトの名無しさん
垢版 |
2017/06/22(木) 15:25:40.99ID:9kjviait
質問の意味も意図もよくわからんね。
access以外のシステムからSQL文をコピペしたいってことなのか!?
0753デフォルトの名無しさん
垢版 |
2017/06/22(木) 15:27:59.87ID:T7aSUWBW
>>750
MYSQLもSQL。
仕様があって、それに沿って各社実装してる。
が、独自部分も多いから同じSQLだからといって何処でも動くとは言えない。
0754デフォルトの名無しさん
垢版 |
2017/06/22(木) 15:43:16.41ID:1rSOLJ2h
>>753
SQL言語もポスグレだったりPLSQLだったりあるじゃないですかそれで言うと何になるのか聞きたいんですけど
0755デフォルトの名無しさん
垢版 |
2017/06/22(木) 15:44:58.51ID:1rSOLJ2h
勘違いしてたらすみません
SQLとMYSQLの関係ってCとC♯の関係ですか
0756デフォルトの名無しさん
垢版 |
2017/06/22(木) 15:45:47.90ID:1rSOLJ2h
>>752
コピペでそんなこと気にする必要ありませんよね
気になったから質問したまでです
0757デフォルトの名無しさん
垢版 |
2017/06/22(木) 15:53:28.78ID:wdLd6PlL
SQLとMYSQLの関係は他人のSQLと自分のSQLの関係です
昔、金井克子という人が歌ってました
0758デフォルトの名無しさん
垢版 |
2017/06/22(木) 16:58:01.05ID:zFId4oiO
SQLというのはそれが言語
(たまにSQL言語以外の事をSQLと言っている場合もある)

ポスグレやMYSQLやACCESSはそのSQL言語を使う環境(の一部)
環境によりSQLに多少の差はある

ポスグレはSQL言語じゃない
PL/SQLはSQLを拡張した言語
ACCESSならSQLを超える範囲の言語はVBA
0759デフォルトの名無しさん
垢版 |
2017/06/22(木) 17:53:43.99ID:1rSOLJ2h
>>758
よくわかりました、ありがとうございます
0760デフォルトの名無しさん
垢版 |
2017/06/22(木) 21:11:47.56ID:f/XKrCgm
>>756
他のSQLの構文をそのままコピペしてAccessで使うのは
うまくいかないこともある ことを気遣ってくれたんじゃね?
そんな言い捨てるようなレスはいけないと思いますよ
0761デフォルトの名無しさん
垢版 |
2017/06/22(木) 21:17:42.32ID:t4uJuvar
>>760
なるほど
>>752失礼しました
0764デフォルトの名無しさん
垢版 |
2017/07/03(月) 12:15:52.25ID:HFvRoHNk
変数の宣言を強制するにチェック入れたのに
Option Explicit
が出てこないのですが
どうしたら出て来ますか?
0766デフォルトの名無しさん
垢版 |
2017/07/04(火) 16:03:28.67ID:ce7knrBK
Accessの神々よ、御教えを!

Accessでは、CHECK 句が使えないようですが、
カラム数が多いため、
いちいちプロパティから入力規則を設定するのは骨が折れます。

SQL で一括設定する方法をご伝授くださいませ〜
0768デフォルトの名無しさん
垢版 |
2017/07/05(水) 02:09:17.79ID:EckUEWaI
>>765
なるほどさんくす
0770デフォルトの名無しさん
垢版 |
2017/07/05(水) 17:39:45.65ID:XEX8l1it
win7x64-office2016x86環境下のみで再現するらしい
xls出力からコペピ張り付け罫線操作等々やってる処理で張り付したシートがズレル不具合発生
ネット調べても一切情報でてこなくて期待込めてofficeアプデしたら実行時エラー1401
空白でないセルが云々カンヌん泣きたい
0771デフォルトの名無しさん
垢版 |
2017/07/20(木) 13:40:54.23ID:AoFZnXDG
自己レス
office365BPの2016でのみ再現
別シートの複数列コピー選択状態でAAセレクトインサートやろうとするとコピーペになる
セレクト前に空白セル1コピーで回避
0772デフォルトの名無しさん
垢版 |
2017/07/21(金) 16:32:01.78ID:28Rvh+yS
クエリを実行したときに全件レコードを取得できてないのに検索結果画面が開くときってない?
▷|←このボタン押すと検索結果の件数が出てくるんだけど、押してから出るまでに時間がかかるってことは全件レコード取得できてないってことだよね
0773デフォルトの名無しさん
垢版 |
2017/07/21(金) 16:32:40.55ID:28Rvh+yS
この現象を何なのか教えてほしい
0774デフォルトの名無しさん
垢版 |
2017/07/21(金) 17:16:56.11ID:PYWMukgm
表示した後でも数字が勝手に増えるってこと?
0775デフォルトの名無しさん
垢版 |
2017/07/21(金) 17:49:46.53ID:28Rvh+yS
>>774
いや、クエリのSQLをorderby句を書かなかったとき、全件検索する前に検索結果画面が開く
0776デフォルトの名無しさん
垢版 |
2017/07/21(金) 17:55:49.86ID:28Rvh+yS
@orderby書いてクエリを実行する→1/2500みたいに結果件数がでる
Aorderby書かないでクエリを実行する→1 結果件数が上記と違いでない
▷|このボタンおすと上記と同じように1/2500となる

@の実行時間10秒
Aの実行時間1秒 ただし▷|ボタン押すと10秒くらいかかる
0777デフォルトの名無しさん
垢版 |
2017/07/21(金) 21:47:28.80ID:GPYD2Qke
なんかオプションに無かったかな。最初の表示するぶんだけ読み込んでとりあえず見せておいて裏で続きを読むって機能をオンに、みたいな。
0778デフォルトの名無しさん
垢版 |
2017/07/24(月) 04:02:58.29ID:UL92A3MD
>>777
あれば教えてほしいですね
0780デフォルトの名無しさん
垢版 |
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社くらいダブリやトリプルしていて困っております
0781デフォルトの名無しさん
垢版 |
2017/07/26(水) 07:07:59.14ID:wP3Z6w42
名寄せマスター
名寄せID 会社ID 新会社ID
1      2     2
1      4     2

名寄せマスターと職員テーブルをJOINしてUPDATE
というのはどうですか?
0782デフォルトの名無しさん
垢版 |
2017/07/26(水) 07:12:28.72ID:XR9PfPcp
その会社マスターがおかしいのを放置するのか修正するのかで違ってくるよね
0784デフォルトの名無しさん
垢版 |
2017/07/27(木) 20:31:02.25ID:6NlFfxVd
>>781
なるほど
重複クエリに各会社の最小IDを連結して名寄せテーブルを作成し
JOINしてUPDATEしました

名寄せテーブルを作成しないでクエリだけでUPDATEまでもっていくのは
この場合駄目なんですね はじめ理解できず悩みました

>>784
JOINしたAccessのデータをExcelに吐き出し各職場に配布、各々で修正追加。
一年以上たって回収しAccessに貼り付けられて今の状態です。
正確には職員テーブルじゃなくて顧客テーブルですね
0786デフォルトの名無しさん
垢版 |
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
0787デフォルトの名無しさん
垢版 |
2017/08/01(火) 22:21:37.22ID:16hy4odR
フォームのソースが名簿テーブルならフォーム読み込み時の名前とよみがなセットするコードは無くても先頭レコードが表示される。
フォームのソースを確認しましょう。
非連結フォームならボタン押した時に次のレコードを読み込んで名前とよみがなセットするコードが必要だけど、キーが不明なので何ともアドバイスできません。
長々と書いたがわかりにくいね、すまん。
0789デフォルトの名無しさん
垢版 |
2017/08/28(月) 11:23:53.36ID:XLKoN0Ik
神さま教えてください。

ADODB.Commandでのインサートが失敗しても
エラーが出ないのですが、エラーハンドリングの
方法を教えてください。

よろしくお願いします。
0792デフォルトの名無しさん
垢版 |
2017/08/29(火) 09:14:08.50ID:WIE1SoZ9
レスありがとうございます。
ON ERROR は当然やってまして
その上での質問です。
0793デフォルトの名無しさん
垢版 |
2017/08/29(火) 21:25:59.80ID:BqQa7G9t
失敗ってなんだ。
戻り値を取ればAffectedRowsになってるだろうから
それで判断するか追加されたはずの行数をあらためSELECTするとか
0794デフォルトの名無しさん
垢版 |
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変数として保持しておき、他のイベント(次へボタンクリックのような)で使いまわすというやり方になる。
0795デフォルトの名無しさん
垢版 |
2017/11/22(水) 10:10:39.42ID:as8vu/t7
整数型、重複なしの列を書き換えるときはどうしてますか?たとえば、
2 1
3 → 2
1 3
にしたいときに2→1の時点でエラーが出ると思うので回避策を検討しています。
一時的に重複なしを解除して、終了時点で重複なしへ戻す方法や、一旦一時的に重複しない数字に書き換えて、それから再度書き換えるべきか悩んでいます。
なにか一般的な方法はございますか?
0796デフォルトの名無しさん
垢版 |
2017/11/22(水) 10:11:55.37ID:as8vu/t7
あれ、スペースがおかしくなっている。
列を書き直すときにたとえば
2→1
3→2
1→3
としたいのです。具体的にはidを振り直す作業です。
0797デフォルトの名無しさん
垢版 |
2017/11/22(水) 12:23:57.98ID:TDbCG25M
レンジのソートでよくね?
もしくはフィルタ付けて並び替えてからフィルタ解除とか
0798デフォルトの名無しさん
垢版 |
2017/11/22(水) 12:27:01.49ID:taN4cymO
idには触らないで、整数型のフィールドを追加します。そのフィールドでやりたい放題やります。
0799
垢版 |
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クエリ内で完結したら、制約はかからない。
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況