[過去ログ] Access VBA 質問スレ Part1 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
747: 2017/06/13(火)21:12 ID:R7Yl4a9U(1) AAS
いませんか。仕方ない、コリコリ書くかな。
748: 2017/06/16(金)21:29 ID:YDbGqV+E(1) AAS
出来た!動いた!
測定器の制御とか本当はvisual studioとかで作成するんだろうけど、パソコンの性能がいつの間にか上がっててACCESSでもいけたよ!
749: 2017/06/17(土)17:55 ID:n14YEU6w(1) AAS
そのうち性能ωが上がってACCESSでBIGデータ扱ったり機械学習したりする時代が来るのか
750(1): 2017/06/22(木)11:21 ID:1rSOLJ2h(1/5) AAS
すごい基本的な質問ですみません
accessのSQLの言語って何ですかね
MYSQLとかですか
751: 2017/06/22(木)15:04 ID:+TFSs5XU(1) AAS
SQLが言語だよ
すとらくちゃーどくえりーらんげーじ
だったかな
752(2): 2017/06/22(木)15:25 ID:9kjviait(1) AAS
質問の意味も意図もよくわからんね。
access以外のシステムからSQL文をコピペしたいってことなのか!?
753(1): 2017/06/22(木)15:27 ID:T7aSUWBW(1) AAS
>>750
MYSQLもSQL。
仕様があって、それに沿って各社実装してる。
が、独自部分も多いから同じSQLだからといって何処でも動くとは言えない。
754: 2017/06/22(木)15:43 ID:1rSOLJ2h(2/5) AAS
>>753
SQL言語もポスグレだったりPLSQLだったりあるじゃないですかそれで言うと何になるのか聞きたいんですけど
755: 2017/06/22(木)15:44 ID:1rSOLJ2h(3/5) AAS
勘違いしてたらすみません
SQLとMYSQLの関係ってCとC♯の関係ですか
756(1): 2017/06/22(木)15:45 ID:1rSOLJ2h(4/5) AAS
>>752
コピペでそんなこと気にする必要ありませんよね
気になったから質問したまでです
757: 2017/06/22(木)15:53 ID:wdLd6PlL(1) AAS
SQLとMYSQLの関係は他人のSQLと自分のSQLの関係です
昔、金井克子という人が歌ってました
758(1): 2017/06/22(木)16:58 ID:zFId4oiO(1) AAS
SQLというのはそれが言語
(たまにSQL言語以外の事をSQLと言っている場合もある)
ポスグレやMYSQLやACCESSはそのSQL言語を使う環境(の一部)
環境によりSQLに多少の差はある
ポスグレはSQL言語じゃない
PL/SQLはSQLを拡張した言語
ACCESSならSQLを超える範囲の言語はVBA
759: 2017/06/22(木)17:53 ID:1rSOLJ2h(5/5) AAS
>>758
よくわかりました、ありがとうございます
760(1): 2017/06/22(木)21:11 ID:f/XKrCgm(1) AAS
>>756
他のSQLの構文をそのままコピペしてAccessで使うのは
うまくいかないこともある ことを気遣ってくれたんじゃね?
そんな言い捨てるようなレスはいけないと思いますよ
761(1): 2017/06/22(木)21:17 ID:t4uJuvar(1) AAS
>>760
なるほど
>>752失礼しました
762: 2017/06/22(木)23:45 ID:Ddgcj+Nb(1) AAS
>>761
素直な態度の人は成長するらしいですね。
良い事良い事。
763: 2017/06/30(金)23:17 ID:8BMFafeA(1) AAS
何でも良い、誰でも良いから質問すれ。
764: 2017/07/03(月)12:15 ID:HFvRoHNk(1) AAS
変数の宣言を強制するにチェック入れたのに
Option Explicit
が出てこないのですが
どうしたら出て来ますか?
765(1): 2017/07/03(月)12:56 ID:hBIZ2owM(1) AAS
既存のコードには入らないよ
新規で作成するオブジェクトには入る
766: 2017/07/04(火)16:03 ID:ce7knrBK(1) AAS
Accessの神々よ、御教えを!
Accessでは、CHECK 句が使えないようですが、
カラム数が多いため、
いちいちプロパティから入力規則を設定するのは骨が折れます。
SQL で一括設定する方法をご伝授くださいませ〜
767: 2017/07/04(火)22:10 ID:WoXW+1QF(1) AAS
えー、クエリ作ってからSQL表示してコピペ。
そんな事聞いてないよね。
768: 2017/07/05(水)02:09 ID:EckUEWaI(1) AAS
>>765
なるほどさんくす
769: 2017/07/05(水)10:03 ID:Qpg00Afa(1) AAS
view
770: 2017/07/05(水)17:39 ID:XEX8l1it(1) AAS
win7x64-office2016x86環境下のみで再現するらしい
xls出力からコペピ張り付け罫線操作等々やってる処理で張り付したシートがズレル不具合発生
ネット調べても一切情報でてこなくて期待込めてofficeアプデしたら実行時エラー1401
空白でないセルが云々カンヌん泣きたい
771: 2017/07/20(木)13:40 ID:AoFZnXDG(1) AAS
自己レス
office365BPの2016でのみ再現
別シートの複数列コピー選択状態でAAセレクトインサートやろうとするとコピーペになる
セレクト前に空白セル1コピーで回避
772: 2017/07/21(金)16:32 ID:28Rvh+yS(1/4) AAS
クエリを実行したときに全件レコードを取得できてないのに検索結果画面が開くときってない?
▷|←このボタン押すと検索結果の件数が出てくるんだけど、押してから出るまでに時間がかかるってことは全件レコード取得できてないってことだよね
773: 2017/07/21(金)16:32 ID:28Rvh+yS(2/4) AAS
この現象を何なのか教えてほしい
774(1): 2017/07/21(金)17:16 ID:PYWMukgm(1) AAS
表示した後でも数字が勝手に増えるってこと?
775: 2017/07/21(金)17:49 ID:28Rvh+yS(3/4) AAS
>>774
いや、クエリのSQLをorderby句を書かなかったとき、全件検索する前に検索結果画面が開く
776: 2017/07/21(金)17:55 ID:28Rvh+yS(4/4) AAS
?orderby書いてクエリを実行する→1/2500みたいに結果件数がでる
?orderby書かないでクエリを実行する→1 結果件数が上記と違いでない
▷|このボタンおすと上記と同じように1/2500となる
?の実行時間10秒
?の実行時間1秒 ただし▷|ボタン押すと10秒くらいかかる
777(1): 2017/07/21(金)21:47 ID:GPYD2Qke(1) AAS
なんかオプションに無かったかな。最初の表示するぶんだけ読み込んでとりあえず見せておいて裏で続きを読むって機能をオンに、みたいな。
778: 2017/07/24(月)04:02 ID:UL92A3MD(1) AAS
>>777
あれば教えてほしいですね
779: 2017/07/24(月)15:06 ID:BdqEvISL(1) AAS
あった気がする
780: 2017/07/25(火)22:56 ID:EiidKUEl(1) AAS
会社テーブル
id 会社名 ・・・
1. A社
2. B社
3. C社
4. B社
職員テーブル
省10
781(1): 2017/07/26(水)07:07 ID:wP3Z6w42(1) AAS
AA省
782: 2017/07/26(水)07:12 ID:XR9PfPcp(1) AAS
その会社マスターがおかしいのを放置するのか修正するのかで違ってくるよね
783: 2017/07/26(水)16:42 ID:Pvb1ow9Q(1) AAS
合併したんかね
784(1): 2017/07/27(木)20:31 ID:6NlFfxVd(1) AAS
>>781
なるほど
重複クエリに各会社の最小IDを連結して名寄せテーブルを作成し
JOINしてUPDATEしました
名寄せテーブルを作成しないでクエリだけでUPDATEまでもっていくのは
この場合駄目なんですね はじめ理解できず悩みました
>>784
省3
785: 2017/07/27(木)20:40 ID:DKmshiqQ(1) AAS
なあんだ、Excelの段階で調整しちゃえば余計な苦労しなくて済んだのに
786(1): 2017/08/01(火)21:53 ID:FQn2qD+M(1) AAS
初心者なんで教えて欲しいんだけど、フォームの次へボタン押した時に次のレコードが
表示されないのだがどうしたらいいか教えて欲しい。バージョンは2013
Private Sub Form_Load()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Set db = CurrentDb()
Set rs = db.OpenRecordset("名簿テーブル",dbOpenTable)
省6
787(1): 2017/08/01(火)22:21 ID:16hy4odR(1) AAS
フォームのソースが名簿テーブルならフォーム読み込み時の名前とよみがなセットするコードは無くても先頭レコードが表示される。
フォームのソースを確認しましょう。
非連結フォームならボタン押した時に次のレコードを読み込んで名前とよみがなセットするコードが必要だけど、キーが不明なので何ともアドバイスできません。
長々と書いたがわかりにくいね、すまん。
788: 2017/08/02(水)22:57 ID:GleVclNw(1) AAS
>>787
ありがと
789: 2017/08/28(月)11:23 ID:XLKoN0Ik(1) AAS
神さま教えてください。
ADODB.Commandでのインサートが失敗しても
エラーが出ないのですが、エラーハンドリングの
方法を教えてください。
よろしくお願いします。
790: 2017/08/28(月)21:14 ID:6Oo2q0tu(1) AAS
on error
791: 2017/08/29(火)08:37 ID:SOL0jppX(1) AAS
むしろonerrorしかないと思うが、他にやり方あんの?
792: 2017/08/29(火)09:14 ID:WIE1SoZ9(1) AAS
レスありがとうございます。
ON ERROR は当然やってまして
その上での質問です。
793: 2017/08/29(火)21:25 ID:BqQa7G9t(1) AAS
失敗ってなんだ。
戻り値を取ればAffectedRowsになってるだろうから
それで判断するか追加されたはずの行数をあらためSELECTするとか
794: 2017/11/15(水)11:14 ID:PQCfnSyv(1) AAS
>>786
そのコードはFormがLoadされた時に名簿テーブルを開いてRecordsetに格納し、名前とカナをテキストボックスに入れるというものと次へボタンを押した時にFormがLoadされた時の処理とは全く関係なく次のレコ−ドに移動するもの。
ところで次へボタンでの次のレコ−ドってのは何のデ−タなんだい?
改めて言うけどFormがLoadされた時の処理なんて知らないからとAccess君は言っている。
要は、DoCmd.GotoRecordってのはデータとオブジェクトが連結されていることが想定されていて、連結されているから既にオブジェクトにレコードが表示されているわけだが、それに対して次のレコ−ドと言ってる。
一方、FormのLoad時の処理は連結関係無くデ−タを自ら取ってくるもの。
こちらのやり方を取るならRecordsetをPublic変数にするかForm内でのPrivate変数として保持しておき、他のイベント(次へボタンクリックのような)で使いまわすというやり方になる。
795: 2017/11/22(水)10:10 ID:as8vu/t7(1/6) AAS
整数型、重複なしの列を書き換えるときはどうしてますか?たとえば、
2 1
3 → 2
1 3
にしたいときに2→1の時点でエラーが出ると思うので回避策を検討しています。
一時的に重複なしを解除して、終了時点で重複なしへ戻す方法や、一旦一時的に重複しない数字に書き換えて、それから再度書き換えるべきか悩んでいます。
なにか一般的な方法はございますか?
796: 2017/11/22(水)10:11 ID:as8vu/t7(2/6) AAS
あれ、スペースがおかしくなっている。
列を書き直すときにたとえば
2→1
3→2
1→3
としたいのです。具体的にはidを振り直す作業です。
797(1): 2017/11/22(水)12:23 ID:TDbCG25M(1) AAS
レンジのソートでよくね?
もしくはフィルタ付けて並び替えてからフィルタ解除とか
798(1): 2017/11/22(水)12:27 ID:taN4cymO(1) AAS
idには触らないで、整数型のフィールドを追加します。そのフィールドでやりたい放題やります。
799(1): あ 2017/11/22(水)12:46 ID:MjBhGus4(1) AAS
どうしてもやりたけりゃ、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
省2
800(1): 2017/11/22(水)13:21 ID:as8vu/t7(3/6) AAS
>>797
済みません。AccessにもRangeというのがあるのですか?あと、フィルターの使い方も御教示をお願い致します。
>>798
それが、当該idを参照しているテーブルが20個以上あるので、別のコラムという訳にはいかないのです。
参照先を変更するとなるとクエリやらVBAのコードやらを書き換えないといけないので大変だと思います。
>>799
バブルソートみたいなものですね。レコード数が3万ありますので、何となく時間がかかりそうな気がしますが、試してみます。
省3
801(1): 2017/11/22(水)15:00 ID:t4MJ2LxN(1) AAS
その列自体を書き換えちゃうの?
じゃあ、今入ってる値は必要無いってこと?
だったら削除して連番振り直したら?
802: 2017/11/22(水)15:02 ID:TZAtmSaI(1) AAS
今の時代なにが楽しくてAccessなんてやるんだ
803(1): 2017/11/22(水)15:50 ID:as8vu/t7(4/6) AAS
>>801
idだから主キーです。Nullは不可だと思います。
804: あ 2017/11/22(水)16:48 ID:QspO8Ati(1/2) AAS
>>800
もう組み合わせがわかってて、ほんとに単発で1回きりなら、
エクセルで対比表作って、CASEの列とWHENの列足してコピペでクエリ作っても良いけど、全く健全な保守ではない。
2 1
3 2
1 3
に列追加してオートフィルで
省8
805(1): 2017/11/22(水)16:57 ID:QHiNhW2y(1/2) AAS
>>803
方法はいくらでもあると思うけど。
Field追加して連番を振って、追加したFieldを主キーに変更して元の主キーのFieldを削除するとか。
試してないからできるか分からんけど。
そんなことせずに振りなおすならOrderByでId順にして小さい値から振りなおしたら?
806(1): 2017/11/22(水)16:59 ID:QHiNhW2y(2/2) AAS
ただ、主キーを振りなおす意味が分からない。
そういうもんじゃ無いと思うし、テーブルの連結によっては滅茶苦茶になるのは分かってるよね。
807: あ 2017/11/22(水)17:57 ID:QspO8Ati(2/2) AAS
主キー振り直すのは、やむを得ずやるのはそのアプリのライフタイムに何発かあると思う。
業務系だと、「スキーマ変えるな」「デカいトランザクションはるな」「一時テーブルすら作るな」とか無茶苦茶言いよることもある。
でも、しょっちゅうやるならホントに設計考えたほうが良い。
808(1): 2017/11/22(水)18:29 ID:2YVJuPMl(1) AAS
別に列作ってそっち主キーにすれば?
809: 2017/11/22(水)23:10 ID:as8vu/t7(5/6) AAS
>>805
>>そんなことせずに振りなおすならOrderByでId順にして小さい値から振りなおしたら?
そんなことが出来るのですか?DAOもADOも1行ずつしかupdate出来ないから、重複データーが発生してしまって出来ないのですが…
>>806
ワークテーブルまで含めて数えなおしたら、35個のテーブルで件のidを使用していました。なので35個のテーブルに対して変更を行わないといけませんね。
810: 2017/11/22(水)23:11 ID:as8vu/t7(6/6) AAS
>>808
それで解決するなら簡単ですね。やってみたいですね。
元の列の属性がすべて引き継がれるならいいですね。試してみます。
811: 2017/11/23(木)09:57 ID:wkO+ZdSN(1) AAS
主キーの役割はレコードをユニークにすることだろ
並べ替えが必要ならそのための項目を別に用意するわ
作業量を問題にしてるけど
無茶な運用は後に響くよ
分かり易さを優先すべきだと思うわ
812: 2017/11/24(金)12:10 ID:fRZqdK5G(1/2) AAS
主キーを解除して、重複可にして連番を書き込みました。その後に元に戻しました。変更前後の番号を配列に書き込んでおいて、その配列の値から関連するテーブル全部において置換作業を行うことにしました。
idが2万5000レコード、関連するテーブルのレコードが全部で100万近いのですが、2万5000の置換を100万レコードに対して行うので時間がかかりそうな気がしています。どのくらい時間がかかるのか計算する方法がありますかね?
813: 2017/11/24(金)12:21 ID:Q2HEJk5l(1) AAS
accessにSQLコストを計算する機能はないよ
814: 2017/11/24(金)19:17 ID:fRZqdK5G(2/2) AAS
主キーの削除をVBAでやろうとしているんだけど、メソッドが見つからない。SQLでやるしかないのかな?
下を読むとdeleteメソッドはダメみたいだし。
外部リンク[aspx]:msdn.microsoft.com
>>Deleteメソッドは、インデックスオブジェクトが新しいと、データベースに追加されていない場合にのみサポートします。
815: 2017/11/25(土)10:30 ID:eU9hnSW+(1) AAS
無理矢理面倒臭い事をしているようにしか思えない
まぁ人の話を聞く気が無いみたいだし
好きに調べてやればええよ
816(1): 2017/11/27(月)17:21 ID:twASlFZz(1) AAS
SQLであっさり出来たわ。後は置換をどうするかだな。関連するテーブル全部を置換できればすべて解決するけど、何を使うかだな。
SQLは遅いんだっけ?レコードセットでループ回す方が速いと読んだ気がする。
817: 2017/11/27(月)22:26 ID:HF1f2kGW(1) AAS
>>816
普通に考えればSQLの方が速いに決まってると思ってたが。
遅いとしたらその文書いた奴が悪いという印象。
ま、DB系については大したレベルにないから俺が間違ってるかも。
818(1): 2017/11/28(火)05:38 ID:GeGdCCsE(1/4) AAS
業務用ソフトのテーブルを眺めていたら、テキスト型のフィールドがあって、256桁の数字が羅列してあった
様々な設定を指定された桁に格納しているようですが、このようなデーター保存方法は一般的なんでしょうか?
他の言語でもあるのでしょうか?
819: 2017/11/28(火)05:58 ID:Brt1t867(1) AAS
>>818
あるんじゃないの?としか。どんなテーブルとか、フィールドの名前とか、なんかヒントはないですか? 様々な設定も謎が深まるだけですね。
820: 2017/11/28(火)09:43 ID:GeGdCCsE(2/4) AAS
たとえばあるフォームAのオプションボタンの値を98桁に書き込む、フォームBのチェックボックスの値は例えばCstr(Abs(True)))でstringへ変換して105桁に書き込むとかそんな感じです。
合理的な気もするのですが、こういう方法は検索しても見つからないので一般的なのか、特殊なアイデアなのか知りたくなりまして。
821(2): 2017/11/28(火)11:59 ID:vHFzkUKA(1) AAS
すくなくともRDBを使う上ではやるなって言われてるやり方
固定長ファイルにデータ保存してるようなシステムなら結構あったけどね
822: 2017/11/28(火)16:08 ID:GeGdCCsE(3/4) AAS
>>821
そうなんですか。面白そうな話しなので調べてみようと思います。その手法はどういう名称なんですか?もしくは検索ワードを御教示頂けましたら幸いです。
823: あ 2017/11/28(火)18:29 ID:i1R8M5pm(1) AAS
RPG区分列とかじゃないの?古い呼び方だけど。
酷すぎてだれも触りたくないやつ。
RDBに移すような事があったら、末期には照合順序をbinaryにするしか無くなったりすごく苦しむから辞めた方がいい。
メリットらしいメリット無い。LIKEで雑に'[A-C]__1_2'みたいにSELECTできることぐらい。
824: 2017/11/28(火)18:44 ID:GeGdCCsE(4/4) AAS
残念ながら、ググっても何もヒットしません。
なにかヒントをお願い出来ますか?
825: 2017/12/01(金)16:18 ID:xc+Vk5Dr(1) AAS
RPGとRDBで検索したら関係ありそうなのがいくつかヒットしたけど。
検索能力は俺の方が上みたいだな。
826: 2017/12/02(土)14:50 ID:EvURnJTn(1) AAS
固定長ファイルでぐぐったら、先頭に固定長データファイルとはっていうサイトがでたけど
なにでどうググったんだか
827: 2017/12/04(月)10:19 ID:eu/J6Nzp(1) AAS
皆様、御指導、御鞭撻ありがとうございます。
COBOLでよく使う手法だったんですね。
件のmdbはコボラーが設計したんですかね。
上下前次1-新書関写板覧索設栞歴
あと 175 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.023s